I am using the ADC128 in continuous conversion mode. We are getting bad data on the I2C line and are trying to decipher what it is from. I am looking at everything from noise on the I2C line to the stability of the registers when I'm doing the read. The logic that I am using now is that I check the register on address 0x0C to see if the ADC128 is converting, if it is not I start reading my registers being used and have up to 5 reads on a giving ADC128 address. The data that we are getting will have zero a lot of the time and will also have some other erroneous values that are somewhat random. I think the zeros are coming for the register address getting corrupted on the way over and reading a disabled register which is zero; and, the other data to be either corrupted from the read or I2C transport. I can see that the ADC128 takes 12.2 ms for a voltage and 3.6 ms for the temperature, so I am looking at 40-80 ms that the ADC128 is busy.
The questions that I need answered are:
1) In the Continuous Conversion Mode, what sets off the next conversion cycle? Is it on a timer or does a read trigger it.
2) What is the length of time between Conversion cycles?
3) If it is triggered off a read, does just that register do a conversion leaving the other registers safe for a read? (That makes no sense because you only have one busy bit)
4) Is only doing one Busy Status check and then doing 5 read register OK or do I need to do it before each register read, this would be a problem if the read triggered the Conversion cycle?
5) What happens if the Conversion cycle triggers before I am done reading all the registers?
Thanks,
Todd Horting
ACT Inc.