我正在为 TI ADS1015模数转换器构建 LabVIEW 接口。 这是一个教学项目、因此硬件成本很低。 LabVIEW 使用 Arduino 作为 ADS1015的 i2c 接口。 LINX LabVIEW 模块通过 Arduino Uno 的内置 SCL 和 SDA 引脚提供基本的 i2c 通信功能。
我在 Adafruit 的分线板上使用 ADS1015。 该器 件的 i2c 地址为1001000_2=0x48=72_10 (LabVIEW 将字节地址指定为无符号整型)。
LabVIEW (图形)代码如下所示:
此程序运行时没有错误、但结果对我来说还没有意义。 上面的代码启动 i2c 接口、然后发送一系列 i2c 命令(数据表第8页 的"快速启动"系列、cdn-shop.adafruit.com/.../ads1015.pdf):)
I2C 写入0b10010000
I2C 写入0b00000001
I2C 写入0b00000100
I2C 写入0b10000011
I2C 写入0b10010000
I2C 写入0b00000000
I2C 写入0b1000001
I2C 读取
I2C 读取
LabVIEW 程序在程序序列结束时从两个 i2c 读取命令返回133_10。
133_10=0b10000101=0x85
因此,从 ADS1015返回的总数据将是0b1000 0101 1000 0101 = 0x8585?
这是12位 ADC、因此我认为(再次根据数据表) i2c 信号的相关部分为0b1000 0101 1000 0101、即 ADC 读数为-2^11 + 64+16+8 =-2048+88 =-1960_10、可能+/- 2048? 假设没有缩放(电路板连接到5V 电源),则读数大约为5V*(1960/2048)~=-4.78v?
0.是否应该担心返回(读取) i2c 信号(转换寄存器)的"保留"部分是0101? 规格表中的"0h"是什么意思? 转换寄存器的这一部分是否意味着特殊的东西?
1.我对 ADC 信号的分析是否看起来是合理的结果? 我是否以正确的方式考虑了返回的信号?
2.在快速入门演示中、我从四个模拟引脚中的哪个引脚读取数据? 我是否在使用放大、单端与双端等? 我仍然对数据表的这一部分感到困惑。
感谢您对我所做的错误的评论!

