我在项目中使用的是 ADS1114、但我遇到了一个问题。 当我将值 0x8a03写入 CONFIG 寄存器并且读回时、该值并不相同。 检查下面的日志打印输出。
00> 0:3:19写入值、0x8a03至寄存器0x01。
00> 0:3:19 CONFIG 寄存器、读取值为0xa03
这里是 I2C 分析器的输出。
为什么写入值和读取值不同?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Abid Hussain、
欢迎来到 E2E 论坛! 您实际上得到了应该得到的结果。 第15位(最高有效位)是运行状态(OS)位。 当 ADS1114处于单次转换模式时、向此位写入"1"时、将开始转换。 读取该位时、转换状态将用"0"表示正在进行转换、"1"表示器件当前未执行转换。
我的确注意到、第一组序列正确显示、并且发出了正确的 I2C START 和 STOP 信号。 但后来有一系列传输没有包括正确的启动、重复的启动或停止条件。 确保正确遵循 I2C 协议进行通信。
此致、
Bob B
尊敬的 Bob Benjamin:
感谢您的答复。
在读取此位时,转换状态将显示"0",表示正在进行转换,而"1"表示设备当前未执行转换。
知道了、我之前在数据表中没有注意到这一点。 我再次查看了数据表并发现了这一点。
我注意到第一组序列正确显示,并发出正确的 I2C 启动和停止信号。 但后来有一系列传输没有包括正确的启动、重复的启动或停止条件。 [/报价]您能指出一下、它到底在哪里发生。
再次感谢。