TI论坛
直播中

王兰

14年用户 943经验值
擅长:基础元器件
私信 关注
[问答]

使用ads1112单次转换写入0xfc,读取数据之后,控制寄存器职位0x7c,请问这是什么原因?


  • 你好!我最近使用ads1112单次转换写入0xfc,读取数据之后,控制寄存器职位0x7c,请问这是什么原因,最高位不应该是1吗?而且我先使用0xfc转换,后使用0xdc,为什么读取的值不变?也就是单次读取方式不可以转换通道。

回帖(2)

杨思

2025-2-14 10:01:00
你好! 根据手册第11页, bit7的:ST/DRDY位,当在单次采样的时候读回配置寄存器的位数为1表明,这个值不是最新的数据,为0表示是当前采样得到的数据,所以得到为0x7c是正常的。
另外,用0xfc转换和0xdc转换的时候,V2和V3上的电压分别为多少? 采集到的数据不变又为多少?
举报

李辉

2025-2-14 17:52:00
你好!关于你的问题,我会逐一解答。

1. 控制寄存器位0x7c的原因:

ADS1112的控制寄存器是一个8位寄存器,用于设置ADC的配置。0x7c表示控制寄存器的二进制值为01111100。这个值表示:

- 位0(最右边):单次转换模式(1)
- 位1:通道选择(0)
- 位2:通道选择(0)
- 位3:通道选择(0)
- 位4:通道选择(1)
- 位5:增益选择(0)
- 位6:增益选择(0)
- 位7(最高位):启动转换(0)

从这个配置来看,最高位(位7)是0,表示没有启动转换。这可能是导致你的问题的原因之一。

2. 最高位不应该是1的原因:

最高位(位7)用于启动转换。在单次转换模式下,你需要将最高位设置为1来启动转换。如果你没有这样做,那么转换就不会开始,导致读取的值不变。

3. 单次读取方式不可以转换通道的原因:

在单次转换模式下,你需要在每次转换之前设置通道和增益。如果你没有在每次转换之前设置通道,那么读取的值就会保持不变。为了在单次读取模式下转换通道,你需要在每次转换之前更改控制寄存器的通道选择位(位1-4)。

综上所述,你可能需要检查你的代码,确保在每次转换之前正确设置控制寄存器的通道选择位和启动转换位。希望这些信息能帮助你解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分