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.

BQ76952EVM: 400k I2C communicate problem(works fine at 100k, problem at 400k)

Part Number: BQ76952EVM
Other Parts Discussed in Thread: BQ76952

Hi Team,

I am testing BQ76952EVM(slave) with MSPM0(master), but I have some problem in I2C communication.

When I try and run 400k I2C, I notice only the "START" condition come out, then BQ76952 pull down the SCL, and nothing send out.

But when I press the "reset" button on M0 board, it will work fine. But at that time SCL will not pull down by BQ after "START" condition.

This phenomenon can be repeated. One success every two times "reset", the first one fails, and the second one succeeds. And the waveform has certain difference(show in below pics)

(1) First time (Only "START" condition)

  

(2) After Reset:

     

However when I run at 100kHz, all is fine. Test result show as below.

So my question are:

1. Why BQ76952 pull down the SCL after "START" condition? What is the delay for when BQ76952 pull down the SCL?

2. Why BQ76952 don't pull down SCL after I reset the M0 second times(400k I2C)?

3.Can someone tell me what might be going on and what I have to do in the BQ side to get this working at 400kHz?

Thank you 

Adrian

  • Hi Adrian,

    The BQ76952 default communication mode is 400kHz I2C, so there should be no problem on the BQ side. Are you sure the BQ76952 is pulling the SCL pin low - I suspect the M0 device is doing this because resetting the M0 resolves the issue.

    What value pull-up resistors are you using on the SCL and SDA pins? If you are using 10k resistors, I recommend trying 5k to see if the issue improves. This will improve the rise/fall times for these signals which do not look very good on your scope captures.

    Best regards,

    Matt

  • Hi Matt,

    Thanks for your reply.

    (1) I think BQ76952 pull SCL low, because when I power down BQ76952EVM (Remove the voltage between Cell and BAT). The waveform show as below, the low level of SCL is around 550mV.

    However when I power up BQ769X2EVM, the level of SCL after "START" will be around 0mV. As you can see in the 100k I2C waveform.

    (2) The pull-up resistors is 1.7k. The value is recommended by MSP Team.

    Since read action was successful the second time reset,  whether BQ76952 need wake-like actions when start I2C communication? Can we use a GPIO to wake BQ76952 ahead?

    BR

    Adrian

  • Hi Adrian,

    I don't think there are any additional wake actions needed. You can try adding delay before the first command or maybe you can compare the steps in the code to the code examples to see if there is anything different. 

    Matt

  • Hi Matt,

                I have a question. In the TRM, I see the BQ76952 will initially power up by default in 400 kHz I2C mode. 

               However, my code works normal now in 100k I2C mode, I am using the BQ76952EVM BMS029B. If I want to test in 400kHz I2C mode. Do I need to configured the BQ76952? Or do I just need to configure the M0 I2C speed?

    Adrian

  • You should just need to configure the M0 I2C speed since the BQ76952 is already configured for 400kHz by default.

    Matt