您好!
我目前正在将 ADS1298与 STM32F407微控制器相连。 我曾尝试将 ADS1298置于待机模式、以验证 SPI 的功能。 它读取的器件 ID 为0x7F (0111 1111)。 但是、我可以正确写入和读取其他寄存器。 我已经尝试根据数据表85页指定的上电顺序进行调试。 测得的 VCAP1电压 I 为1.194V。 那么、问题的原因可能是什么? 以下代码是我正在使用的 ADS1298初始化函数。
void ADS_Init(){
if(verbose){
HAL_Delay(6000);
USB_Print("\n************************\n");
USB_Print("Start ADS1298\n");
}
ADS_RESET();
HAL_Delay(500);
ADS_SDATAC();
HAL_Delay(500);
ADS_getDeviceID();
HAL_Delay(1000);
//Work Settings
ADS_WREG(CONFIG1,0x06);
HAL_Delay(100);
ADS_WREG(CONFIG2,0x10);
HAL_Delay(100);
ADS_WREG(CONFIG3,0xDC);
HAL_Delay(100);
ADS_WREG(LOFF,0x00);
HAL_Delay(10);
ADS_WREG(CH1SET,0x60);
HAL_Delay(10);
ADS_WREG(CH2SET,0x60);
HAL_Delay(10);
ADS_WREG(CH3SET,0x60);
HAL_Delay(10);
ADS_WREG(CH4SET,0x60);
HAL_Delay(10);
ADS_WREG(CH5SET,0x60);
HAL_Delay(10);
ADS_WREG(CH6SET,0x60);
HAL_Delay(10);
ADS_WREG(CH7SET,0x60);
HAL_Delay(10);
ADS_WREG(CH8SET,0x60);
HAL_Delay(10);
ADS_WREG(BIAS_SENSN,0x00);
HAL_Delay(10);
ADS_WREG(BIAS_SENSP,0x00);
HAL_Delay(10);
ADS_WREG(LOFF_SENSN,0x00);
HAL_Delay(10);
ADS_WREG(LOFF_SENSP,0x00);
HAL_Delay(10);
ADS_WREG(LOFF_FLIP,0x00);
HAL_Delay(10);
ADS_WREG(LOFF_STATP,0x00);
HAL_Delay(10);
ADS_WREG(LOFF_STATN,0x00);
HAL_Delay(10);
ADS_WREG(GPIO,0x0F);
HAL_Delay(10);
ADS_WREG(PACE,0x00);
HAL_Delay(10);
ADS_WREG(RESP,0x00);
HAL_Delay(10);
ADS_WREG(CONFIG4,0x00);
HAL_Delay(10);
ADS_WREG(0x18,0x00);
HAL_Delay(10);
ADS_WREG(0x19,0x00);
HAL_Delay(10);
ADS_RREGS(0,17);
HAL_Delay(1000);
//ADS_START();
//HAL_Delay(100);
if(verbose){
USB_Print("\nADS1298 configure DONE!\n");
USB_Print("\n**********************\n");
HAL_Delay(3000);
}
}
void ADS_SDATAC(){
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin,GPIO_PIN_RESET);
transferSPI(_SDATAC);
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin,GPIO_PIN_SET);
}
void ADS_RESET(){
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin,GPIO_PIN_RESET);
transferSPI(_RESET);
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin,GPIO_PIN_SET);
}
uint8_t ADS_getDeviceID(){
uint8_t data = ADS_RREG(ID);
if(verbose){
USB_Print("\nDevice ID: ");
USB_SendBits(data);
}
return data;
}



