I want to charge my LiFePO4 cell with the following schematic.


simulate this circuit – Schematic created using CircuitLab

The arduino provides a PWM signal, which goes to an isolated MOSFET driver. He drives the logic level MOSFET.

I came up with this setup, so that the signal is a crisp rectangle on the gate, and my arduino is isolated.

Now I have a problem. At first I didn't have the resistor R2. I tested it, while measuring current with a current meter, in place of R2. Everything seemed fine, I charged with 5A, and nothing got hot. After I removed the current meter, I lowered the duty cycle, such that I got the same current. But this time, the MOSFET got hot really fast.

So I figured, it must have been the resistor inside the current meter. I calculated it (I hope correctly), and put a resistor R2 having the same resistance of 0.02Ω. To my surprise, it still gets hot.

Why is that? Is my schematics correct at all? How can I improve from here?

My second question: I know it's a good thing to put a resistor before the gate of a MOSFET. I didn't put one here, since I thought it's a logic level signal. Am I mistaken? Is it needed here?


[Btw, I know I have to provide a constant current. And I also check for overvoltage. And also temperature. Currently, this isn't my concern. I tried to reduce it to the problem I have. So in the diagram you only see my MOSFET.]

Datasheets: TLP2200, IRLB3034

  • 2
    \$\begingroup\$ Compare notes with this fellow. \$\endgroup\$ – Nick Alexeev Oct 4 '17 at 22:49
  • \$\begingroup\$ @NickAlexeev: Why? I don't get it? Do I have to improve my post? \$\endgroup\$ – duedl0r Oct 4 '17 at 22:53
  • \$\begingroup\$ By "Lithium cell" you mean LiFePO4, yes? \$\endgroup\$ – Ignacio Vazquez-Abrams Oct 4 '17 at 22:55
  • 1
    \$\begingroup\$ What range was your meter on? Hw did you calculate it was 0.02 ohm? I suspect it was much more than that. Did you take account of the resistance of the leads? PWM is not a good way to regulate the current for charging. How do you measure the voltage of the cell? Knowing the cell voltage with an accuracy of better than 5mV is necessary for safe charging. \$\endgroup\$ – Kevin White Oct 4 '17 at 23:28
  • 1
    \$\begingroup\$ @duedl0r - If you use PWM without an inductor to smooth the ripple the battery will be subject to much more heating than with DC. An Arduino by itself cannot measure the cell voltage to the accuracy required - it only has a 10 bit ADC and does not have a good reference. \$\endgroup\$ – Kevin White Oct 5 '17 at 2:21

Pulsed charging of Li-ion cells with 5 V directly is something new, softly speaking. The Headway 38120 10Ah cell is listed as having overvoltage protection at 3.65V. So applying 5V pulse will trigger it. How fast? Who knows.

Then, the cell is rated at 150A discharge, with impedance under 4 mOhms. So it looks like the overcurrent protection (if any) is quite above 150 A.

Now this is a speculation: let's say the inner electrochemistry doesn't go above 3.8-4V. So you have ~4 mOhms (cell) plus ~2 mOhms (MOSFET) plus ~20 mOhms of R2, 16 mOhms load that should accommodate about 1 volt, you have 62 A of current spike, for the duration of opvervoltage protection time.

If the overvoltage protection works as shunt/zener type, you will have ~100A of current during your PWM pulse, so a MOSFET with 2 mOhms of Rdson will dissipate maybe 10 watts, and will be pretty hot.

I would strongly advice to drop your current schema before your cells vent into flames, and use an established method of charging. You would need to add a sizable inductor and a strong Schottky diode to convert your direct pulsing into a regular buck-style converter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.