TI论坛
直播中

戚歆敦

7年用户 996经验值
私信 关注
[问答]

ADS1248读写暂存器时,先写入暂存器,想再读出来检查是否写入正确,却都只能读到0,为什么?

ADS1248读写暂存器时,先写入暂存器,想再读出来检查是否写入正确,却都只能读到0
以下是使用逻辑分析仪分析的结果

指令为先写入0x16(SDATA command) -> 0x40(WREG 1st command) -> 0x00(WREG 2nd command) -> 0x13(AIN2、AIN3)
接着依同样方式写入MUX1和IDAC0暂存器
之后想读出00-0E全部的暂存器资料,所以写入0x20(RREG 1st command) -> 0x0E(WREG 2nd command)
但读出结果全部为0x00,不知道是程序上有错误还是问题出在哪?

回帖(2)

陈茹

3 天前
  你的图中, 时序里的时钟太密, 看不清关系, 你先自己检查一下吧
举报

王利祥

3 天前
根据您的描述,您在使用ADS1248时遇到了读写暂存器的问题。在尝试读取暂存器时,您只能读到0x00。以下是一些可能的原因和解决方法:

1. 检查ADS1248的初始化和配置:确保您已经正确地初始化和配置了ADS1248。这包括设置正确的时钟源、参考电压、采样率等。如果配置不正确,可能会导致读写操作失败。

2. 检查SPI通信:确保您的SPI通信设置正确,包括时钟频率、CPOL、CPHA等。错误的SPI设置可能会导致数据传输错误。

3. 检查地址和命令:确保您使用的地址和命令是正确的。在您的描述中,您使用了0x16(SDATA命令)和0x20(RREG命令)。请确保这些命令和地址是正确的,并且与ADS1248的数据手册相符。

4. 检查读写顺序:在读取暂存器之前,您需要先写入正确的地址。在您的描述中,您使用了0x0E作为地址。请确保这个地址是正确的,并且与您想要读取的暂存器地址相符。

5. 检查逻辑分析仪设置:确保您的逻辑分析仪设置正确,包括时钟频率、触发条件等。错误的设置可能会导致数据读取错误。

6. 检查ADS1248电源和接地:确保ADS1248的电源和接地连接正确。不稳定的电源或接地可能会导致数据读取错误。

7. 检查代码逻辑:检查您的代码逻辑,确保在读取暂存器之前已经正确地写入了数据。如果写入操作失败,读取操作自然也会失败。

综上所述,您需要检查ADS1248的初始化、配置、SPI通信、地址和命令、读写顺序、逻辑分析仪设置以及电源和接地。确保这些方面都正确无误后,您应该能够成功地读取暂存器数据。如果问题仍然存在,请参考ADS1248的数据手册,以获取更多关于读写操作的详细信息。
举报

更多回帖

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