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.

BQ27Z561-R2: Access fuel gauge and I2C configuration

Part Number: BQ27Z561-R2
Other Parts Discussed in Thread: BQ27220

Hi Team,

1, Client receives "NACK" while reading data. The customer configures FLASH_BUSY_WAIT=0, is it normal to receive NACK? If the client receives NACK, how long is the recommended delay for the client to visit gauge again? Is there a maximum busy time?

2. Which configuration method of FLASH_BUSY_WAIT is more popular? Or more reasonable?

3. If FLASH_BUSY_WAIT=1 is configured, then when the data flash is busy, Clock Stretching will occur. Whether the stretching action will be kept until data flash free. Are there risks if it takes too long?

4. The customer reads the temperature every 50ms under some working conditions. Is there a minimum read interval for the device to work properly? Are there different access intervals when reading data such as SOC, current?

5. It can be seen from the TRM that the update speed of voltage, current and temperature in Normal mode seems to be 1s each time. Does it make no sense to update every 50mS?

Regards,
HL

  • Hello HL,

    Registers should not be read more than once a second.

    On Nack, the host must retry in a few milliseconds , this is normal. Flash busy setting depends on host system preference.

  • Hi Shirish,

    Registers should not be read more than once a second.

    Whether there is an access time interval requirement between different registers? Such as temperature, current, RSOC, etc.

    Seen from TRM, if FLASH_BUSY_WAIT=1, the maximum clock stretching time is 40.08ms. I can understand that the busy time lasts up to 40.08ms, right? I see that many other devices don't have a configuration option for FLASH_BUSY_WAIT=0, such as the BQ27220 which seems to default to clock stretching.

    Regards,
    HL

  • Hello HL,

    There is no way to control the time at which data flash is updated, so the clock stretching can happen at any time. Registers may be read in any order with a few millisecond intervals but don't read more than once a second in normal operation.