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]
  • How big is the capacitor on VREF2?  Does it measure 3.178 with a multimeter?

    Does VREF1 have any loads attached?  If there is a VREF1 load it will make VREF2 voltage appear too high.

  • 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 

  • What is VRegB?  I'm not aware of such a register or supply rail and also can't find that text in the datasheet.  I assumed this is VREF2 as it is expected to be 3V.

    The REF register should be in this range.

    Assuming this 3.178 is the REF register and VREF2 measures correctly then VREF1 is of concern.  VREF1 pin is no loads allowed and must have a 1uF bypass capacitor only.

  • 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");  
      }
    }
    

  • VREGD normal range is 2.7V to 3.6V.  It is only the digital supply voltage so the precise value is not so important.