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: BQ76PL455A-Q1 daisy chain questions, fail reading cascading device address

Part Number: BQ76PL455A-Q1
Other Parts Discussed in Thread: BQ76PL455A

Hi

Can you please kindly help me on a quick question from HELLA? They’re working on the pre-research BMS project with BQ76PL455 and have some questions and they’re pushing for an answer. The topology is daisy chain, and they can read the first chip device address however they fail to read the second chip’s address. Is it because they’re using a broadcast command? Attached is their code as below, can you please help on this case?

            Write_Broadcast(0xF2,0x10,0x10E0,2);                                            //Fully Enable Differential Interfaces and Select Auto-Addressing Mode

           

            Write_Broadcast(0xF1,0x0E,0x10,1);                                                //Configure the bq76PL455A-Q1 device to use auto-addressing to select address

           

            Write_Broadcast(0xF1,0x0C,0x08,1);                                                //Configure the bq76PL455A-Q1 device to enter auto-address mode                  

 

            Write_Broadcast(0xF1,0x0A,0x00,1);           

 

            Write_Broadcast(0xF1,0x0A,0x01,1);           

           

            Write_Reg(0x81,0x00,0x0A,0x00,1);

           

            UART_receive_array(4);

           

            Alarm_led1_on();

           

        if(Receive_Buffer[1] == 0x00)

            {

                Alarm_led2_on();

            }

            else

            {

                Alarm_led2_off();

            }

           

            Write_Reg(0x81,0x01,0x0A,0x00,1);

           

            UART_receive_array(4);

           

            if(Receive_Buffer[1] == 0x01)

            {

                Alarm_led3_on();

            }

            else

            {

                Alarm_led3_off();

            }

 

  • Hi Ted,

    In case they haven't seen it already, this document has the procedure step by step to implement auto-addressing. See section 1: www.ti.com/lit/an/slva617a/slva617a.pdf

    I compared their procedure to the one in the document and it looks correct, assuming their write_broadcast() and write_reg() functions where implemented correctly (e.g. CRC calculated correctly and functions sends the bytes in the correct order).

    A couple of questions:
    1) Is this software developed by them?
    2) Are they using TI's bq76PL455A EVMs or boards developed by them?

    Lets focus on debugging the hardware first. I recommend trying the following in the order listed below:
    1) Confirm that the hardware is configured correctly when used as a stacked device. See section 6.7 and 6.8 of the bq76PL455A EVM User's Guide to see how to configure and connect stacked devices: www.ti.com/lit/ug/sluuba7a/sluuba7a.pdf
    2) Confirm that both devices in the stack wakeup correctly when a wakeup signal is sent. They can do this by measuring the voltage on the power pins (VDIG, VP, VIO, VREF) to confirm both devices powered up correctly. See section 7.4.4 "Power-On Reset (POR) or Wakeup" in the datasheet: www.ti.com/lit/ds/symlink/bq76pl455a-q1.pdf
    3) Connect oscilloscope to COMML+- terminals on the top device and confirm that the signals are received in the pins by the top device when a broadcast write command is sent from UART on the base device

    Best regards,
    Leslie