原文转自:https://blog.csdn.net/g2117805/article/details/70058978
操作实例
接下来将用IIC获取ADS1115芯片的电压值。
SLAVE地址
由于模块addr pin是悬空的,参考表5应该和Ground同一个地址,为SLAVE ADDRESS:1001000。
Pointer 寄存器
这个寄存器具有指向下一个寄存器的作用,类似索引,通过向该寄存器写入不同的数据,就可指向相应的寄存器,接下来就可以对该寄存器进行操作。
以指向config寄存器操作为例:
对寄存器config进行写操作
Start+地址+写+ACK*+0000 0001+ACK*+Config_H+ACK*+Config_L+NACK*/ACK*+End
对寄存器config进行读操作
Start+地址+写+ACK*+0000 0001+NACK*/ACK*+End
ReStart+地址+读+ACK*+Config_H*+ACK+Config_L*+NACK+End
注:带*表示从设备向主设备发送。
pointer寄存器中只有BIT1、BIT0有效,指向地址见表6如下:
CONFIG 寄存器
Lo_thresh and Hi_thresh 寄存器
上下限,寄存器中的是带符号的补码(负数 取反加1)
默认:
补码:8000 H~7FFF H
原码:(-2^15)~(2^15-1)
CONVERSION寄存器
该寄存器存着转换得到的AD值。
例如:
操作流程
设置 Lo_thresh 和 Hi_thresh 寄存器
对 Lo_thresh 写操作
Start+地址+写+ACK*+00000010+ACK*
+Lo_thresh_H+ACK*+Lo_thresh_L+NACK*/ACK*+End
对 Hi_thresh 写操作
Start+地址+写+ACK*+00000011+ACK*
+Hi_thresh_H+ACK*+Hi_thresh_L+NACK*/ACK*+End
设置CONFIG 寄存器
Start+地址+写+ACK*+0000 0001+ACK*+Config_H+ACK*+Config_L+NACK*/ACK*+End
读取Conversion register
Start+地址+写+ACK*+0000 0000+NACK*/ACK*+End
ReStart+地址+读+ACK*+Conversion_H*+ACK+Conversion_L*+NACK+End
转换
参考
[1] Semiconductor P. The i2c-bus specification[J]. 2000.
[2] ADS1115 datasheet
[3] wiki
---------------------
作者:Gao_Line
来源:CSDN
原文:https://blog.csdn.net/g2117805/article/details/70058978
版权声明:本文为博主原创文章,转载请附上博文链接!