Of 1000 analog reads from the ADS1158, only ~200 are correct. If I check the New bit of the Status byte, the correct readings always occur for a New reading, and error readings are when the New bit is not set. (Note I read every time the DRDY line goes low, but it stays low so I read too often which could explain things here. See next problem.)
I also have a problem in that the DRDY line always stays low. After a read, I can see on a scope that it goes from ~0.2 to ~0.5V after a read at the point expected from the data sheet for it to go high. But it never actually goes to a logic high - ever. I looked for shorts many times in many ways, and built a new board. But I still see the same behavior.
Finally, I set the Start pin through GPIO7. I find GPIO7 is set only about 30% of the time I write the command! Again, I checked for shorts and outputs many times. Each of my GPIO are connected to ground through a 10K pull down resistor.
Other information:
- Digital supply is 3.3V; Analog supply is 5.0V, Vref = 2.5V
- I use a data clock source from a FPGA around 12.5 MHz
- I read a single ended analog channel 0 by setting MUXSGO to 0x01, and the other MUXSG1 set to 0.
- I read using Direct Channel Read (register format) (I send 0x30 command, including MUX bit)
Anyone have clues? Could this be a communication prbblem on the reading and GPIO set? Then why does DRDY stay low, aways indicating data is available?
Thanks