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.

BQ24725A: BQ24725ARG pulls SCL to low level for more than 40ms

Part Number: BQ24725A
Other Parts Discussed in Thread: AM3358, , PCA9306

Hi,

We are using BQ24725ARG on our PCA, and AM3358 communicates with BQ24725ARG through I2C (SMbus).

We noticed that sparsely in Charge Options Register reading transaction BQ24725ARG pulls SCL (SM_CLK)  low for more than 40ms before releasing SCL for next I2C communication . This 40ms is longer than the SMbus maximum Timeout value which is 35ms defined in the SMbus specification.

The question is why BQ24725ARG pulls SCL low for such a long time?

When BQ24725ARG pulls SCL low for such long, what should the I2C master (AM3358) do for next reliability I2C transaction?

The oscilloscope waveform is attached at the end of this post for your reference.

Thanks,

Peng,

  • Hi Peng,

    This is unusual. To help us better understand the issue, can you please answer the following questions?

    1) Is the AM3358 able to configure the BQ24725A's registers, or is SMBus communication not working at all?

    2) What do you mean by "sparsely"? Does this mean that the 43 ms SCL low event only occurs some of the time?

    3) Can you please provide your schematic and indicate where SCL and SDA are being probed?

    Best regards,

    Angelo

  • Hi, Angelo,

    Please answers to your questions.

    1). AM3358 is able to access BQ24725A before and after this 40ms SCL low Interval.  SMbus is working normally beyond that interval.

    2). "sparsely" means this happens randomly with very low occurrence rate---happen but very seldom.

    3) The measurement point is the I2C signals at the CPU side (circled in red, CPU side schematic is not attached). there is one 3.3V-2.5V I2C level shifter between CPU and BS24725A and battery.

  • Hi, Angelo,

    If the I2C master does not issue BQ24725A address with WRITE bit set and set the register address to read back first,  the master just issues BQ24725A address with READ bit set to preform read operation directly, what 16-bit value will BQ24725A return ?is it 0x01FF?

    Thanks,

    Peng

  • Hi Peng,

    Thanks for the info. At POR, the BQ24725A registers should read back the values shown in Table 2 below:

    Since you mentioned that the 40 ms SCL low event only occurs rarely, it's possible that this behavior is noise related. Can you please capture a zoomed-in SMBus communication waveform so we can make sure the rise times and fall times are fast/crisp enough, as shown in the SMBus timing characteristics below?

    I see that the schematic includes a PCA9306 voltage translator, so when you capture waveforms, please probe SCL1/SDA1 instead of SCL2/SDA2. We want to examine the SDA/SCL lines on the BQ24725A side just in case the PCA9306 is affecting the communication signal.

    Best regards,

    Angelo

  • Hi, Angelo,

    We measured the important timing parameters at the charger side (2.5V level), all meets the datasheet. There is no signal integrity issue . please see the attached captured waveform.


    If the charger is too busy, will it stretch the SCL signals for longer than 35ms and reset its SCL logic module? We also suspect 0x01FF is a default value for registers other than those listed in the table 2.

    Peng,

    Item

    Requirement

    Measurement

    SCLK/SDATA rise time, Tr

    1us Max

    175/195ns

    SCLK/SDATA fall time, Tf

    300ns Max

    22.25/21.73ns

    SCLK Pulse Duration high, Tw(h)

    4 – 50us

    6.1us Min

    SCLK Pulse Duration Low, Tw(l)

    4.7us Min

    5.06us Min

    Setup time for START condition, Tsu(sta)

    4.7us Min

    5.5us Min

    START condition hold time after which first clock pulse is generated, Th(sta)

    4us Min

    4.99us

    Data setup time, Tsu(dat)

    250ns Min

    3.4us

    Data hold time, Th(dat)

    300ns Min

    755ns

    Setup time for STOP condition, Tsu(stop)

    4us Min

    10.7us

    Bus Free time between START and STOP condition, T(buf)

    4.7us Min

    35us

    Clock Frequency, Fs(cl)

    10 – 100 KHz

    100 KHZ

  • Hi Peng,

    Thanks for sending the waveform and the detailed SMBus timing measurements. I apologize for the delayed response.

    The SMBus spec allows slave devices (such as the BQ24725A) to perform clock stretching. This indicates to the host that the slave device is busy, which allows slower slave devices to communicate with faster master devices. However, SCL cannot be held low for too long due to the SMBus release timeout. If SCL is held low for >25 ms, this is interpreted as a timeout condition. Devices that have detected this SMBus release timeout must reset their communication within 10 ms. The 35 ms maximum SMBus release timeout value comes from combining the stretch limit for a slave (25 ms) and a master (10 ms).

    In my testing with the BQ24725A EVM, I have not been able to reproduce the behavior that you describe with the registers PORing with 0x01FF. The registers' POR values match Table 2, as expected.

    In your testing, do all of the registers POR with 0x01FF, or does this only happen with some of the registers? Is this behavior consistent?

    Also, are you able to reproduce this behavior on a BQ24725A EVM, or does this only occur on your own board? If it only occurs on your own board, then is it possible to remove the PCA9306 voltage translator and see if the behavior is the same? The battery charger team and the TRX team have discussed this case with the FAE over email, and it's difficult to rule out that the voltage translator circuit might have some impact.

    Best regards,

    Angelo