关于从I²C接口上的ADC读取数据

本应用笔记讨论了通过i²c兼容接口读取多字节数据时需要注意的问题。讨论了一次读取一个字节的陷阱,并提供了一些具体示例。本文还介绍了处理此类数据传输的正确方法。
介绍
i²c兼容的双线接口是一种强大的机制,用于将微控制器或微处理器连接到低速外设,例如带有集成模数转换器(adc)的外设。通过该总线进行通信的最基本形式(即一次从从站寄存器写入/读取单个字节)非常简单。但是,为了简单起见,将自己限制在这种方法上有一些陷阱。
通过 2 字节通道传输 1 字节数据
与外设(尤其是传感器)的任何其他数字接口一样,我们需要从设备的内部寄存器中读取正确的数据。当寄存器中的数据在读取过程中发生变化时,这一点尤其重要。如果adc在数据传输时运行转换或更新寄存器,则数据可能会发生变化。许多设备都有一个内部缓冲区(通常无法从外部访问),其中包含最新的转换结果。当没有i²c活动时,该器件使用新数据更新所谓的“客户可访问”寄存器。
i²c协议一次传输1字节的数据。因此,如果感兴趣的数据总量超过 8 位并且传输处理不当,则可能会出现问题。例如,max44000的环境光传感器(als)数据寄存器可以有多达14位数据(加上1位表示溢出,这意味着应增加计数/勒克斯设置)。
注册 b7 b6 b5 b4 b3 b2 b1 b0 注册地址
adc 高字节 (als)   奥福 数据[13:8] 0x04
模数转换器低字节 (als) 数据[7:0] 0x05
我们无法通过i²c直接读取所有alsdata[13:0],因此我们必须首先读取寄存器0x04的内容,然后读取寄存器0x05的内容,并在至少16位寄存器中连接数据。但是,我们必须注意如何读取这些数据。可以简单地执行两个由stop(p)条件终止的单次读取,如图1所示。
图1.单字节读取。
这种方法有一个致命的缺陷。具体而言,发送 stop 条件会向设备发出信号,以返回更新“客户可见”寄存器。因此,在从寄存器0x04获取数据后,实际上可以在读取寄存器14x0之前更新05位数据。在某些情况下,此缺陷可能会造成灾难性后果。
例如,如果光照水平处于一定水平,max44000环境光传感器处于10位、12位或14位模式。假设电平徘徊在一个区域中,因此寄存器14x0和04x0中的05位将处于255或256个总数,这可能是由于缓慢增加的光或一些少量的噪声。考虑表 2 中的三种情况。
第一个字节读取期间
的寄存器状态(仅限读0x04) 第二次字节读取期间
的寄存器状态(仅限读0x05) 结果(14 位)
在最后两种情况下,我们不是读取 255 或 256,而是读取 0 或 511。这是一个巨大的问题。发生这种情况是因为寄存器中的数据在发送 stop 条件后,在第一次和第二次读取之间0x04和0x05更新。在第一种有问题的情况下,第一个字节被正确读取。但是当读取第二个字节时,数据总共读取了 256 个计数,其中最低字节为零。因此,我们从设备中获得了零读数。在第二个问题情况下,数据也是总共256个计数。这似乎变成了 511 个计数,因为在发送 stop 条件后但在读取第二个字节之前,数据减少了一个计数。有关在多次读取中发生这种情况的次数的示例,请参见图 2。
图2.单字节读取多个样本的实际读数。
通过一次读取 2 个字节可以轻松避免此问题,如图 3 所示。这是通过在读取第一个数据字节后发送 repeat start 而不是 stop 条件来完成的,并且实现起来相当简单。通过读取2个字节,我们可以防止器件执行更多的i²c寄存器更新,即使我们在两个器件之间发送相同数量的位。
图3.2 字节读取的图示。
上述示例适用于max44000和max44009,它们在进行多次读取时不会自动递增寄存器指针。您的设备可能行为不同,但原理始终相同。这很容易扩展到读取 n 个字节。


华为p10强势对垒一加3T,结果貌似还有点悬念!
握手机制、通道依赖性及AXI-Lite握手实例
变压器干燥后的器身吸湿受潮原理及处理
TSN开放标准挂保证 车用以太网抢进ADAS市场
运动健身蓝牙耳机哪个牌子好,运动耳机性价比排行
关于从I²C接口上的ADC读取数据
AD9361LVDS接口上的伪随机二进制序列校准
128微步步进电机驱动模块方案
三星华为手机960帧慢动作了解一下,真科技还是伪需求?
美大学开发出超薄无源RFID芯片
南洋理工大学尝试开发一款MEMS芯片来预防心血管疾病
启朔科技的ARM SOC阵列服务器在边缘云服务器领域异军突起
区块链的一般原理与实践猜想是什么
中国汽车产销今年首现两位数增长,自主品牌市场份额出现下降
LED回流焊接条件注意事项_LED回流焊接操作注意事项
ESD地桩工程一般用在什么地方?VESD为你解答
plc以太网通讯模块在哪个位置
电池充电又出新招 就像转钥匙一样简单
OPPO成立研究院,为未来创造技术发展做全面准备
MAP平台解决电子信息化建立的后顾之忧