Part Number: ADS124S06
Other Parts Discussed in Thread: ADS124S08EVM
Hi!
We have a ADS124S06 connected to an Atmel SAMD21, using 47 ohms in-line resistors for all data lines as recommended in the datasheet (figure 111) except for -DRDY (pin 13). START/SYNC (pin 8) and CLK (pin 17) are tied to DGND. The ADS124S06 is mounted on a custom test board, the SAMD21 is on a Sparkfun breakout board, connection between boards is done via short jumper wires, as usual for our test setups.
AVCC is connected to +2.5V, AVSS and AVSS-SW to -2.5V, IOVDD and DVDD to +3.3V.
My SAMD21 software sends a reset pulse to pin 18, waits 2 msec, then starts by reading all 18 registers, sending out 0x20, 0x11, followed by 18 bytes of 0x00. I expect to read back two bytes of junk, followed by the default register values (0x00, 0x80, 0x01, 0x00, 0x14, 0x10, 0x00, 0xFF, ...). I get back 20 bytes of 0x00. SPI clock was about 1 MHz, reducing the SPI clock to about 100 kHz did not help at all.
I've verified that the SAMD21 SPI interface is ok. The ADS124S06 is actively forcing MISO low. SPI signals look ok on a scope. The ADS124S06 sends pulses on the -DRDY line (pin 13), so my SAMD21 software attempts to read back samples using the RDATA command (0x12) followed by 0x00 bytes. It reads back a stream of 0x00. We have double checked and triple checked the layout, the soldering, possible shorts etc., so it is not caused by a trivial hardware fault.
To rule out any software issues, we've bought an ADS124S08EVM eval board, populated the J3 header, and tested simply reading the register values using the TI PC software. The bare board reads back the registers as expected. Attempting to measure the SPI signals CS and SCLK with 1:1 probes on a scope (1 MOhm || 13 pF) caused the PC software to read all registers back as 0x00, like in our test setup. Switching SCLK to a 10:1 probe caused random switches between expected values and 0x00. Switching also the CS probe to 10:1 gave stable values. Connecting two more 10:1 probes to MISO and MOSI allowed us to watch the register read-out working as expected on the ADS124S08EVM. The exact same sequence of 0x20, 0x11, and 18 times 0x00 was send out, and after two junk bytes, the register default values were read back.
Our test board usually does NOT have a scope connected, but still it only returns 0x00.
So:
Why does the ADS124S06 on our test board constantly return 0x00?
Why does the ADS124S08EVM show the same behaviour when probing the SPI lines with a 1:1 probe (1 MOhm || 13 pF)?
Does the ADS124S0x need some extra hardware to be able to communicate with the SPI interface of a generic 3.3V microcontroller?
Thanks in advance.