Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Brett's Arduino 8x Smart Charger / Discharger
#31
I used google translate and here is the info
https://translate.google.com/translate?h...rev=search
Seems that they improved quite a bit over TP4056. Built in Anti-Reverse and higher power and yes cooler buck converter.
Just need to watch, the higher the source voltage the higher the cutoff voltage. ouch.



Overview
The TP5100 is a switching step-down dual-section 8.4V/single 4.2V lithium battery charge management chip. Its QFN16 ultra small package
With simple peripheral circuitry, the TP5100 is ideal for high current charge management applications in portable devices. At the same time, TP5100
Built-in input over-current, under-voltage protection, chip over-temperature protection, short-circuit protection, battery temperature monitoring, battery reverse connection protection.
TP5100 has a wide input voltage of 5V-18V, and the battery is charged into three stages: turbulent precharge, constant current and constant voltage.
The pre-charging current and constant-current charging current are adjusted by an external resistor, and the maximum charging current is 2A. TP5100 uses frequency 400kHz
The switch mode of operation allows it to use smaller peripherals and still maintain a small amount of heat during high current charging.
The TP5100 has a built-in power PMOSFET and an anti-backflow circuit, so there is no need for peripheral protection such as anti-backflow Schottky diodes
brettwatty and Rasmus Godske like this post
Reply
#32
Hi, all,

Nice job ! I'm working on a similar project for a few month (free time is scarce :-( )

My design runs on an ESP8266 and is a 4-cell model so that it fits the cheap 10x10xm PCB size, but it shares many aspects with yours, among other things the ds18b20 temp sensors underneath the cells, the choice to use external breakout boards for the most integrated parts and the fact of identlfying cells and posting results to a DB - although I'm just typing cell IDs in the web UI, while the barcode scanner is much better !

Now there are a few major differences like the discharge logic. I'm using a "programmable load" design like Dave Jones' dummy load - https://www.youtube.com/watch?v=8xX2SVcItOA&t=315s - while the current in your circuit is set by the resistor value if I'm not mistaken. Is that correct ?

The first prototype I made has several problems (both mechanical and electrical), but I have fixed most of them. The last issue I'm struggling with (like most people I think) is how to avoid draining batteries if they are inserted while the board is not powered. I'm still thinking of a few designs to test (with an optocoupler, or with a relay as a last resort). Can you explain how you solved that issue  ?

Here how my first prototype looks:
 

Current Web UI:


And how the latest version should look like :


Kind regards,

Vincent
PaulDane and Korishan like this post
Reply
#33
(07-22-2018, 11:29 PM)vdeconinck Wrote: Hi, all,

Nice job ! I'm working on a similar project for a few month (free time is scarce :-( )

My design runs on an ESP8266 and is a 4-cell model so that it fits the cheap 10x10xm PCB size, but it shares many aspects with yours, among other things the ds18b20 temp sensors underneath the cells, the choice to use external breakout boards for the most integrated parts and the fact of identlfying cells and posting results to a DB - although I'm just typing cell IDs in the web UI, while the barcode scanner is much better !

Now there are a few major differences like the discharge logic. I'm using a "programmable load" design like Dave Jones' dummy load - https://www.youtube.com/watch?v=8xX2SVcItOA&t=315s - while the current in your circuit is set by the resistor value if I'm not mistaken. Is that correct ?

The first prototype I made has several problems (both mechanical and electrical), but I have fixed most of them. The last issue I'm struggling with (like most people I think) is how to avoid draining batteries if they are inserted while the board is not powered. I'm still thinking of a few designs to test (with an optocoupler, or with a relay as a last resort). Can you explain how you solved that issue  ?

Here how my first prototype looks:
 

Current Web UI:


And how the latest version should look like :


Kind regards,

Vincent

