Other Parts Discussed in Thread: LMP7701, TPS63002
I am using the ADS122C04, and have been quite successful using the Turbo Mode at 2000 SPS.
Recently I have switched to Normal Mode at 20 SPS and have been met with a strange issue.
Here is how the device is setup in my initialization:
resetADS122C04() //Configue the device how we want it writeRegister(CONFIG_REG_0, (DEFAULT_REGISTER_VALUE | AIN_P_AIN0_AIN_N_AIN2 | PGA_DISABLE | GAIN_1)) writeRegister(CONFIG_REG_1, (DEFAULT_REGISTER_VALUE | CONVERSION_MODE_CONTINUOUS | DATA_RATE_20_40 | OPERATING_MODE_NORMAL)) //Reading back the registers to determine if they are set the way we want. uint8_t reg0, reg1; readRegister(CONFIG_REG_0, ®0) readRegister(CONFIG_REG_1, ®1) //I then compare the read results to the expected results and confirm the settings are correct
This code works great and I am able to switch between modes easily.
Now when in the slow mode, every now and then the ADC returns zero in all 3 bytes of the conversion. I know the value should not be zero, and once it goes to zero, it stays that way until I stop the conversions and restart them.
I have read and re-read the data sheet and can't seem to find a time when the ADC should be reporting a zero value.
Any ideas? Let me know if you need more information.