ADS7882
either MSP430F5659 or Atmel XMEGA256A3
Issue: The RESET sequence for the ADS7882 has strict timing to read the data buss. CPU at 24MHz has cycle time that, combined with code latency, simply cannot make the PWD_RST bytes appear at the device I/O. At least, this is my present hypothesis.
Or, maybe the issue is me :)
Is this a correct understanding of the use of PWD_RST?
1. PULL LOW: CS, CONVST, RD
2. PULL HIGH: A_PWD (I leave it there)
3. PULL HIGH: PWD_RST
4. Wait a few microseconds
5. PULL LOW: PWD_RST and keep low
6. Immediately read data bus DB0-DB11 where 0xFE0 should be present
7. WAIT for no more than 6140 nS
8. PULL LOW: PWD_RST and keep HIGH
With a 24MHz clock I am assuming a __no_operation() (equivalent to 1 CPU cycle) is approximately 42ns. So I use some of these to establish the minimum timing,
Occasionally I get some data on the bus, but mostly 0x000.
I'm using this PWD_RST data read back to confirm I have a good chip and buss. I trust both at this point, and think the problem is in the timing.
Note: I have enabled and disabled pullups on the bus. No difference. Does this device require pullups?
Ideas anyone?