I'm using the ADS131A04 module in 16-bit Synchronous Slave Mode with the following hardware mode pin settings:
M0: No connection (synchronous slave mode )
M1: No connection (16-bit device word)
M2: GND (hamming code word validation off)
I was able to initialize the ADC module and read/write all the registers, but always obtained 0s for all the channel data after enabling the ADC.
Here is the communication sequence during initialization:
Tx: 0x0655 //Unlock
Rx: 0x0655
Tx: 0x0011 //Reset
Rx: 0xff04 //Ready
Tx: 0x0655 //Unlock
Rx: 0x0655
Tx: 0x4d02 //Set CLK1: Use an external 16.384MHz clock. fICLK = fCLKIN / 2
Rx: 0x2d02
Tx: 0x4e20 //Set CLK2: fMOD = fICLK / 2
Rx: 0x2e20
Tx: 0x4f0f 0000 0000 0000 0000 //Enable ADC
Rx: 0x2f0f 0000 0000 0000 0000
Tx: 0x0033 0000 0000 0000 0000 //Wakeup
Rx: 0x0033 0000 0000 0000 0000
Tx: 0x0033 0000 0000 0000 0000 //Lock
Rx: 0x0033 0000 0000 0000 0000
Tx: 0x0000 0000 0000 0000 0000 //Read data
Rx: 0x2200 0000 0000 0000 0000 // Problem: Status word(0x2200) indicates no error, but the following 4 words of channel data are all 0
...
Tx: 0x0000 0000 0000 0000 0000
Rx: 0x2200 0000 0000 0000 0000
I have measured the data signals on oscilloscope, and the measured result match the data I have received in my software code.
I wonder why I don't receive any channel data, no matter what voltage I feed into the ADC channels.
Thanks in advance.
Tx: 0x0033 0000 0000 0000 0000
Rx: 0x0033 0000 0000 0000 0000