LTC2984 Data Output Word


Could you explain how to caluculate from Data Output Word D[22:0] to the acual decimal number?

I can understand positve temparature (D23=0) in Table 9A of LTC2984 datasheet.

But I can not understand negative temparature (D23=1) in it.

Best regards


  • 0
    •  Analog Employees 
    on May 20, 2020 2:10 AM 2 months ago


         If you haven't already seen it, the evaluation software provides a Generate C-code feature that provides many helper functions and #DEFINE statements you can repurpose for your own use. The generated code is Linduino (arduino) compatible, but the majority of code is standard C. 

    Here is the relevant helper function to translate the raw 24-bit result to a floating point value: 

    void print_conversion_result(uint32_t raw_conversion_result, uint8_t channel_output)
      int32_t signed_data = raw_conversion_result;
      float scaled_result;
      // Convert the 24 LSB's into a signed 32-bit integer
      if(signed_data & 0x800000)
        signed_data = signed_data | 0xFF000000;
      // Translate and print result
      if (channel_output == TEMPERATURE)
        scaled_result = float(signed_data) / 1024;
        Serial.print(F("  Temperature = "));
      else if (channel_output == VOLTAGE)
        scaled_result = float(signed_data) / 2097152;
        Serial.print(F("  Direct ADC reading in V = "));

    It can be found in the LTC2984_support_functions.cpp file in the generated C-code folder. 

    Hope it helps,