Other Parts Discussed in Thread: AFE4400, ADS1292ECG-FE
TI工程师,您好,我最近在用ADS1291采集心电信号,使用连续模式时,可以正常采集信号,但使用单次转换模式时,DRDY引脚一直是高电平,无法读取数据,调试的过程中有两次突然可以正常触发读取数据,但其后就再也没有读到数据了。
我是使用的ADS1291和AFE4400同步采集PPG和ECG,AFE4400的DRDY作为触发信号,当AFE4400的DRDY中断后,读取AFE4400的数据,然后将ADS1291的START引脚置高,等待ADS1291的DRDY引脚产生下降沿,然后读取ECG数据,读取完成后将ADS1291的START引脚置低,如此完成一次数据读取。
下图是电路图:
ADS1291配置如下:
uint8_t ADS1291_Register_Settings [11] =
{
0x82, // CONFIG1
0xA2, // CONFIG2
0x10, // LOFF
0x00, // CH1SET
0x01, // CH2SET
0x33, // RLD_SENS
0x00, // LOFF_SENS
0x00, // LOFF_STAT
0x02, // RESP1
0x03, // RESP2
0x0C // GPIO
};
初始化流程如下:
Ads1291_ConfigGPIO();
bsp_InitSPIBus(SPI_COM1,SPI_BAUDRATEPRESCALER_128,SPI_PHASE_2EDGE,SPI_POLARITY_LOW);
Ads1291WriteCmd(ADS1291_SDATAC);//发送停止连续读取数据命令
HAL_Delay(100);
Ads1291WriteCmd(ADS1291_RESET);//复位
HAL_Delay(1000);
Ads1291WriteCmd(ADS1291_SDATAC);//发送停止连续读取数据命令
HAL_Delay(100);
Ads1291WriteRegister(ADS1291_CONFIG1,11,ADS1291_Register_Settings);//配置ADS1291寄存器
单次触发读取数据流程如下:
Ads1291Start();//ads1291开始一次转换,START引脚置高电平
while(1) //等待DRDY引脚产生下降沿
{
if(bsp_Ads1291DataReady())
break;
}
Ads1291WriteCmd(ADS1291_RDATA);
bsp_Ads1291ReadData(ECG_DATA);
Ads1291Stop();//ads1291停止一次转换,START引脚置低电平
所以我想请教一下,这个流程是对的吗?为什么有两次能正常触发,但其后再也不能正常工作了,但连续读取模式时,又是正常的。谢谢。