We're implementing an AD7124-8 as the main ADC in test equipment and I am in the process of writing up the firmware for controlling the module where the ADC is placed. I would like to measure the die temperature of the ADC to perform auto-calibration when large temperature changes happen.
I had gotten what seemed to be believable temperature conversions from the built in temperature sensor, but then I enabled error handling for the conversions, thereby including the conversions made for the internal temperature sensor, and now I get AINM_UV_ERR for every conversion with the internal temperature sensor.
I have following configuration for the channel (Channel 7) that converts the internal temperature sensor:
- AINP = 16/Temperature sensor
- AINM = 17/AVss
- Setup = 4
The configuration and filters are set as follows (for setup 4)
- Internal reference
- 1 x Gain
- FS = 32
The conversion is done by enabling the channel and doing a single conversion in full power mode. Reading the error register following that, reveals that AINM_UV_ERR gets set.
As I said, the resulting temperature (if you ignore the error and read the conversion result) seems reasonable, so is this just expected behaviour? Can I believe the results I am getting, and just ignore the undervoltage error?