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.

ADS1231: Temperature compensation

Part Number: ADS1231
Other Parts Discussed in Thread: ADS1230, ADS1232

Hello, 

I have a circuit with the ADS1231 working very well. However, after analize logged data of several days I found a variation in the measure of around 1.5% during day and night.

I would like to design a new circuit to compensate this temperature variation, because if the system is working all day, the measurement will be too different for me.

The measurement is get by a microcontroller that talk with modbus devices.

Any recomendation about the temperature compensation circuit?

Which is the best solution? Could it be a temperature sensor + digital compensation?

Thanks and regards

  • Hi Daniel,

    This does sound like temperature drift. Can you attach your current schematic? It is important to know specifically what is being affected by the temperature change, so it would be helpful to know how much the temperature changes between day and night, and the actual data being logged during those times.

    The ADS1231 does not have an self-offset calibration (which differs from devices such as the ADS1230 and ADS1232), so offset drift is often a major source of drift issues. This can be checked by applying an external short at the input of the ADC (but the short must be within the common-mode input range of the ADC such as (AVDD-GND)/2. For a 5V AVDD, the short should be at 2.5V common-mode. This can be accomplished with a resistor divider. Any change in 0V input can be adjusted in your code to adjust the result to 0V. This is not a TARE function, but rather an offset correction prior to any further calculations. The trick here is to not create a bigger problem with creating a leakage path to disturb the normal reading.

    The load cell itself can also have drift. So it is important to identify the main sources of drift and take care of the main sources first. Adding a temperature sensor and attempting to correct for changes may be quite different from part to part. Also, drift is not always linear.

    One possible solution is to use the ADS1232 which has the internal offset calibration. Also, the ADS1232 has an internal temperature sensor. With this device you can either monitor the temperature and issue a self-calibration, or just periodically issue the self-offset calibration.

    Best regards,
    Bob B
  • Hi Bob,

    I thought to use the external short method with a reference PCB to correct the final temperature of the others PCBs in the computer.

    Why adding a temperature sensor and attempting to correct for changes may be quite different from part to part? How different could it be? What I have seen is that all PCBs has the same temperature function (or almost the same). I thought that If I get the output/temperature function for one PCB the error should decrease near cero.
  • Hi Daniel,

    I guess I don't understand what you are asking about or what you are doing. I thought you were talking about a single PCB and load cell. Can you at least give me a block diagram of what you are doing or are intending on doing?

    With respect to drift, if you take a single ADS1231 device and compare it to others within a closed system, the offset and drift will not be the same. Each ADS1231 will have variation due to process variation from device to device with respect to where the devices are on the silicon wafer as well as lot to lot variation . So the group of devices you are now using may be quite different in response when compared to a different lot or group of devices.

    If you find a compensation method that works for you that is great. Keep in mind that even within a closed system (like a PCB chassis) there are air currents circulating and device heating that will not be even within the cabinet. If you are able to find a method that will adjust the conversion results to maintain a level of accuracy for your system, then you have an acceptable solution.

    This is making an assumption that the offset drift is causing the error you are seeing. As an alternative I suggested the ADS1232 where a self-offset calibration can be issued to minimize the offset error and drift to the level of noise of the ADC. There is also gain error drift that should be considered.

    Best regards,
    Bob B