最近在用STM32+ADS1292做一个采心电的板子,还没开始采人体信号,想先采一下芯片内部的Test Signal。但是出来的结果总是不对。
我的初始化流程如下:
ADS_RESET_H;// \RESET=1
ADS_CS_H;// \CS=1
ADS_START_L; START=0
delay_ms(100);
ADS_CS_L;// \CS=0
SPI_WriteByte(ADS_RESET);//写入RESET指令
delay_ms(10); //等待
SPI_WriteByte(SDATAC); //写入SDATAC指令
delay_ms(100);
/*寄存器配置*/
Write_REG(CONFIG1,0x00);//采样率500SPS
Write_REG(CONFIG2,0xA3);//使用内部的2.42V参考电压,打开TEST SIGNAL,输出1Hz方波
Write_REG(LOFF,0x10);
Write_REG(CH1SET,0x81);//通道1关闭并短接
Write_REG(CH2SET,0x15);//通道2增益设置为1,输入test signal
Write_REG(RLD_SENS,0x00);
Write_REG(LOFF_SENS,0x00);
Write_REG(LOFF_STAT,0x00);
Write_REG(RESP1,0x02);//
Write_REG(RESP2,0x87);//
Write_REG(GPIO,0x00);
SPI_WriteByte(ADS_OFFSETCAL);//通道偏移校正
ADS_START_H;//START=1
ADS_CS_L;// \CS=0
SPI_WriteByte(RDATAC);
电路图如下所示:
寄存器均可正常读写,但是得到的数据却不是1Hz,1mV的方波信号。而且使用不同的通道作为test signal的输入时,结果差别很大。
希望有大神能够帮忙解决,看看是寄存器配置的问题,还是电路设计的问题,或者操作流程的问题。在此深表感激!
Yaofeng Guan:
当我按照datasheet上的操作流程进行噪声检测时,寄存器配置如下:
Write_REG(CONFIG1,0x00);//采样率500SPSWrite_REG(CONFIG2,0xA0);//使用内部的2.42V参考电压Write_REG(LOFF,0x10);Write_REG(CH1SET,0x01);//通道1打开并短接Write_REG(CH2SET,0x01);//通道2打开并短接Write_REG(RLD_SENS,0x00);Write_REG(LOFF_SENS,0x00);Write_REG(LOFF_STAT,0x00);Write_REG(RESP1,0x02);//Write_REG(RESP2,0x07);//Write_REG(GPIO,0x00);
得到的数值是:
C00000(24位状态寄存器)+FFFB04(通道1数值,在这个值附近变化)+FFFD09(通道2数值,在这个值附近变化)
显然这个数值不应该这么大才对,不知道哪里出了问题
Mickey Zhang:
回复 Yaofeng Guan:
电路建议重新修改下,请参考附件。
Yaofeng Guan:
回复 Mickey Zhang:
谢谢您的帮助,当初设计电路的时候就是参照这个图做的,现在还没有测外部信号,只是想先测一下内部的测试信号,还是不行,不知道原因出在哪
yun tan1:
回复 Yaofeng Guan:
大兄弟,你现在测到心电信号没有?我也在做这个,加QQ聊一下?734932586