This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Connecting nRF52832 and TI BQ27441-G1: an issue with I2C

Hi!

I'm using nRF52832 dev board and lastest SDK to connect with a battery babysitter (Sparkfun dev board). The latter uses TI BQ27441-G1 fuel gauge; its configuration can be reached via I2C. 

The issue is that half the time the fuel gauge doesn't respond to commands as there is no ACK returned. On logic analyser I always see nRF outputing SDA and SCL signals, but sometimes there is no ACK, even though nothing has changes electrically, or in the code. For example, when using the TWI Scanner example, the gauge's address is sometimes found and sometimes it isn't.

I know the issue is more likely to be on the fuel gauge side, but I would like to make sure that I'm doing everything right on the Nordic's side of things.

Here are the questions:

1.) Is there anything I do to confirm the I2C master on the nRF52 is working correctly? So far, I've tried different input voltages, different pins for SDA and SCL, different clock frequencies, but the results are always the same.

2.) Is there, by chance, any reported implementation of the BQ27441-G1 fuel gauge on the nRF?

  • Hi 

    Normally such kind of issue occurs

    1. when the chip is not soldered properly

    2. or other components like pullup resistors or power decouple caps not soldered properly

    3. if you have longer leads for SCL SDA and/or connected not properly. 

    4. The datasheet says max data rate is 400khz, but running at lower rate would be helpful. I am listing this here, which you have already tried

    5. try using similar other board / any other I2C device with the same nRF52832 board. 

    I have had issues with I2C devices, and almost always it was hardware issue. 

  • And to be on safer side and to reduce the component count (which gives more reliability), I have always used the internal pullup resistors in nRF52 chip rather than using external pullup. You only need external pullup in cases where 1. you have many I2C devices connected on the same bus 2. capacitance of the bus is higher 3. if you need higher I2C frequency 

  • Hi,

    we have used another gauge model (BQ27621) with similar interface. The chip has very low-power internal logic with some limitations - you have to insert a 66-us pause between commands, the host should issue no more than two commands per second, sequential reads are supported only at frequencies up to 100kHz (I would say, it's better not to try higher ones at all).

    A logic analyzer trace would help much.

  • I am working with the same devices (nRF52832 and TI BQ27441-G1) and I am experiencing the same behavior. Did you find the cause of the problem?

Related