8-cell LiFePO4 charger with LTC4162-F and LTC6803-4: Battery not detected

Hi,

I'm designing a laptop that has the unique feature of using LiFePO4 batteries (8x 18650 cells in series). To charge them, I chose the LTC4162-F charger coupled with a LTC6803-4 cell stack monitor. Both are watched/controlled by a NXP LPC11U24 MCU via I2C and SPI, respectively. The idea is to automatically bypass undervolted cells when discharging and overvolted cells when charging, if that makes sense.

I'm now done with bringup of Rev 1 of this board and working on Rev 2, fixing a bunch of mistakes. Also, so far I didn't manage to get the charger to actually charge, which leads to my central question for this post. I can talk to the charger over I2C fine, and the chemistry (4) and cell count (8) readouts are OK. Also the VIN and VBAT measurements seem OK. Wall power VIN is 32V. There are no errors in the status/state registers. I also tried to switch off en_jeita, setting the charge current to 1 (register 0x1a) and setting the recharge threshold to 32765 (register 0x2e), with no change.

The problem is that the charger_state seems stuck in battery detection state (0x800 / 2048) and charge_status = 0 (not charging) when the 8 battery cells are connected. 

When the batteries are not connected, but there is wall power, there is a periodical spike (roughly every 5 seconds) on the BATFET pin that looks like this:

When the batteries are connected, and no wall power is connected, the BATFET level is constant at 29V (!) even if the battery level is at 25.79V. INFET is at 0V.

I suspect a soldering issue as I had the wrong version of LTC4162 fitted before and exchanged it with hot air, but I wanted to confirm the overall concept and schematics before doing more pointless experimentation.

These are the full schematics of the project, the charger and balancer section is on the last page:

http://dump.mntmn.com/reform2-motherboard-v2-pre.pdf

The board is a six layer board. Here are the layers sorted by stack up (plus silkscreen first):

http://dump.mntmn.com/reform2-motherboard-F_SilkS.pdf

http://dump.mntmn.com/reform2-motherboard-F_Cu.pdf

http://dump.mntmn.com/reform2-motherboard-GND_Cu.pdf

http://dump.mntmn.com/reform2-motherboard-Signal_Cu.pdf

http://dump.mntmn.com/reform2-motherboard-Power_Cu.pdf

http://dump.mntmn.com/reform2-motherboard-GND2_Cu.pdf

http://dump.mntmn.com/reform2-motherboard-B_Cu.pdf

For orientation, here is the location of the two relevant chips (southeast corner of the board):

Any hints concerning schematics or PCB problems are appreciated.

Best Regards

Lukas F. Hartmann / MNT Research

  • An update: the LTC6803-4 works fine now, I can read all cell voltages in realtime over SPI. Also while re-reading it occured to me that the switches cannot bypass individual cells, but discharge a cell on demand. I'm not sure how to optimally use this feature yet to balance cells. My guess would be to watch for cells with lower voltage and discharge other cells while charging?

    I also did a resoldering attempt on the LTC4162-F. This changes the situation a bit: the charger_state is now "1" when cells are connected, which indicates a "battery short". The VBAT reading is now wildly fluctuating between ~6 and 21V. I guess this is still mostly a soldering problem.

  • After another resoldering of the LTC4162-F (new chip), the VBat measurement was correct again. The charger_state now changed between 0x100 and 0x800 (charger suspended and battery detection), spending a few seconds in each state. I could also see 0x40 sporadically (cc_cv_charge). So I tried pressing my finger on the chip during operation... and it stays in 0x40 and actually starts charging (Vbat goes up)!

  • I've reworked the chip again and it's finally charging. What a relief! I currently have it set at 1/3rd of the max charge current because it wouldn't work at full current, but there are still many things to try and optimize. So if there aren't any suggestions from others, this case is closed.

  • 0
    •  Analog Employees 
    on Oct 2, 2019 4:03 PM in reply to mntmn

    Hi Lukas,

    Thanks for solving your own question and posting the solution!

    Let me know if anything else comes up.

    Regards,

    Zack