Other Parts Discussed in Thread: ADS131A02
I am implementing an interface to the ADS131A04. I followed the startup sequence in ads131a02 ADC.pdf, page79. My RESET pin is tied high so it goes high on power up. I am sending a soft RESET command as my first command then reading status until I get the status of 0xff04. Initially this worked.
When I had initial success I followed up by configuring the chip, sending:
ADC_TxBuff[0] = 0x6b03; // WREGS: 011a aaaa nnnn nnnn = starting reg = 0x0b, 4+1 registers to write
ADC_TxBuff[1] = 0xe83e; // reg 0x0b & 0x0c
ADC_TxBuff[2] = 0x02a0; // reg 0x0d & 0x0e
ADC_TxBuff[3] = 0x0f00; // reg 0x0f & 0x10
ADC_TxBuff[4] = 0x0000;
ADC_TxBuff[5] = calc_CRC(ADC_TxBuff, 10); // size = size in bytes
Is the configuration persistent after power cycling?
I then enabled ADCs with the command 0x4f0f, woke up the device with command 0x0033, locked registers with command 0x0555 and then read the ADCs once every 23ms using the status command.
Everything looked great...
However, now when I start up my device I never get the 0xff04 status reply. Instead, the status response to the RESET command (0x0011) I get 0x2210. For the followup command I then send a null command (0x0000) I get status response 0x2250. I send another null command (0x0000) I get status response 0x2210. Subsequent status commands return 0x2210.
The spec says that the null command, 0x0000, should return STAT_1 register in the following command. STAT_1 is an 8 bit register. Is STAT_1 the high 8 bits? What is in the lower 8 bits?
I am using 16 bit words, no hamming.
It appears to me that the device just starts up ready and reading. When I request status (0x0000) not only do I get status response but I get four very high values. I don't have actual sensors hooked up to the ADC chip yet so I can believe the very high numbers are probably ADC readings.
Thanks in advance for your assistance.
ken