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转换值会不正常,是一个与输入电压完全不相关的值,而且之后的转换值大致都是这个值,必须要重新上电才正常;
真不知道到底是芯片有问题还是我操作上哪里不对了;