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.

ADS1232: Reading onboard temperature sensor

Part Number: ADS1232

Hello,

I am using the ADS1232 to measure weight with two load cells. This all works well so far.

To improve the load measurements, I'd like to compensate for temperature changes and therefore use the onboard temperature sensor.

 

Unfortunately, I am not able to make any temperature readings.

I set the channels as following:

void setChannel(Channel channel)
{
  switch(channel)
  {
    case AIN1:
    {
      digitalWrite(TEMP, LOW);
      digitalWrite(A0, LOW);
      break;
    }
    case AIN2:
    {
      digitalWrite(TEMP, LOW);
      digitalWrite(A0, HIGH);
      break;
    }
    case TEMP:
    {
      digitalWrite(TEMP, HIGH);
      digitalWrite(A0, LOW);
      break;
    }
}

When I read DOUT, (as I do successfully for the load measurements), DOUT is always high for the TEMP:

// Read 24 bits
    for(i=23 ; i >= 0; i--) {
        digitalWrite(SCLK, HIGH);
        value = (value << 1) + digitalRead(DOUT);
        digitalWrite(SCLK, LOW);
    }

 

My schematic looks as following:

Any help would be greatly appreciated!

Best regards,

Stefan

  • Hi Stefan,

    Welcome to the E2E forum!  When using the internal temperature sensor with the ADS1232 you must make sure that the input range is appropriate for the temp diode output.  This means that if you have the gain set to 64 or 128 the temp diode will be out of the full-scale range for the ADC.  You can only use gains of 1 or 2.  This is discussed on page 13 of the datasheet in the TEMPERATURE SENSOR section.

    Best regards,

    Bob B