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.

BQ79612-Q1: Not able to read or write

Part Number: BQ79612-Q1

Dear TI Engineers,

me and my team currently working on a battery management system for a high voltage battery for a student project.

To properbly test your BQ79612 ICs we built a test board for a single device with the following schematic:

First of all it would be good to know if there are any major hardware faults in our schematic which prevent the BQ79612 from communicating with our MCU (STM32G474).

All pings are working perfectly fine, but as soon as we want to read or write registers, we do not get a response message or the expected action.

We tried a bunch of different messages, but then decided to stick to 2 command frames which should work apart from any further configurations:

1. We send the bytes for a broadcast write 0x08 to set the GOTO_SHUTDOWN bit in the CONTROL1 register, calculated by the TI BQAutoEval programm as you can see here:

 We mesaured that the device was in active mode before sending this command, but not as expected the device did not go into shutdown mode. We are also sure that the message from above was send out accorcingly by our MCU, because we saw every bit on the IC RX pin as we expected (byte order like above with reversed bit order in every byte).

2. We send a single device read to read out the part id register, but did not get any response. We have still not used a self coded driver to generate the messages and just sent out the bytes as calculated:

 As explained in the first broadcast write section, we have again doubled checked the send messages with a scope. We also measured the the IC TX pin but we could not get a response.

Is there anything we did not considered in our test or what else could be typical reasons we any kind of communication is not possible?

Also if you need any further information please let me know.

Thanks in advance!

  • Hello David,

    That is awesome you are doing this for a student project. Our devices communicate with RX and TX using a 5V logic level. If you are using a 3.3V logic level from the MCU this would cause some issues. Is this a possibility?

    Best,

         Quentin

  • Hi Quentin, therfore we are using the SN74... components as Level Shifters from/to 3.3V. But if you see a specific reason why they should not work as we have planned please tell me?

    We have also measured the IC RX port with a scope and analysed the bits, we found out that it was the exact message which we wanted.

    Thank you for helping us!

  • Hello David,
    I still do not understand. the communication you are sending to the BQ device, is +/- 5V logic? Also I'm happy to help you.

    Best,

         Quentin

  • The communication send by our MCU is 3.3V logic and is converted to 5V logic by the SN74... level shifter we are using, so the BQ device receives a 5V signal. But am I correct with the assumption that if the device is in active mode  it should go in shutdown mode right after the broadcast write descibed above in point one? Or does one of the 2 tests described above need any preconfiguration?

    Thanks  again!  

  • Hello David,

    Yes, the 0x08 to 0x309 is the correct command to send the device to shutdown. When the device is in shutdown you are not able to read anything from it, all you can do is simply wake it up again with a wake ping. Also have you auto addressed?

    Best,

         Quentin 

  • The Problem is, that the device does not go to shutdown mode even though it received the correct command through its UART RX pin. Means to me that the device did not process the broadcast write goto shutdown mode accordingly. Ans my quesion is why is that? We also made sure be measuring the power consumption and DVDD pin that the device is in active mode while receiving the broadcast write command.

    Do you have any thoughts on that?

    Thanks in advance!

  • Hello David,

    The device is not processing the command correctly. Your first command should not be to send the device into shutdown mode. You should first try reading a register and seeing if you get valid data back. You can also write to a register and then read back what you wrote. I would recommend doing this before sending the device into shutdown mode. Also as I asked in my previous question, have you auto addressed the device?

    Best,

         Quentin

  • As described in section 2. of my request: I have sure tried to read a register (single read part id) as the first command after the wake ping but it did not work either. I have also for sure send all the commands needed for autoadressing like described in the software design refernce, we scoped every message on the RX pin of the BQ device and they were all as we expected. But after sending everything what is needed for autoadressing we were not able to single device read or perform other commands too. We also scoped the BQ UART TX pin to see if the BQ device responds to any message but again nothing...

    We are absolutely baffled, because we do not see any mistakes...

  • Hello David,

    So my understanding is that you are able to send pings and wake up the device but cannot read or write to the device. My next step would be to analyze the logic plots of the auto address sequence. If you can send me scope shots of that I will take a look with the software team and see if there is an oversight in the code sequence. 

    Best,

         Quentin