Post Go back to editing

LTC6811-1 not showing proper cell voltages and after that when I tried to read configuration it is showing error.

Category: Software
Product Number: LTC6811-1
Software Version: MPLAB x IDE v6.00

Hi,

I am interfacing LPC6811-1 with microcontroller PIC24FJ512GU408.

My SPI is working proper. But when I tried to read cell voltages,

it was showing some 0 voltage for each cell. Hence, I tried to read configuration 

But it is showing error. So will you guide me to solve this issue.

Thanks & Regards,

Mayura

  • Please follow the debugging steps summarised in this thread (Communication Issue) for reference and if you still face any issues, revert back to us here.

  • Hi,

    I am trying to get reading of 12 cells on USB, but it not showing proper value, some readings are showing 0 value and some readings are in - voltage. In actual all cells are of 3to 3.5 voltage. I am using following code to read cell voltages. Please check and confirm.

    CS1_SetHigh();
    delay_1milsec();
    wakeup_idle(TOTAL_IC);
    delay_1milsec();
    LTC681x_init_cfg(TOTAL_IC, bms_ic);
    // Write and read Configuration Register
    LTC681x_wrcfg(TOTAL_IC, bms_ic);
    LTC681x_set_cfgr_refon(TOTAL_IC, bms_ic,1);
    LTC6811_reset_crc_count(TOTAL_IC,bms_ic);
    LTC6811_init_reg_limits(TOTAL_IC, bms_ic);

    LTC681x_adcv(2, DCP_DISABLED, 0);
    delay_1milsec();
    temp_spi = LTC681x_pollAdc();
    wakeup_idle(TOTAL_IC);
    delay_1milsec();
    LTC681x_rdcv(0, TOTAL_IC, bms_ic);

    Also for showing voltage of all cells, I am using following code.

     bms_ic[cic].cells.c_codes[cell num]

    And I am getting 5v at Vreg and drive pin of LTC6811-1. and 3.2 at pin Vref1 and Vref2 pins.

    Please suggest me any solution or method to get proper cell reading.

    Thanks & Regards,

    Mayura

  • I am getting all voltages as per requirement as per the debugging steps you mentioned. But 2v is not getting at divider of IBMS pin. Please suggest the reasons and solution to get 2v.

  • Try checking the time it took for conversion after the ADCV Command. From your above pseudo-code, I assume you are trying to convert all channels with the MD parameter set to 2 in the ADCV command. So, in MD=2 (7KHz-Normal) Mode the device should take 2.3ms to convert all the channels. So check if your polling timing was at least 2.3ms. 

    To know more about different ways to poll for ADC Conversion, please refer to Polling Methods in Datasheet and if required you can use the answers mentioned in this thread as a reference.

  • AS per your suggestion, we added code and now I am getting all cell voltage readings and 12 cell showing zero. My all-cells voltages are in range of 3.4 to 3.76 but still some cell showing very less voltages. Please check the below attached file which showing readings of 12 cell. and code for measure reading.

    LTC681x_init_cfg(TOTAL_IC, bms_ic);
    // Write and read Configuration Register
    LTC681x_wrcfg(TOTAL_IC, bms_ic);
    // delay_1milsec();
    LTC681x_rdcfg(TOTAL_IC, bms_ic);
    // Measure cell voltages and current
    delay_1milsec();
    flag1 = 0;
    wakeup_idle(TOTAL_IC);
    delay_1milsec();
    LTC681x_adcv(2, DCP_DISABLED, 0);
    LTC681x_pollAdc();

    LTC681x_rdcv_reg(1, TOTAL_IC, bms_ic);
    LTC681x_rdcv_reg(2, TOTAL_IC, bms_ic);
    LTC681x_rdcv_reg(3, TOTAL_IC, bms_ic);
    LTC681x_rdcv_reg(4, TOTAL_IC, bms_ic);

    To read cell voltages in USB I am using below instruction.

    sprintf(str1," %x %x %x %x %x %x %x %x %x %x %x %x \r\n", bms_ic[0].cells.c_codes);

    So please confirm that code is correct or I have to add in it.

    Please reply ASAP.

    Thanks ,

    Mayura

  • In LTC6811 LIB code we have two instructions for read 12 cells voltages as below:

    LTC681x_rdcv_reg (reg, TOTAL_IC, bms_ic); and

    LTC681x_rdcv (1, TOTAL_IC, bms_ic).

    If we are using 1st command in code for more than one pcb, getting garbage value whereas for 2nd command IC not responding to create 5V, ref voltages. 

  • Are you updating the "total_ic" variable to the total number of devices in the daisy chain?

    Better to use the LTC681x_rdcv function. Please make sure you are sending it before the device transitions into sleep after the conversion since on the device transitioning into sleep after tSLEEP(=2s), the device will reset all its result registers.