SLUUB65B May 2015 – December 2022
The basic programming flow expected for users to update the firmware and/or data flash of a BQ275xx device is summarized in Figure 19-2. To call on the commands given in the BQFS of DFFS file, ensure that the target device is in ROM mode. While in ROM mode, the target device responds to the I2C address of 0x16 (8 bit) or 0x0B (7 bit) if using I2C. From here, the 8-bit I2C address reference is used. To enter ROM mode, 0x0F00 must be written to register address 0x00 of the target device if in the I2C mode, or 0x00 into register 0x00 and 0x0F into register 0x01 if in the HDQ mode. The I2C address of the device is 0xAA while it is in NORMAL gas gauge mode (default). This step of the process is not part of the BQFS or DFFS command sequence. It is up to the user to provide the Enter ROM mode command before using the BQFS or DFFS file (Figure 19-3 and Figure 19-4).
Before entering ROM mode, it must be confirmed that the device is not sealed from a firmware perspective. To verify that the device is not sealed, read Control Status by first writing 0x00 into register 0x00 and 0x01, and then read back register 0x01. If Bit 5 is set, then sending the Unseal keys is required. If Bit 6 is set, then it requires sending the Full Access Unseal key. These keys are sent by writing the respective keys into the Control register. The keys are 32-bit each. If both keys are required, then they must be entered in the order of Unseal key first and then Full Access Unseal key. For any 32-bit key, no intermittent communication is allowed other than the actual communication to write the keys.
In I2C, it is evident when operating in firmware or ROM mode based on the I2C slave address. If the device sends an Acknowledge signal to the address 0xAA, the device is indicating that it is in FIRMWARE mode; if it acknowledges the address 0x16, then it is in ROM mode. Unfortunately, HDQ does not support slave addressing. The following process can indicate in what mode the gas gauge IC is operating:
Once in ROM mode, the user test setup must be able to open the BQFS or DFFS file and perform each of the I2C or HDQ transactions in strictly the same order as given with the FlashStream file. Once completing all commands within the FlashStream file, the user test system sends the Exit ROM mode procedure (Figure 19-5). At least a 250-ms delay must occur before attempting to proceed with I2C or HDQ communication to the target device using the I2C address 0xAA after exiting ROM Mode.