TI论坛
直播中

麦特拉布

12年用户 1086经验值
私信 关注
[问答]

ADS1282读写寄存器读不出正确的结果,有时候是全0,为什么?


  • 请教一下我新做的ADS1282采集电路,供电DVDD=+3.3V, AVDD/AVSS=±2.5V, VREFP/VREFN=±2.5V,CLK为4.096MHz有源晶振SYNC/nPWDN/nRESET均上拉,未用的M0/M1/MCLK均下拉。
    现在的问题是,在初始上电后或者每次通过RESET引脚复位芯片后,直接读寄存器值得时候读出的就是正确的寄存器默认参数。但是每次我写一次寄存器后,无论写的什么值,再回读寄存器内容的时候就读不出正确的结果,有时候是全0,有时候是前几个寄存器值对而后边的不对,还有完全不对的情况。读采集数据也是无规律的乱变的数值或者全0或者满量程值等错误数据,与实际输入电压不符。
    想请问一下我现在这种情况出现的原因是 我操作时序不对还是怎么样。另外我因为电路设计时考虑不周初始上电时出现过模拟输入端前级放大器满量程饱和输出了+5V给AD,这会不会是AD芯片本身已经损坏了导致。不过我认为即使模拟端输入超过限定输入范围肯能导致采集电路部分损坏而采样不准可以理解,但是数字逻辑电路部分应该还没有完全损坏,因为我每次用读数据命令读取数据时DRDY引脚的输出状态是正常的,所以按理我觉的芯片逻辑电路部分应该是没什么问题。
    我还板上的DAC1282芯片采用相同的读写程序及逻辑时序,在读写寄存器操作时都是正常的。而手册中两者除了ADS1282命令及数据字节间必须加延时外好像没有什么不同,所以程序部分我觉得应该没大问题。
    另外就是Fsclk与Fclk之间的关系,手册中只给了大小范围,是否Fsclk与Fclk之间必须要有整数倍关系呢?

回帖(4)

李家沌

2024-12-13 10:36:05
 根据您的描述,不排除芯片已损坏的情况,建议更换一块新的试试。
另外,关于SCLK和CLK的关系,为了保证最佳性能,二者的关系为(1/2)^n关系,fSCLK的范围为(1/16)fCLK~(1/2)fCLK.
举报

王旭

2024-12-13 10:36:23
   很小很小的可能是芯片坏了,因为你直接读的时候默认寄存器参数是ok的,就是写的时候出问题了。我倾向于程序的问题,你降低写的频率看看,要确保所有的寄存器写的都是OK的。
--------------无论写的什么值,再回读寄存器内容的时候就读不出正确的结果,有时候是全0,有时候是前几个寄存器值对而后边的不对,还有完全不对的情况。------------这种情况值得注意,最好的对照办法当然是焊接两块板子进行对比了。
举报

刘佳

2024-12-13 10:36:25
ADC和MCU的通讯线之间加了缓冲器,在操作寄存器的时候,缓冲器的使能端关闭过早导致了数据出错,加了一定延时后现在读写寄存器都正常了。
举报
根据您的描述,您在使用ADS1282时遇到了读写寄存器的问题。以下是一些建议和可能的原因:

1. 检查时钟信号:确保CLK信号稳定且频率正确。您提到使用的是有源晶振,频率为4.096MHz。请检查晶振是否正常工作,以及时钟信号是否正确连接到ADS1282的CLK引脚。

2. 检查同步信号:SYNC/nPWDN/nRESET引脚均上拉,这可能导致信号不稳定。您可以尝试将这些引脚连接到一个稳定的上拉电阻(例如10kΩ),以确保信号稳定。

3. 检查电源:您提到供电DVDD=+3.3V, AVDD/AVSS=±2.5V, VREFP/VREFN=±2.5V。请确保这些电源电压稳定且在规定的范围内。不稳定的电源可能导致寄存器读写错误。

4. 检查数据线连接:确保数据线(DIN、DOUT、DCLK、CS)正确连接到ADS1282,并且没有短路或断路。数据线连接不良可能导致读写错误。

5. 检查寄存器写入操作:请确保您在写入寄存器时遵循正确的操作步骤。在写入寄存器之前,您需要确保CS引脚被拉低,然后发送正确的写入命令和数据。在写入完成后,您需要将CS引脚拉高以结束写入操作。

6. 检查代码逻辑:请检查您的代码逻辑,确保在读写寄存器时没有逻辑错误。例如,确保在写入寄存器之前已经正确配置了寄存器地址和数据,以及在读取寄存器之前已经正确配置了寄存器地址。

7. 检查硬件布局:请检查您的硬件布局,确保没有错误的布线或布局问题。这些问题可能导致信号干扰或不稳定,从而导致读写错误。

综上所述,您需要检查时钟信号、同步信号、电源、数据线连接、寄存器写入操作、代码逻辑和硬件布局等方面,以找出导致读写寄存器错误的原因。希望这些建议能帮助您解决问题。
举报

更多回帖

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