工具与软件:
尊敬的专家:
我读取结果寄存器以进行1000次电流测量。 我发现我得到了负值(单位:V)、但它不应该像这样。
这是我们的引脚定义原理图。
我需要您在配置寄存器中双确认我的参数写入和我的转换。
我们的硬件成员使用示波器来查看 AIN1 和 GND、 它显示该值几乎保持在3.3V、很少降至-100mV、但绝不会显示负值低于-1V。
拿 AIN1 和 GND 作为一个要讨论的示例。 根据数据表、顺序为(1)写入配置、(2)等待(3)读取结果:
准备写入的值为0xD383 (1101 0011 1000 0011)、我使用 Linux cmd
# i2cset -y 3 0x48 0x01 0xD3 0x83 I
我 还更改了字节顺序、如 # i2cset -y 3 0x48 0x01 0x83 0xD3 I 、但它也会得到负值。
下面是详细信息:
操作系统: 1:启动单次转换(处于断电状态时)
多路复用: 101:AINP=AIN1和 AINN=GND
PGA: 001:FSR =±4.096V (1)
模式: 1:单冲转换模式或断电状态
Rd: 100:DR = 1600 SPS (默认值)
2.等待一秒钟。
3. 然后,我从结果寄存器得到了结果值: 0xb001 执行命令
# i2cget -y 3 0x48 0x00 w
4. 根据数据表、结果超过0x7FF0、我不操作、结果变为0x4FFE、然后保留更高的3个字节、我得到0x4FF
5. 最后一步,将分辨率2 mV 乘以0x4FF = 2*1279mV = 2558mV ,因此电压差为–2.558V
我的示例中是否有任何错误的转换步骤或参数? 谢谢。
此致、
Tony Liu