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.

BQ27546-G1: BQ27546-G1 I2C address change

Part Number: BQ27546-G1
Other Parts Discussed in Thread: BQSTUDIO

Hi

The customer test with BQ27546-G1, the problem as below:

1,  About 3% enters the 0x0b address state, and the gauge can not work normally, after power off and on, it will return to the normal 0x55 (7-bit i2c address) address state.

2,  About 4/1000 chips are always in the 0x0b state, they need to use bqStudio to program the srec file to return to normal.

 Attached the file and schematic

BQ27546配置文件 (1).zip

Chip model: BQ27546-G1
Order number: T03997026
use environment
Supporting battery: Panasonic NCR18650B 3400mAh
Communication rate with the main control: 100kHz
Two other chips are hung under the I2C bus
Attached is the file for mass production attached to the compression package. The command to burn the configuration is as follows:
bqtool --bqfs-flash --bqfs-file=0546_2_01-bq27546G1.df.fs
The main configuration parameters of the chip (intercepted from the gg.csv file):
"Configuration","Charge","Charging Voltage","4200","mV"
"Configuration","JEITA","T1-T2 Chg Voltage","4200","mV"
"Configuration","JEITA","T2-T3 Chg Voltage","4200","mV"
"Configuration","JEITA","T3-T4 Chg Voltage","4150","mV"
"Configuration","JEITA","T4-T5 Chg Voltage","4100","mV"
"Configuration","Data","Design Capacity","3400","mAh"
"Gas Gauging","State","Qmax Cell 0","3400","mAh"
"Configuration","Discharge","SOC1 Set Threshold","340","mAh"
"Configuration","Discharge","SOC1 Clear Threshold","408","mAh" 
已下是读取异常I2C书出的log信息:
root@OpenWrt:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- 0b -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- 4b -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                        
root@OpenWrt:~# 
root@OpenWrt:~# 
root@OpenWrt:~# i2cdump -y 0 0x0b
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 6d 53 5a 89 78 03 84 99 55 c3 ea ee 94 1b 96 f2    mSZ?x???U???????
10: 0d 4a 64 5b c6 41 26 91 57 fe 11 c0 4f c0 f0 57    ?Jd[?A&?W???O??W
20: 5d 2d 44 a0 c0 8e 63 e9 90 8c 31 50 b4 03 4c 57    ]-D???c???1P??LW
30: d3 ad fd 2b b9 99 39 22 61 2a 5d 41 db 63 ac 51    ???+??9"a*]A?c?Q
40: 99 0c 64 83 40 8c 0a 05 83 d1 7b e4 10 60 6c 45    ??d?@?????{??`lE
50: 24 01 67 92 e1 90 17 60 78 f2 12 72 d1 03 e2 06    $?g????`x??r????
60: 08 32 40 8a 34 61 21 XX XX XX XX XX XX XX XX XX    ?2@?4a!XXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: 6d 53 5a 89 78 03 84 99 55 c3 ea ee 94 1b 96 f2    mSZ?x???U???????
90: 0d 4a 64 5b c6 41 26 91 57 fe 11 c0 4f c0 f0 57    ?Jd[?A&?W???O??W
a0: 5d 2d 44 a0 c0 8e 63 e9 90 8c 31 50 b4 03 4c 57    ]-D???c???1P??LW
b0: d3 ad fd 2b b9 99 39 22 61 2a 5d 41 db 63 ac 51    ???+??9"a*]A?c?Q
c0: 99 0c 64 83 40 8c 0a 05 83 d1 7b e4 10 60 6c 45    ??d?@?????{??`lE
d0: 24 01 67 92 e1 90 17 60 78 f2 12 72 d1 03 e2 06    $?g????`x??r????
e0: 08 32 40 8a 34 61 21 XX XX XX XX XX XX XX XX XX    ?2@?4a!XXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
以下是正常状态的打印输出
root@OpenWrt:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- 4b -- -- -- --
50: -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        
root@OpenWrt:~# 
root@OpenWrt:~# i2cdump -f -y 0 0x55
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 8c 00 00 00 5e 00 46 0c c8 0f 59 00 72 0c 3c 0d    ?...^.F???Y.r?<?
10: 32 0c fc 0c 05 fe 71 01 fc 0c 00 00 fc 0c b9 11    2?????q???..????
20: 32 0c 32 0c 54 01 98 01 3f 0c 00 00 5e 00 62 00    2?2?T?????..^.b.
30: 68 10 a0 0a 33 00 e8 02 00 00 7f 29 48 0d 00 00    h???3.??..?)H?..
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 10 00 97 00 00 00 48 0d 00 00 11 10 00 22    ..?.?...H?..??."
70: 00 00 32 0c a2 3e 00 f8 XX 8c e0 03 c6 0f 46 0c    ..2??>.?X?????F?
80: 8c 00 00 00 5e 00 46 0c c8 0f 59 00 72 0c 3c 0d    ?...^.F???Y.r?<?
90: 32 0c fc 0c 05 fe 71 01 fc 0c 00 00 fc 0c b9 11    2?????q???..????
a0: 32 0c 32 0c 54 01 98 01 3f 0c 00 00 5e 00 62 00    2?2?T?????..^.b.
b0: 68 10 a0 0a 33 00 e8 02 00 00 7f 29 48 0d 00 00    h???3.??..?)H?..
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 10 00 97 00 00 00 48 0d 00 00 11 10 00 22    ..?.?...H?..??."
f0: 00 00 32 0c a2 3e 00 f8 XX 8c e0 03 c6 0f 46 0c    ..2??>.?X?????F?
root@OpenWrt:~# 
root@OpenWrt:~# cat /sys/class/power_supply/bq27546-0/uevent 
POWER_SUPPLY_NAME=bq27546-0
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_VOLTAGE_NOW=4039000
POWER_SUPPLY_CURRENT_NOW=-507000
POWER_SUPPLY_CAPACITY=94
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_TEMP=411
POWER_SUPPLY_TIME_TO_EMPTY_NOW=22080
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CHARGE_FULL=3324000
POWER_SUPPLY_CHARGE_NOW=3184000
POWER_SUPPLY_CHARGE_FULL_DESIGN=3400000
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_POWER_AVG=3400000
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_MANUFACTURER=Texas Instruments
POWER_SUPPLY_SOC1_STATUS=0
POWER_SUPPLY_SOC1_SET=340
POWER_SUPPLY_SOC1_CLEAR=408
root@OpenWrt:~# 
Please help check it.
Thanks
Star
 
  • Hello Star,

    This can happen if programming is interrupted. You may need to use a better programmer or shorter communication lines to prevent errors/interruptions in communication during programming

  • Thank you very much for your reply.

    We did not use a programmer for programming the BQ27546 during production. Since we have 5K pcs of the product, using a programmer would require more personnel and time to operate. Therefore, we utilized the I2C channel of our product's MediaTek SOC chip to program the BQ27546. The files are in .FS format (included in the attached compressed package).

    Additionally, I would like to add that we have observed instances where the product enters ROM mode not during the programming phase, but rather while the product is operating normally. We are unsure why it enters ROM mode and why it exits ROM mode upon power cycle. After the issue disappears, I attempted 100 rounds of power on/off tests, but it did not reproduce. However, when we handed it over to the production testing team, it entered ROM mode again. After another power cycle, it exited ROM mode.

    I also want to know the command to exit ROM mode for BQ27546-G1.

    Does ROM mode in BQ27564 only occur when programming BQ27546 is interrupted? Is it possible to enter ROM mode without programming BQ27546?

    Thank you for providing technical support

  • Additionally, if our production testing frequently changes to different brands with the same specifications, but with different States of Charge, will it result in automatic entry into rom mode? We've conducted such experiments and found that the probability of recurrence increases.

    If it is because of this problem, can you give me some suggestions to ensure that the products received by customers will not enter ROM mode?
  • Hello zwc,

    The gauge does not enter ROM if programmed correctly. The systems sending FS file commands must be as reliable as a programmer, otherwise it can cause the issues that you are seeing

    There is a command to enter ROM mode. Cmd=00, data= 00 0f

    Make sure that this command is not being sent by host/production process. Also the enter ROM mode command will not work after the gauge is put in sealed mode. 

  • dear shirish

    I also need the command to exit ROM mode. Please help to provide, thank you for your support
  • I just tried Cmd=00, data= 00 0f, and indeed entered the ROM mode, and automatically exited the ROM mode after power off, but we hope that if the product received by the customer suddenly enters the ROM mode, our program can detect it As a solution, send commands to let BQ27546-G1 exit ROM mode without removing the battery, so we urgently need the command to exit ROM mode
  • Hello zwc,

    We do not recommend executing the firmware as a workaround without determining root cause. I would recommend that you seal the device to prevent it being sent any command that can put it in ROM mode.

  • Hello,

    After conducting multiple tests, we have determined that a significant portion of the devices entering ROM mode is due to the replacement of the battery. However, we are uncertain why changing the battery would result in entering ROM mode, as we have not sent any commands that would trigger such behavior.

    Moreover, a large number of cases occur even after the programming process has been completed correctly. Based on our current assessment, when customers receive our product, they often install a new battery, increasing the likelihood of this issue occurring on their end. The problem can only be resolved by reinstalling the same battery a second time. However, this may be an unreasonable action for customers to undertake. Therefore, we need a command to restart the BQ27546-G1 or exit ROM mode, allowing us to test which command is the most appropriate.

    For the few cases where ROM mode is entered due to programming interruptions, we will use a programmer to recover the BQ27546.

    Currently, our production line has completed the manufacturing of 5000 units, awaiting delivery to customers. We hope to identify a method to exit ROM mode without removing the battery as soon as possible. This method will not be used for defective units caused by programming errors.

  • BQ27546-G1 is a pack side device and must always be connected to the battery for proper operation. Can you explain "replacement of the battery"?

    1. Firstly, because the client requires the use of their own 18650 batteries, our shipments do not include batteries. After receiving the products, the client will install the final 18650 batteries for all products.

    2. I will roughly describe our production testing process: After the first batch of 5000pcs PCBAs are manufactured, we will use two specially customized semi-automatic test fixtures for functional testing and programming of the BQ27546-G1 (each test fixture already has a 18650 battery installed to avoid frequent battery replacements). During this process, all BQ27546-G1s will use the same test fixture battery for testing and programming. After the above testing, we will proceed to the next step of assembly into semi-finished products, at which point another 18650 battery will be installed for additional functional testing (at this time, some products may enter ROM mode due to battery replacement). Products that pass the test will be assembled into finished products, then the third battery will be swapped in for a 20% quality spot check.

    In other words, through our complete production testing process, at least three swaps of 18650 batteries of the same specification but different capacity are required. After receiving the products, the client will install the final 18650 battery for each product and then package it. Thus, this product will go through at least four battery replacements before it reaches the client. We hope that after the client installs the final standalone battery for all products, they will not have to go through the cumbersome steps of removing and reinstalling the battery to exit ROM mode due to entering it. Instead, they can just use a command to exit ROM mode. We can ensure that the products received by the client will not enter ROM mode due to programming interruptions.

    In any case, we urgently need a command to exit ROM mode without having to remove the battery. We greatly appreciate your help and hope you can provide it as soon as possible. We will not use this method in a way that would damage the TI chips.

    Thanks again.

  • The gauge should not be entering ROM in the first place unless something is corrupted. I would recommend focusing on finding out why instead of applying a patch. I will send you a friend request to share how to execute