1、ADS1256上电初始化,先设置status,mux,adcon,drate几个寄存器值,分别设置成0x04,0x18,0x20,0x63(drate为50sps)设置是成功的(因为我调试的时候用rreg指令回读过与设置值一致),然后等待drdy变低后,发送一个selfcal指令,等待50ms后完成整个初始化;
2、读取ADS1256转换值,操作时序如下:
等待drdy变低,修改mux值(发送0x51,0x00,0x18),发送sync,wakeup,最后rdata;
调试的时候用串口来触发读取,串口发送一个读取命令(自定义的),然后单片机接收后启动一次上述ADS1256操作时序,读取ad转换值,然后将值回送到串口,串口读取的间隔时间为1sec;
注:我用串口读取的一直是ADS1256的同一个通道,如通道1;
开始的时候很正常,drdy输出正常(ADS1256收到wakeup指令后 drdy变高,然后开始同步并转换,持续时间20ms左右,然后又变低),但是串口持续读取一段时间后,drdy信号突然又变为30khz的连续波形了,真不知道是什么原因;
还有一个问题:有时候连续读取一段时间后,AD转换值会不正常,是一个与输入电压完全不相关的值,而且之后的转换值大致都是这个值,必须要重新上电才正常;
真不知道到底是芯片有问题还是我操作上哪里不对了;
jiantao chi:
今天调试了一天,发现一个问题,长时间读取ad值后,ads1256不知何原因被reset了,因而造成drate变回来30ksps了,我的reset与sync引脚都是直接接DVDD 3.3V的,reset引脚没有低脉冲的可能性,软件上也无reset指令,sclk引脚也无特殊的reset波形(3个连续特定高电平脉冲),不知道问题出在哪里,会引起ads1256的复位???
Wayne Xu:
回复 jiantao chi:
请问你的应用里RESET的引脚是怎么接的。
jiantao chi:
回复 Wayne Xu:
sync和reset都直接接了dvdd 3.3V的
Wayne Xu:
回复 jiantao chi:
请检查干扰,会不会使芯片复位,一个是外界信号的干扰使芯片硬件复位。一个是总线干扰。
jiantao chi:
回复 Wayne Xu:
请问下专家:引起芯片复位的外界因素有哪些?
1、我的reset引脚直接接了DVDD,如果DVDD有超过2US的负脉冲,那么芯片会复位
2、如果sclk上有特殊的reset波形(3个连续特定高电平脉冲),也会引起芯片复位
其他的还有什么原因会引起芯片复位呢?
jiantao chi:
回复 Wayne Xu:
的确是隔离后信号上有毛刺的问题,最后解决了,谢谢ti工程师的无私帮助
rong jia1:
回复 Wayne Xu:
我也遇到这个问题,烦得很
lin zhang1:
回复 rong jia1:
我好想也遇到了,刚开始采集是对的,差不多一段时间后值就是一个和输入电压无关的值,而且一直就是那个值
user5101088:
回复 lin zhang1:
测量一下基准引脚间的电压,我现在遇到的是基准引脚上的电压被拉低了,导致基准驱动运放都发烫,把ADS1256拆掉后,再量基准引脚的焊盘处电压很正常,说明是ADC芯片问题。