Mate that looks awesome. Great work. You are right mine is a fixed resistor value, I used that for simplicity and it is linear amperage from the voltage drop. I have not encountered the drain issue while it is powered off but I have had issues where the analog pins were powered by the battery. I have since added 10K resistors in series with the analog pins to avoid powering the Arduino analog clamping diodes.  Cheers Brett
Reply
#34
(07-23-2018, 03:14 AM)brettwatty Wrote: Mate that looks awesome. Great work. You are right mine is a fixed resistor value, I used that for simplicity and it is linear amperage from the voltage drop. I have not encountered the drain issue while it is powered off but I have had issues where the analog pins were powered by the battery. I have since added 10K resistors in series with the analog pins to avoid powering the Arduino analog clamping diodes.  Cheers Brett

Thanks for your reply and kind words.
Your answer confirms my suspicions : the draining is most probably due to the "programmable load" circuit. When a battery is inserted while the charger is not powered, I believe the Op-Amp controlling the current in the FETs also gets powered by clamping diodes or something, and it somewhat opens the FETs.
I have put FS8205A dual FET's in the schema to try to disconnect GND and Batt- when the charger is not powered, but I'm still struggling due to the lack of common GND in that case.

Anyway, keep on the good work. I learned from your project and hopefully people will learn from mine too :-)

KR,
Vincent
Reply
#35
(07-23-2018, 12:12 PM)vdeconinck Wrote:
(07-23-2018, 03:14 AM)brettwatty Wrote: Mate that looks awesome. Great work. You are right mine is a fixed resistor value, I used that for simplicity and it is linear amperage from the voltage drop. I have not encountered the drain issue while it is powered off but I have had issues where the analog pins were powered by the battery. I have since added 10K resistors in series with the analog pins to avoid powering the Arduino analog clamping diodes.  Cheers Brett

Thanks for your reply and kind words.
Your answer confirms my suspicions : the draining is most probably due to the "programmable load" circuit. When a battery is inserted while the charger is not powered, I believe the Op-Amp controlling the current in the FETs also gets powered by clamping diodes or something, and it somewhat opens the FETs.
I have put FS8205A dual FET's in the schema to try to disconnect GND and Batt- when the charger is not powered, but I'm still struggling due to the lack of common GND in that case.

Anyway, keep on the good work. I learned from your project and hopefully people will learn from mine too :-)

KR,
Vincent

Is your N-Channel FET's gate pin pulled down to the batteries ground with a resistor? That might be the problem?
Reply
#36
Parts List: http://www.vortexit.co.nz/parts-list/
Easy EDA PCB: https://easyeda.com/brettwatty/arduino-m...charger-v5
Source Code: https://github.com/bretwatty/Arduino-8x-...Discharger (Still in Development)
Checkout my database stats page of currently processed batteries: http://www.vortexit.co.nz/batteries-recycled/
Reply
#37
(07-23-2018, 09:02 PM)brettwatty Wrote:
(07-23-2018, 12:12 PM)vdeconinck Wrote: I have put FS8205A dual FET's in the schema to try to disconnect GND and Batt- when the charger is not powered, but I'm still struggling due to the lack of common GND in that case.

Is your N-Channel FET's gate pin pulled down to the batteries ground with a resistor? That might be the problem?

