This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS7142: Offset Calibration Issue

Part Number: ADS7142


Tool/software:

We are experiencing the same problem stated in this forum post:
https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/968569/ads7142-busy-rdy_bar-signal-not-going-high-after-writing-offset_cal-reg-0x15-to-0x01/3602258?tisearch=e2e-sitesearch&keymatch=ads7142%252525252520offset#3602258

When we write to register 0x15 to perform an offset calibration, nothing happens. The BUSY line does not go high, and we still have an offset of 200 LSBs (in high precision mode) after writing to 0x15.

When we use General Call and perform a software reset (0x06), BUSY goes high for a long time (200ms) and then the offset is 0.

It seems we have some sort of issue where the ADC calibration on power up is bad on some chips. Running the GENERAL Call reset after boot up of our host seems to fix the offset calibration. But calling 0x15 and setting it to 0x1 (with an 0x08 op code), does not work.

Everything else is working fine.

We would rather not use the general call approach because we have multiple ADCs on the bus and our drivers are not aware that a general call reset has occurred unless we link them up somehow.

  • Hi Lane,

    To understand correctly, the offset calibration on some devices is fine on power-up, but it does not occur on other devices. Do you have a specific number of devices that this is happening with?

    If you try to set the TRIG_OFFCAL bit on the good on power-up devices, does this show the same signature as those that are not being successfully calibrated on power-up? 

    Regards,
    Joel

  • Really, my question is why isn't TRIG_OFFCAL working when we write to it. We write 0x8 followed by 0x15 followed by 0x1 and nothing happens to the offset. We write 0x6 on a general call and the offset goes away.  We have also tried setting the bit by writing 0x18, 0x15, 0x1, and nothing happens (no BUSY, offset remains).

    The BUSY never goes high when we write to TRIG_OFFCAL. It goes high for 200ms when we write 0x6 to the general call.

    We are not the only ones who have experienced this issue.

  • Hi Lane,

    Hopefully we can rule out issues with the I2C communications before concluding there is something wrong with the device, though it is strange that you are seeing such a large offset after powerup. Bear with me for the following questions, but the answers will help out greatly.

    1. How are you determining the magnitude of the offset calibration error? Are you shorting the input to ground, or giving it a known voltage at the input? How are you reading the conversion value back? In manual mode, high precision mode, or other?

    2. Is it possible that there are any addressing conflicts with the I2C devices? Does every I2C device on the bus have a unique 7-bit address, and are you able to individually address the I2C devices and see a response from each of them?

    3. Do you have logic captures you can share showing a normal register write and subsequent readback of the updated register value? SCL, SDA, and the BUSY line should be included in this. 

    4. Can you share an oscilloscope capture of AVDD on startup? It might be possible that the device does calibrate before AVDD is at its final value, and after AVDD settles, the offset compensation value is outdated.

    Regards,
    Joel