wemos / docs

34 stars 37 forks source link

Battery Shield Charge Current Resistors are Incorrect (and risk battery fire) #28

Open ocouch opened 2 years ago

ocouch commented 2 years ago

The charge current selection jumper on the battery shield should select between 1.0A and 0.5A charge current according to the documentation. However, I've just checked the datasheet for the TP5400 charge IC - your shield is wrong.

The 0.5A default setting will output around 0.8A, and shorting the jumper actually sets it to 1.6A not 1.0A!

See my post on the CE forums for full details: https://forum.core-electronics.com.au/t/polymer-lithium-ion-battery-400mah-ce04375/298/18?u=oliver33

In summary; from the datasheet for the TP5400:

RPROG = 1100 / IBatt

The charge resistors on this shield are 2x 680 Ohm in series. Open jumper gives:

RPROG = 1360 => IBatt = 1100 / 1360 IBatt = ~0.8A

Closed jumper gives:

IBatt = 1100 / 680 IBatt = ~1.6A

Which is greater than the absolute max of 1.2A the TP5400 is rated for.

ocouch commented 2 years ago

Actually, this may just be a typo on your schematic: docs/en/_static/files/sch_battery_v1.3.0.pdf https://github.com/wemos/docs/blob/master/docs/en/_static/files/sch_battery_v1.3.0.pdf

The schematic says it's a TP5400, but it might be a TP5410? Then it would all make sense.

The TP5400 formula for RPROG is: RPROG = 1100 / Ibatt

The TP5410 formula is: RPROG = 700 / Ibatt

If this is the case the schematic is wrong and the TP5410 is in use, IBatt would be configured for 515mA and 1030mA with the jumper open and soldered, respectively - exactly what is written on the board.

Edit: These boards indeed use the TP5400, but the resistors are as per the TP5410 datasheet. This indeed means this board will charge at 0.8A (1100 / 1360) when set to 500mA (open jumper), and whatever the chip can handle (possibly beyond its absolute max) when the jumper is soldered.

In either case, it'll output far more current than what it is configured to output, and therefore risks causing a battery fire.