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.

BQ40Z80: Unable to communicate with high refresh-rate or 400kHz fast mode

Part Number: BQ40Z80
Other Parts Discussed in Thread: EV2400, BQSTUDIO

Tool/software:

Hello All,

I am currently working on a custom BMS PCB and have followed the steps outlined in the following documents:

  • Datasheet - SLUSBV4B
  • TRM - SLUUBT5C
  • Manufacture, Production, and Calibration - SLUA868
  • How to Complete a Successful Learning Cycle - SLUA848

to develop a functional BMS solution for my application. I have also developed a driver for my MCU, where the pack will be utilized, and am able to retrieve all the necessary data. Regrettably, I have identified two communication-related issues that require assistance.

Issue 1:

Attempting to read data from the chip at a program loop speed of 10Hz to 100Hz (depending on workload) results in BQ lockup. Subsequently, any further requests are not responded to and necessitate either issuing a RESET or allowing the gauge to enter sleep mode to recover.

Solution 1:

Data caching has been implemented in the code, and the cache is refreshed every second, which appears to mitigate the lockup issue I previously encountered.

Issue 2:

I am unable to communicate at a 400kHz I2C speed.

When using BQSTUDIO (version 1.3.127) and EV2400 (version 0.32), 100kHz communication is functional as expected. However, switching to 400kHz causes BQSTUDIO to crash.

Conversely, when using my MCU, 100kHz communication is successful, but no response is received from the gauge at 400kHz.

Work Completed:

The XL bit in the SBS Configuration has been set to enable 400kHz mode (as outlined in the attached .gg file).

Additionally, signal integrity and bus capacitance have been verified, and they appear to be within the specified range for 400kHz mode.

The scope has measured a 200ns rise time and a 20ns fall time for the full range, and a 70ns rise time and an 8ns fall time between 0.3 and 0.7 of VDDIO with minimal ringing at the edges. This measurement was obtained while communicating successfully with my MCU at 100kHz.

Any assistance in resolving these issues would be greatly appreciated.

Thank you.

BMS-3S-R1.gg.csv