Post Go back to editing

LTC6811 VRegB Voltage above 3.01V

Category: Datasheet/Specs
Product Number: LTC6811-2

In the LTC6811 Datasheet regarding the Accuracy Check, there is the following statement:

The range of the result depends on the ADC1 measurement accuracy and the accuracy of the 2nd reference, including thermal hysteresis and long term drift. Readings outside the range 2.99V to 3.01V indicate the system is out of its specified tolerance.

On measuring this value I'm getting a VRegB value of 31783, which corresponds to 3.178V which is outside of this range.  What the datasheet does not say, is what to do if that is the case, or what affects this value.

Everything else seems to be working as designed. Is this a problem? What should I do?

Edit: also as per the Datasheet I also am using this Vref2 as reference to two 10K NTC thermistors connected to GPIO1 and GPIO2



Add note about thermistors using Vref2
[edited by: txf at 4:04 PM (GMT -4) on 20 Mar 2024]
  • Sorry. I had made a mistake. I thought that VRegB from the supplied driver, referred to the VREF2. 


    VREF2 measured with the multimeter does indeed measure 3.0.  Reading that VREF2 from the Aux registers does report 3V 

  • Sorry VregD, this is code from the Linduino examples, in the comment is says Vref2, but that is a mistake:

    /*!****************************************************************************
      \brief Prints Status voltage codes and Vref2 voltage code onto the serial port
     @return void
     *****************************************************************************/
    void print_stat(void)
    {
       double itmp;
      for (uint8_t current_ic =0 ; current_ic < TOTAL_IC; current_ic++)
      {
        Serial.print(F(" IC "));
        Serial.print(current_ic+1,DEC);
        Serial.print(F(": "));
        Serial.print(F(" SOC:"));
        Serial.print(BMS_IC[current_ic].stat.stat_codes[0]*0.0001*20,4);
        Serial.print(F(","));
        Serial.print(F(" Itemp:"));
        itmp = (double)((BMS_IC[current_ic].stat.stat_codes[1] * (0.0001 / 0.0075)) - 273);   //Internal Die Temperature(°C) = itmp • (100 µV / 7.5mV)°C - 273°C
        Serial.print(itmp,4);
        Serial.print(F(","));
        Serial.print(F(" VregA:"));
        Serial.print(BMS_IC[current_ic].stat.stat_codes[2]*0.0001,4);
        Serial.print(F(","));
        Serial.print(F(" VregD:"));
        Serial.print(BMS_IC[current_ic].stat.stat_codes[3]*0.0001,4);
        Serial.println();
        Serial.print(F(" Flags:"));
        Serial.print(F(" 0x"));
        serial_print_hex(BMS_IC[current_ic].stat.flags[0]);
        Serial.print(F(", 0x"));
        serial_print_hex(BMS_IC[current_ic].stat.flags[1]);
        Serial.print(F(", 0x"));
        serial_print_hex(BMS_IC[current_ic].stat.flags[2]);
        Serial.print(F("   Mux fail flag:"));
        Serial.print(F(" 0x"));
        serial_print_hex(BMS_IC[current_ic].stat.mux_fail[0]);
        Serial.print(F("   THSD:"));
        Serial.print(F(" 0x"));
        serial_print_hex(BMS_IC[current_ic].stat.thsd[0]);
        Serial.println("\n");  
      }
    }