Menu Close

PCF8591使用技巧,读取数据不变化问题

%title插图%num
PCF8591 是一颗AD/DA转换芯片,采用I2C通讯方式读取或写入数据。在使用PCF8591时,有时候代码正常却读不出数据,或者读出的数据始终不发生变化。这种情况很大可能是控制字节不对或者使用的I2C读取方式不对(当然,硬件及读取代码没问题才行)。
芯片的datasheet里,其第二个字节是控制字节,具体说明如下:

%title插图%num
PCF8591的控制字节说明

从中可以知道,其次高bit位为“模拟量输出使能标志位”,为1时使能。这是一个模拟量输出的使能位,按理它应该和AD 转换(读取数据)没什么关系,但确实有关联(原因和内部振荡器是否启用有关)。我们平常使用的I2C通讯,一般有3中读方式:随机地址读(读一次)、当前地址读、连续读。这个问题就出在了读方式上。

第一种情况,使用随机地址读,则要求发送到芯片的控制字必须次高位为1。也就是打开模拟量输出使能(例如:8’b0100_00XX)。
第二种情况,使用当前地址读或者连续读。此二种读取方式,次高位不必置1也能读出。

Posted in AD/DA, FPGA, FPGA, FPGA习题库, FPGA硬件资源, Verilog
0 0 投票数
Article Rating
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

相关链接