I 've got an ADS1299 device and trying it with my MCU via SPI interface. The DRDY pin is used to trigger ISR on the MCU.
To let the MCU manage ADS device via SPI interface, we statically provisioned the PWDN, RESET, START, CLKSEL DAISY pins. The major interface between MCU is the SPI interface and the DRDY interrupt line. The ADS powers on at the same time as the MCU using 5V single polar mode, there is no interaction between the MCU and ADS before the MCU is fully ready (which needs at least 1sec). The use of the ADS is started by an user interaction with MCU and it will be stopped by another interaction.
So my use of the ADS device will start 1+sec after its power on and each use has follows three major stages:
- setup stage. Here the MCU sends RESET for first use (and WAKEUP for repetitive uses), waits for 1ms, then sends SDATAC, then does WREG to setup rates and channels, it then does RREG to dump all registers and then sends START to start conversion, finally it sends RDATAC;
- data reading stage. Here the MCU simply waits for DRDY signal and then reads 216bits via SPI;
- tear down stage. Here the MCU send SDATAC command and then STANDBY command.
My MCU will repeat the above use steps.
My question is that sometimes the above process works as expected but sometimes the DRDY triggering seems not happening or happens only once per use. In both cases, the RREG returns reasonable registers values like
3e 96 c0 60 00 61 61 61 61 61 61 61 61 00 00 00 00 00 00 00 cf 00 00 00
. My device statically selects PWDN, RESET and CLSEL pins so that the MCU can use SPI commands to control ADS. When the device works, I can do many use loops without issue (e.g. keep using for 10min or 1hour), however, it may not work after next power on. Once it fails to work, I can hardly make it work by simply repeat power-off-on cycle --- but during the practices, I found that by short cut the 3V3-GND and 5V-GNG pins during power off, I will have a larger chance to get it back to working state.
Hope I can get some hints here.
Regards,
yf