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.

BQ79600EVM: Fail to read stack device addresses after auto-address using stack read command

Part Number: BQ79600EVM
Other Parts Discussed in Thread: USB2ANY

Hi, 

We use BQ79600EVM as the base device which is connected to two stack BQ79718EVMs. BQ79600 is powered by 5V supply from MCU and BQ79718s are powered by 30V DC supply. We connect MCU SPI port to USB2ANY pins.

After auto-addressing according to the datasheet, we tried to read back device address stored in DIR0_ADDR 0x306. 

If single read command is used, we successfully read base and stack device address one by one.

Read BQ79600 device 0:    command: 0x80 0x00 0x03 0x06 0x00 0xD6 0x7E                                response: 0x00 0x00 0x03 0x06 0x00 0xD7 0xA0

Read BQ79718 device 1:    command: 0x80 0x01 0x03 0x06 0x00 0xD7 0x82                                response: 0x00 0x01 0x03 0x06 0x01 0x17 0x9C

Read BQ79718 device 2:    command: 0x80 0x02 0x03 0x06 0x00 0xD7 0xC6                                response: 0x00 0x02 0x03 0x06 0x02 0x57 0xD9

However, when we failed to use stack read command to read stack device address DIR0_ADDR 0x306.

Read stack:    command: 0xA0 0x03 0x06 0x00 0xD1 0x84                                response: 0x7F 0xFF 0xFF 0xFF 0xFF 0xFF... ...

After sending read command, we wait for ~160 us and then SPI-RDY becomes High, then we start to read the data.

Besides, after reading a series of 0xFF back, SPI_RDY always stays LOW until sending a COMM_Clear 10ms later.

This also happens in auto-addressing step

After sending stack read command and 200us delay, we read 0xFF 0xFF 0xFF 0xFF, and SPI_RDY is always LOW

Any ideas? Looking forward to you answer. Thanks in advance.

  • Hello, 

    Confirm that the third device (device address = 2) is set as the top of stack by reading the COMM_CTRL register in the top device and seeing if TOP_STACK is enabled or not. TOP_STACK needs to be set correctly in order to run any stack or broadcast read commands. 

    Sincerely,

    Michelle W. 

  • We have set the top stack, which is verified by reading the same register. If we swap the two 718 boards, the stack reading is fine.

    We test through following procedures:

    We have two 718 EVM, 718#1 and 718#2.

    The test software we use will switch the communication direction alternately, single read once and stack read once, and then switch the direction to repeat the operation again after completion.

    Forward (DIR0) reading is fine, switched to reverse (DIR1) can only read in single, we only get 0x7F 0xFF 0xFF 0xFF 0xFF....... using stack reading.

    If we swap the two boards in HW and the same software is used, the stack reading in forward direction fails, only 0x7F 0xFF 0xFF 0xFF 0xFF....... . There is no problem reading in reverse direction.

    It seems the board 718#1 can not be set as top stack if using stack read.

    79600 fault register  information:

    79718 fault register information:

  • Hello, 

    Purely as a sanity check:

    1) If you have a USB2ANY available, I would recommend using the GUI to confirm if you observe a similar behavior or not to rule out any software issues. 

    2) Confirm that there aren't any hardware/jumper differences between 718 #1 and 718 #2 

    If you do not have a USB2ANY available or you observe the same behavior on the USB2ANY, you may have a defective device that needs to be returned. This behavior is not expected for the BQ79718. When returning, TI can test this device to confirm whether the same behavior is observed or not. 

    Sincerely,

    Michelle W.