Part Number: ADS1298
TI的专家们好, 我在使用两片ADS1298采集脑电信号时遇到了DRDY电平异常的问题,我将两片ADS1298的CS START CLK SCLK RESET DRDY引脚都连在一起,上电后用示波器测量出DRDY引脚的电平信号不稳定,高电平时电压值达到4V,低电平时电压值达到2V左右;我移除第二片ADS1298,只将第一片与MCU相连后,量得上电后DRDY引脚可以间隔一段时间从4V跳变到0V,我想知道这是否是因为我的硬件连接方式错误,还是因为软件配置有误。这是配置这些引脚的代码:
void GPIO_Init_All(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
// 配置RESET PWDN START引脚
GPIO_InitStruct.GPIO_Pin = ADS_RST_PIN | ADS_PWDN_PIN | ADS_START_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct);
// 配置DRDY引脚
GPIO_InitStruct.GPIO_Pin = ADS_DRDY_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStruct);
//配置PB11为DRDY中断引脚
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11);
EXTI_InitTypeDef EXTI_InitStruct;
EXTI_InitStruct.EXTI_Line = EXTI_Line11;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
//设置中断优先级
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_InitStruct.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
ADS_RST_H();
ADS_PWDN_H();
ADS_START_L();
}
我的DVDD为3V,AVDD为2.5V,DGND为0V,AGND为-2.5V,使用示波器测量时,探头的地线接的是DGND。无论用几片ADS1298与MCU相连,SCLK和DOUT均有正常的0~3V的方波输出;已将第一片ADS1298的CLKSEL引脚与3V相连,第二片的该引脚接DVDD,CONFIG1配置为0x25,CONFIG3配置为0xDC,保证两片使用的是同一时钟;我也已将第一片ADS1298的DRDY引脚通过10kΩ的电阻与3V相连。
这个问题烦扰了我很久,如能得到您的解惑,我将感激不尽。