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.

BQ76PL455A-Q1: TI Checksum test problem

Part Number: BQ76PL455A-Q1

Hello again;

When performing a BIST for the factory (TI) checksum, I'm getting a fault. However, when reading the actual checksum test results, it reads correctly?? Am I misreading something?

                  CMD                                                               RESPONSE  

1. Perform TI checksum test (reg 32):

    92 00 20 02 00 b9 77

2. Wait for flag to clear....                                          01 00 00 51 c0 < -- Flag clears

3. Read fault summary reg (82):                       

    81 00 52 01 d4 9c                                                 01 00 80 50 60     <-- Chip fault

Read FAULT_DEV reg (97):

    81 00 61 01 c0 6C                                                01 40 00 60 00     <-- TI checksum fault

But...

4. Read checksum result (reg 248)

    81 00 f8 01 aa 3c                                                 01 07 78 53 d2  < -- this matches the datasheet bq76PL455A-Q1 page 78 ??????????????

Thanks in advance

  • Hi Jeffrey,

    Thanks for the question! I will look into this in more detail next week after the holiday but in the meantime check if you are doing cell balancing as setting the cb enable bit can trigger this fault. Reference section 7.3.7 of the datasheet for details.

    Best regards,

    Taylor
  • Thanks Taylor;

    No, I'm not enabling any passive balancing. My client's application uses active balancing (EMB1428, EMB1499). In addition, I'm getting a checksum fault for the TI (factory) EE section, but NOT the user section, which is what the datasheet (7.3.7) says would happen.  I'm not writing to CBENBLand just double-checked that to be certain. It reads 0's. Let me know if I'm misunderstanding something...THanks!

                   CMD                                                       REPLY

     read BQ76PL_CBCONFIG_REG  19U             

    81 00 13 00 25 0C                                              00 00 00 00    

    read BQ76PL_CBENBL_REG  20U 

    81 00 14 01 e6 fc                                                01 00 00 51 c0 < -- no balancing

  • Hi Jeffrey,

    Can you check if you are following the last paragraph of section 7.3.12.6? This suggests that this fault will not clear until you perform a soft reset if you have changed the factory register space (which may be happening unintentionally somewhere in the code). If this does not clear the fault - please check on another device and see if the error still occurs.

    Best Regards,

    Taylor
  • Yes - my initialization procedure issues a soft reset prior to conducting any BIST tests, and NO, it doesn't solve this issue. However, I also clear all faults (if any) prior to conducting the checksum tests (see below). And again, the USER checksum test is good, but only the TI test fails.

    Thanks!


    static boolean Bq76_ChkSumTest(uint16_t test)
    {
    uint16_t Faults, timeout, TmpTest;
    uint8_t Buf[8];
    boolean OK;

    OK = TRUE;

    BQ76_ClearAllFaults();

    DBG_ASSERT( (test == BQ_ADC_CAL_TEST) ||
    (test == BQ_USER_CHKSUM_TEST) ||
    (test == BQ_TI_CHKSUM_TEST) );

    TmpTest = BIG_ENDW(test);

    BQ76_SendPDU(&Bq76_BIST_PDU, CMD_PDU, (uint8_t *)&TmpTest);
    /*
    * The indicated test bit(s) will clear when the checksum is completed..wait
    */
    for (timeout = 0; timeout < 1000; timeout++)
    {
    OK = BQ76_ReadPDU(&Bq76_BIST_PDU, Buf);

    if ( *(uint16_t *)&Buf[1] == 0U )
    break;
    }
    /*
    * Check for a fault. If indicated, return result
    */
    Faults = BQ76_ReadFaults();

    if (Faults != 0U)
    OK = FALSE;

    return OK;
  • Hi Jeffrey,

    Ok thanks have you seen this same issue on multiple devices or just the one?

    Thanks,

    Taylor
  • Only one, but my client has another eval  board which they'll be shipping me next week. I'll check if it does the same.

  • Hi Jeffrey,
    Do they pgm EEproms in their factory?
    Do they see FACT_ECC_COR or FACT_ECC_ERR ?

    roger
  • No; I get a 'TI' (factory?) checksum fault, but not a user. But there is no actual checksum error.  When I get the fault, I check the checksum register and it's good.


      TI_ChksumTest = Bq76_ChkSumTest(BQ_TI_CHKSUM_TEST);
         
      if (TI_ChksumTest == FALSE)
      {
     /*
     * Apparant TI checksum error?. Read to confirm. TEST_CSUM[CKSUM_TEST]
     * are:
     * TI space test:   0x0778 (1912) – [956 register bits tested]
     */
       BQ76_ReadReg(SINGLE_WR8_REPLY_2, BQ76PL_TEST_CSUM_REG, Buf); 
       if ( *(uint16_t *)&Buf[1] != 0x7807)  <--Always reads OK
        OK = FALSE;
      } 
  • Hi Jeff,

    I am assuming that you are having problem with your MCU code, not TI GUI, right?
    You need to check FAULT_DEV [FACT_CKSUM_ERR] bit.


    How do you, initially, determine whether you have factor check sum error?

    Roger
  • Hi Roger;

    Here are my commands and responses. Please let me know if I'm doing it wrong. Note that when I do the customer checksum, there is no fault. I also do the ECC tests as well, and they all pass OK.

    CMD                                REPLY

    92 00 20 02 00 b9 77                                              <-- Do TI checksum test test control reg, bit 9

                           ...wait till done...

    81 00 52 01 d4 9c                                                    <-- Read Fault summary register

                                               01 00 80 50 60           <-- Reply: 0080 = bit7 - CHIP_FAULT (?)

    81 00 61 01 c0 6c                                                    <-- Read BQ76PL_FAULT_DEV_REG  97U  // Device fault

                                               01 40 00 60 00         <-- Reply: 40 00 = bit14 = FACT_CHKSUM_ERR (?)

    81 00 f8 01 aa 3c                                                     <-- Read checksum test reg

                                               01 07 78 53 d2         <-- Good checksum

  • Hi Jeff,

    I guess your customer didn't read the safety manual for PL455A.
    device toggle a bit and it force a Fault.
    device toggles backs.
    That's why you will end of GOOD checksum.

    Customer has to clear the Fault and check for 0778.
    If customer doesn't get 0778 then test fail.
    Hope this makes sense to you.

    Roger
  • Thanks Roger;

    My client doesn't have the safety manual (?). Where/how can I access it?

  • Hi Jeff,
    I think I addressed this problem.
    I will close this.

    thanks

    Roger
  • Hi Jeff,

    They must have safety NDA for us to send it out.
    do they have one?

    Roger