I'm having trouble writing to any registers on the ADS8201. When I try to read from the registers on the chip, I get the expected power-on default values. However, if I write to a register and then read it back, I'm still getting the power-on default value.
Here's an example:
(Please visit the site to view this file)
The commands in the above sequence are:
0xA4AA - software reset
0x6000 - read reg 0x8 (returns 0x02, the expected register value after reset, though data sheet suggests SDO should output all ones on the operation following a reset)
0xA000 - write 0x00 to reg 0x8
0x6000 - read reg 0x8 (expected 0x00, still returns 0x02)
0x9005 - write 0x05 to reg 0x4
0x5000 - read reg 0x4 (returns 0x00, expected 0x05)
0x9403 - write 0x03 to reg 0x5
0x9800 - write 0x00 to reg 0x6
0xA005 - write 0x05 to reg 0x8
0x6000 - read reg 0x8 (still returns 0x02, expected 0x05)
The SPI mode is set to 0, SCK frequency is 1.3MHz.
(Please visit the site to view this file)
I've looked at all the signals on an oscilloscope and they all look clean. I've also tried multiple ADS8201 parts, but they've all shown the same behavior.
Any help would be appreciated. I must be missing something subtle.