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.

BQ79600-Q1: BQ79600-Q1

Part Number: BQ79600-Q1
Other Parts Discussed in Thread: BQ79616,

I am working on ring communication with BQ79600-BQ79616. Communication works fine on the south side but when I try to change direction it doesn't work.

I have verified all cables used in communication and 8 stack devices with BQ79600EVMBoard. I also checked the data generated by the EVM with a logic analyzer, but on my end I still could not communicate.

Are there any additional requirements for reverse communication beyond those stated in the datasheet? (Such as GPIO INH pin ?) Please inform me about additional requirements.

I followed this chapter which shown in below.

   

I also shared the data I sent

Step 1: This function sends a wake-up command to the BQ79600 module by toggling the TX pin.
Step 2: 0x90, 0x00, 0x03, 0x09, 0xA0, 0x12, 0x35 >> Wake up Stack devices
Step 3: 0x90, 0x00, 0x03, 0x09, 0x80, 0x13, 0xED >> Change Direction


Step 4: {0xB0, 0x03, 0x43, 0x00, 0xE7, 0xD4},
{0xB0, 0x03, 0x44, 0x00, 0xE5, 0xE4},
{0xB0, 0x03, 0x45, 0x00, 0xE4, 0x74},
{0xB0, 0x03, 0x46, 0x00, 0xE4, 0x84},
{0xB0, 0x03, 0x47, 0x00, 0xE5, 0x14},
{0xB0, 0x03, 0x48, 0x00, 0xE0, 0xE4},
{0xB0, 0x03, 0x49, 0x00, 0xE1, 0x74},
{0xB0, 0x03, 0x4A, 0x00, 0xE1, 0x84}, >> Send dummy sychronization commands.


Step 5: 0xE0, 0x03, 0x09, 0x80, 0xC0, 0x14 >> Send Reverse Broadcast command
Step 6: 0xD0, 0x03, 0x08, 0x02, 0x4E, 0xE5 >> Send All devices as stack
Step 7: 0xD0, 0x03, 0x09, 0x81, 0x0E, 0xD4 >> Enable Auto Addressing
Step 8:   0xD0, 0x03, 0x07, address(0x1 0x2 0x3 0x4..0x8), 0x00, 0x00 >> SET ADDRESSES FOR EVERY BOARD (REVERSE DIRECTION) for 8 devices
Step 9:   0xD0, 0x03, 0x08, 0x02, 0x4E, 0xE5 >> Send All devices as stack
Step 10: 0x80, address(0x1 0x2 0x3 0x4..0x8), 0x03, 0x06, 0x00, 0x00, 0x00 >> Read 8 devices ID

  • Ufuk,

    Step 8:   0xD0, 0x03, 0x07, address(0x1 0x2 0x3 0x4..0x8), 0x00, 0x00 >> SET ADDRESSES FOR EVERY BOARD (REVERSE DIRECTION) for 8 devices

    You need to start with 0x00 as the first address. The broadcast write toggles ALL of the devices auto-addressing mode, including the bridge device. With this set of commands you have set the bridge device to device address 0x01. This is probably breaking your communication.

    Regards,

    Ben

  • Hi Benjamin, 

    Actually I start with 0x00 as the first address. I wrote this here as an example.

    Do you see any errors other than this? Can you tell me the sample data that needs to be sent or anything about additional requirements?

  • Ufuk,

    You need to set the top of stack (step ten in the table 7-10). I also notice you have steps two and three mixed up. I have given you access to the mySecure folder (link) "BQ7X61X-Q1_DEVELOPMENT". This includes our BQ79616 sample code which has an implementation of Reverse Auto-Addressing.

    Regards,

    Ben

  • Hi Benjamin, 

    Thanks for answer but communication still doesnt properly work.

    I examined sample code and your instruction. Let me explain what I did after this conversation.

    Firstly I assumed that all stack devices shutdown.

    Step 1. the wake ping is applied by the microcontroller to the MOSI/RX pin of the BQ79600-Q1 device by pulling the line low for 2.75 ms.

    Step 2. 90 00 03 09 80 13 ED data sent. BQ79600's response was 0x00 0x02 0xC8.

    Step 3. 90 00 03 09 A0 12 35 data sent.

    Step 4.   {0xB0, 0x03, 0x43, 0x00, 0xE7, 0xD4},
                  {0xB0, 0x03, 0x44, 0x00, 0xE5, 0xE4},
                  {0xB0, 0x03, 0x45, 0x00, 0xE4, 0x74},
                  {0xB0, 0x03, 0x46, 0x00, 0xE4, 0x84},
                  {0xB0, 0x03, 0x47, 0x00, 0xE5, 0x14},
                  {0xB0, 0x03, 0x48, 0x00, 0xE0, 0xE4},
                  {0xB0, 0x03, 0x49, 0x00, 0xE1, 0x74},
                  {0xB0, 0x03, 0x4A, 0x00, 0xE1, 0x84}, dummy data sent.

    Step 5.  E0 03 09 80 C0 14 data sent. 

    Step 6.  D0 03 08 02 4E E5 data sent. 

    Step 7.  D0 03 09 81 0E D4 data sent.

    Step 8.  D0 03 07 00 CA D4 

                  D0 03 07 01 0b 14 

                  D0 03 07 02 4B 15

                  D0 03 07 03 8a d5

                  D0 03 07 04 cb 17 

                  D0 03 07 05 0a d7

                  D0 03 07 06 4a d6

                  D0 03 07 07 8b 16

                  D0 03 07 08 CB 12 

    Step 9.  D0 03 08 02 4e e5

    Step 10. 90 08 03 08 03 51 bc

    Step 11. I tried to read dummy sync data such as A0 03 43 00 e3 14, a0 03 44 00 e1 24.. but no response.

    Step 12. I tried to read device ID 80 00 03 06 00 D6 7E and BQ79600 response was 00 00 03 06 00 d7 a0 but other stack devices doesnt give response.

    Actually I think I did all instruction correctly but communication doesnt work. What is your advice? 

                

  • correction

    Step 12. 80 00 03 07 00 d7 ee BQ response was 00 00 03 07 00 d6 30 

    80 01 03 07 00 d6 12 slave no response

    80 02 03 07 00 d6 56 slave no response

    .

    .

    80 08 03 07 00 d5 8e slave no response 

  • Step 2. 90 00 03 09 80 13 ED data sent. BQ79600's response was 0x00 0x02 0xC8.

    This is odd that the device is responding here to a write command. Are you prompting it with SPI CLKs or are you using UART?

    Can you tell if the stack devices are waking up? If you are using a stack of EVMs you can look for the green lights on the boards. Ensure there is enough time after waking the base device (3.5 ms) and after waking the stack devices (12 ms per device) for them to wake up.

    Is there at least 100 us after the command to change the direction of the base device and 128 us after the command to change the stack's direction?

    Regards,

    Ben