Yes, but the issue is that the "CELL_EN" pin driving the MOSFET to enable it (which should be powered only when VCC is present) is also powered by the battery itself. This signal comes from an I/O expander.
Here is the schematic of the charger and battery protection when VCC is present:
The cell sits between B+ and B-.
The lower MOSFET of the FS8205A and associated transisor protects (very well) against a reversed battery.
The upper MOSFET is the one designed to stop current from flowing when there is no VCC, and has its gate "pulled down" to B-.
Now when there is no VCC, the schematic behaves completely differently, and you can draw it inside out like so (I've left out the reverse protection logic:
As you can see, "GND" and "VCC" now float at a voltage somewhere between B+ and B-, so obviously the whole expander also is at that voltage, which is higher than B- and its CELL_EN starts driving the MOSFET.
A friend advised me to offset that gate voltage with a diode, but there is a negative feedback loop: if the MOSFET resistance increases, then GND and VCC float even higher, closer to B+ and further from B-, and so does the CELL_EN pin, which increases the gate voltage, reducing the MOSFET ressistance.
I am now convinced I have to isolate the control part (CELL_EN output) and the controlled part (MOSFET gate). For sure a relay would do, but probably an opto coupler should work. That's what I'm going to try next.
Kind regards,
Vincent
Reply
#38
(07-23-2018, 11:29 PM)vdeconinck Wrote:
(07-23-2018, 09:02 PM)brettwatty Wrote:
(07-23-2018, 12:12 PM)vdeconinck Wrote: I have put FS8205A dual FET's in the schema to try to disconnect GND and Batt- when the charger is not powered, but I'm still struggling due to the lack of common GND in that case.

Is your N-Channel FET's gate pin pulled down to the batteries ground with a resistor? That might be the problem?

Yes, but the issue is that the "CELL_EN" pin driving the MOSFET to enable it (which should be powered only when VCC is present) is also powered by the battery itself. This signal comes from an I/O expander.
Here is the schematic of the charger and battery protection when VCC is present:
The cell sits between B+ and B-.
The lower MOSFET of the FS8205A and associated transisor protects (very well) against a reversed battery.
The upper MOSFET is the one designed to stop current from flowing when there is no VCC, and has its gate "pulled down" to B-.
Now when there is no VCC, the schematic behaves completely differently, and you can draw it inside out like so (I've left out the reverse protection logic:
As you can see, "GND" and "VCC" now float at a voltage somewhere between B+ and B-, so obviously the whole expander also is at that voltage, which is higher than B- and its CELL_EN starts driving the MOSFET.
A friend advised me to offset that gate voltage with a diode, but there is a negative feedback loop: if the MOSFET resistance increases, then GND and VCC float even higher, closer to B+ and further from B-, and so does the CELL_EN pin, which increases the gate voltage, reducing the MOSFET ressistance.
I am now convinced I have to isolate the control part (CELL_EN output) and the controlled part (MOSFET gate). For sure a relay would do, but probably an opto coupler should work. That's what I'm going to try next.
Kind regards,
Vincent

Sounds like you have it sussed out. I like the idea about 100x100 footprint much cheaper to make. Cheers Brett
Reply
#39
(07-27-2018, 08:54 AM)brettwatty Wrote: I like the idea about 100x100 footprint much cheaper to make.

And if you make it with SMD components, you could use it on both sides and have twice as many on one board Tongue

jk, of course, that'd be a nightmare to setup.
Proceed with caution. Knowledge is Power! Literally! Cool 
Knowledge is Power; Absolute Knowledge is Absolutely Shocking!
Certified 18650 Cell Reclamation Technician

Please come join in general chit-chat and randomness at https://discord.gg/c7gJ5uA
(this chat is not directly affiliated with SecondLifeStorage)
Reply
#40
It could be done.

However, the tracing you would have to do would be insane, and you would probably need a 4 layer board at that point.
The power of lithium ion is in our hands!
We'll show them what we're made of!
Reply


Who read this thread?
100 User(s) read this thread:
hbpowerwall (09-12-2018, 05:50 AM), Chickey (10-14-2018, 10:55 AM), daromer (11-05-2018, 08:17 PM), Sean (11-04-2018, 08:14 PM), mike (11-16-2018, 01:35 PM), station240 (10-15-2018, 12:22 PM), PaulKennett (10-17-2018, 10:35 AM), Joaquinsfy (11-01-2018, 07:08 AM), NiVa (09-20-2018, 11:16 PM), owitte (06-19-2018, 08:47 AM), Majorphill (10-14-2018, 02:34 AM), BatteryDIY (07-30-2018, 03:39 PM), Korishan (11-04-2018, 06:52 PM), A + A (04-19-2018, 06:13 AM), PAF (11-05-2018, 11:32 AM), brettwatty (12-12-2018, 12:07 AM), Franky Beuselinck (09-10-2018, 02:10 PM), Batrium (07-16-2018, 02:35 AM), CrankyCoder (12-13-2018, 08:49 PM), Mike C (09-21-2018, 08:27 PM), jdeadman (11-04-2018, 07:17 PM), wim (10-11-2018, 09:23 AM), coconut2k13 (12-04-2018, 05:41 PM), typ49 (11-09-2018, 07:25 AM), HandyAndy (04-19-2018, 02:18 AM), Kaspars Krumins (09-16-2018, 05:21 PM), watts-on (11-27-2018, 10:15 AM), jesusangel (11-04-2018, 07:57 PM), David.Hyatt (04-26-2018, 08:06 AM), Gimpy_AK (10-07-2018, 05:36 AM), Hanssing (11-01-2018, 05:03 AM), IronSky (11-09-2018, 02:25 AM), Stefaan De Ridder (07-16-2018, 11:58 AM), Chiptosser (09-17-2018, 03:58 PM), BlueSwordM (11-04-2018, 08:42 PM), tremors (09-20-2018, 11:05 PM), Travis Watson (09-21-2018, 07:19 PM), Seedser (07-16-2018, 04:39 PM), Mazlem (11-05-2018, 04:25 PM), ivnz (09-04-2018, 04:09 AM), Geek (11-05-2018, 12:58 AM), Rad (07-29-2018, 05:15 AM), SWEwall (08-05-2018, 07:50 PM), Bloater (10-16-2018, 06:46 PM), redstar2k (03-27-2018, 11:08 AM), mr_hypno (12-12-2018, 02:58 PM), floydR (07-23-2018, 03:59 AM), AlexCPU (10-16-2018, 01:26 PM), Oshey (05-13-2018, 06:10 AM), Jonas Goiris (08-21-2018, 02:18 PM), NaoDarkness (06-04-2018, 03:53 PM), Grumplestiltskin (10-16-2018, 06:06 PM), burtyb (07-10-2018, 09:00 AM), Lucian Macota (08-01-2018, 09:35 AM), DCkiwi (06-14-2018, 07:24 AM), emerca (11-02-2018, 03:07 AM), 12ax7 (11-10-2018, 03:43 AM), ChrisD5710 (11-05-2018, 03:23 PM), ardenking5 (09-15-2018, 07:07 PM), rev0 (12-06-2018, 10:10 PM), dmallia (05-21-2018, 07:00 AM), ad8mustanggt (03-29-2018, 06:40 PM), CarelHassink (11-04-2018, 08:07 PM), AndyMc1970 (10-16-2018, 11:19 AM), macallazack (11-04-2018, 11:03 PM), Alain Xabier (04-20-2018, 08:51 AM), Stramon (08-10-2018, 07:02 AM), yasko (03-30-2018, 10:40 AM), Solexx X (10-30-2018, 10:32 PM), vdeconinck (10-12-2018, 03:53 PM), Ste Collister (11-01-2018, 07:41 PM), Charly144 (11-05-2018, 09:50 AM), Philip71 (09-17-2018, 06:17 PM), djuro (12-10-2018, 02:14 PM), SecondHandPower (03-30-2018, 04:29 AM), BaronVonChickenPants (06-18-2018, 10:46 PM), ozewaste (07-16-2018, 01:07 PM), RockEater (03-27-2018, 12:04 PM), Stijn Wever (08-09-2018, 09:46 PM), uploader18 (09-13-2018, 07:33 PM), MichalPlays (07-24-2018, 07:00 PM), jm1 (04-19-2018, 05:41 PM), acidice333 (06-19-2018, 09:10 PM), promy (04-07-2018, 09:29 AM), Jason Morris (11-13-2018, 06:10 AM), marcin (07-24-2018, 04:07 PM), brwainer (11-03-2018, 02:27 AM), drchips (09-17-2018, 06:13 PM), cat23 (07-28-2018, 07:39 AM), Roland Domke (07-16-2018, 11:12 AM), gregoinc (07-24-2018, 10:44 AM), Farends (03-29-2018, 04:34 AM), rtgunner (09-21-2018, 04:13 PM), paulkok (06-20-2018, 03:06 PM), goeielewe (04-02-2018, 05:59 AM), outerlimits (03-26-2018, 01:42 PM), EGOksy (04-19-2018, 07:10 PM), gpn (08-21-2018, 05:54 AM), lifeofsins (07-27-2018, 06:21 PM), NGPowerwall (08-21-2018, 12:53 PM)

Forum Jump:


Users browsing this thread: 2 Guest(s)