Hello,
I'm currently interfacing the ADS1298 with the STM32F407 microcontroller. I tried to put the ADS1298 in the standby mode to verify the functionalities of the SPI. The device ID it reads is 0x7F(0111 1111). However, I can write and read the other registers correctly. I have already tried to debug according to the power-up sequence as specified on page 85 in the data sheet. The VCAP1 voltage i measured is 1.194V. So what could be the cause of the issue? The following code is the ADS1298 initialization function that I'm using.
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; }
![](/resized-image/__size/640x480/__key/communityserver-discussions-components-files/73/038f58aa_2D00_dc22_2D00_4606_2D00_b3d8_2D00_de240c0083c9.jpg)