Tool/software:
I am experiencing an intermittent issue after Power-On Reset (POR) where, during the initialization process in certain power cycles, the RDATAC opcode does not take effect or RREG returns all-zero values. However, even when this issue occurs, reading the registers at runtime confirms that WREG operations were always successful.
Here is my initialization sequence:
MAIN Board POWER ON
void init_ads1292r (void)
{
ADS1292R RESET HIGH : 1 s
ADS1292R RESET LOW : 100 ms
ADS1292R RESET HIGH : 100 ms
SPI transceive dummy 10 bytes with zero value
delay 10 ms
SDATAC (Stop Read Data Continuously mode)
delay 10 ms
configure ADS1292R
delay 10 ms
verify configuration (READ ADS1292R registers) ---> always OK
delay 10 ms
RDATAC (Enable Read Data Continuously mode)
START PIN HIGH
}
When this issue occurs, running init_ads1292r()
again at runtime resolves the problem.
Also, although not yet 100% conclusive, my experiments suggest that the issue does not occur if no SPI communication (such as dummy data transmission) is performed before the SDATAC
command during the POR initialization sequence.
Is it not allowed to transmit any SPI data before SDATAC
after POR?
If that’s not the cause, what other possible root causes should I consider?
Thank you in advance.
Best regards,
Young