Hello! I am using MSP432 to communicate with ADS131A04 ADC using 32 bit words (M1 = 1), asynchronous interrupt mode (M0 = 1), without Hamming code validation (M2 = 0), at 1MHz SPI clock, with external reference voltages and 16.384MHz crystal. The problem is that the ADC works with a different data rate than the one set by me. This is my program flow:
1. Wait for READY word;
2. UNLOCK;
3. Write registers:
#define ADS131A04_A_SYS_CFG_VALUE 0x60 #define ADS131A04_D_SYS_CFG_VALUE 0x3C #define ADS131A04_CLK1_VALUE 0x02 #define ADS131A04_CLK2_VALUE 0x26 // for 10.24kHz data rate #define ADS131A04_ADC_ENA_VALUE 0x00 #define ADS131A04_ADC1_VALUE 0x00 #define ADS131A04_ADC2_VALUE 0x00 #define ADS131A04_ADC3_VALUE 0x00 #define ADS131A04_ADC4_VALUE 0x00
4. Enable ADCs;
5. WAKEUP;
6. Loop where I wait for DRDY interrupt and read sampled data.
I have attached the logic analyzer capture (it can be opened using the free Salae Logic Pro software). As you can see on Channel 4, the time between two DRDY pulses is ~4us, and it should be ~100us.
What am I doing wrong? Also, why do I get DRDY fault after issuing the WAKEUP command?