This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I was trying to read 12 lead ECG data from ADS 1298 through SPI communication. I am read the same 8 bit data all the time. Is it like that?
And Is there any structure for the streaming data (like is it obtaining in any packet structure)?
Thanks,
Neelima
Hi,
Could you explain your question a bit more clear?
Do you have an ADS1298 evaluation kit/board(EVM)?
--------------------------------------
Could you check have you
done proper power up sequence?
done proper reset sequence?
followed the SPI timing diagram in the datasheet and to read the ID: ID Control Register (address = 00h) correctly and repeatedly?
----------------------------
what data or signal are you trying to read?
What might be your signal source?
Could you also try to read the internal test signal?
Thanks
Hi,
We are not using ADS1298 evaluation kit/board(EVM).
I have checked the power-up sequence. Basically I am able to read and write to the registers of AFE. That is how I confirmed that the power-up sequence is fine.
Now I am trying to read the 12 lead ecg data from the channels. Given below is the configuration I have done.
void ADS1298_init()
{
HAL_Delay(1000);
ADS1298_Power_up_seq();
HAL_Delay(1000);
ADS1298_Power_up_seq();
HAL_Delay(100);
ADS1298_SDATAC();
HAL_Delay(100);
ADS1298_writeReg(CONFIG1, 0b01000100);
HAL_Delay(100);
ADS1298_writeReg(CONFIG2, 0x40); //reset
HAL_Delay(100);
ADS1298_writeReg(CONFIG3, 0b11001100);
HAL_Delay(100);
ADS1298_writeReg(LOFF, 0x41); //////////////////////////////////////
HAL_Delay(100);
ADS1298_writeReg(CH1SET, 0b01100000); //Channel1 is active
HAL_Delay(100);
ADS1298_writeReg(CH2SET, 0b01100000); //Channel2 is active
HAL_Delay(100);
ADS1298_writeReg(CH3SET, 0b01100000); //Channel3 is active
HAL_Delay(100);
ADS1298_writeReg(CH4SET, 0b01100000); //Channel4 is active
HAL_Delay(100);
ADS1298_writeReg(CH5SET, 0b01100000); //Channel5 is active
HAL_Delay(100);
ADS1298_writeReg(CH6SET, 0b01100000); //Channel6 is active
HAL_Delay(100);
ADS1298_writeReg(CH7SET, 0b01100000); //Channel7 is active
HAL_Delay(100);
ADS1298_writeReg(CH8SET, 0b01100000); //Channel8 is active
HAL_Delay(100);
ADS1298_writeReg(RLD_SENSP, 0b11111111); //RNDP of channel 2 active
HAL_Delay(100);
ADS1298_writeReg(RLD_SENSN, 0b11111111); //RLDN of channel 2 active
HAL_Delay(100);
ADS1298_writeReg(LOFF_SENSP, 0b11111111);
HAL_Delay(100);
ADS1298_writeReg(LOFF_SENSN, 0b11111111);
HAL_Delay(100);
ADS1298_Start();
HAL_Delay(100);
ADS1298_RDATAC();
HAL_Delay(100);
}
The main section is given below:
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
ADS1298_readReg(LOFF_STATP);
if(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_9)== GPIO_PIN_RESET)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); // CS low
HAL_SPI_Receive(&hspi1, &ecgData, 1, HAL_MAX_DELAY); // Receive data
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); // CS low
}
}
When I am trying to read the ecg data I am getting 0xC0 with and without giving the input. Is there anything wrong in this?
Hi,
Let's take one step back before looking at the ECG signal.
Can you first check
followed the SPI timing diagram in the datasheet and to read the ID: ID Control Register (address = 00h) correctly and repeatedly?
Could you also try to read the internal test signal?
Let's make sure the internal test signal can be read properly first.
----------------------------
what data or signal are you trying to read?
What might be your signal source?
Is the signal source from a ECG simulator?
If internal test signal can be read properly, then try to see if you could read 1Channel ECG from a ECG simulator successfully.
Thanks
I read the ID control register correctly and repeatedly.
I didn't test with internal test signal.
The signal source was from ECG Simulator.
Hi,
Please try to read internal test signal first.
If above is successful, then try read 1 channel ECG signal using a simulator.
Thanks