Forum: Projekte & Code MSP430 NiCd-Ladegerät mit -dU


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal mein altes Ladegerät für 12V NiCd-Akkupacks (Werkzeugakkus)
etwas aufgemotzt. War vorher rein zeitgesteuert (1h) und verfügt jetzt 
dank eines MSP430F2012 über eine -dU-Ladeenderkennung.

Vielleicht kann jemand ja was davon als Anregung gebrauchen?!

Features:
- Ausgelegt für 12V NiCd-Akkus mit integriertem NTC
  (R0=6k8, B=4046,8)
- mittlerer Schnellladestrom: 1,4A (1C)
- -dU-Schwelle: 17,5mV pro Zelle -> 175mV
- Ladestromregelung per Phasenanschnittsteuerung
  und Strommessung über Shunt
- Erkennung ob ein Akku vorhanden ist oder nicht
  über dessen integrierten NTC
- Temperaturüberwachung während des Ladevorgangs
- Überprüfung auf Unter-/Überspannung des Akkus oder Kurzschluß
- Anfangsladen mit reduziertem Ladestrom (1/5C),
  bis Zellenspannung >0,8V,  mindestens aber 5min.
- Schnellladen mit 1C.
  Während der ersten 5min. ist -dU-Erkennung deaktiviert
- Erhaltungsladung (Trickle-Charge mit 1/20C)
  nachdem Schnellladung beendet ist oder falls Akuutemperatur zu niedrig
  ist oder falls Zellenspannung >1,95V
- Ladeunterbrechung falls Akkutemperatur zu hoch
- Sicherheitstimer, falls -dU-Kriterium versagt
- Akkuspannung und Temperatur werden jede 1s gemessen und ausgewertet
- Alle 10s wird der interne DCO-Oscillator neu auf die Netzfrequenz
  synchronisiert

Der ganze Code ist recht kompakt, da ich im µC nur 2k Flash zur 
Verfügung habe. Daher ist der Code vielleicht auch nicht ganz so einfach 
zu lesen und zu verstehen...

Da ich mit IAR arbeite, habe ich noch ein modifiziertes Linkerfile mit 
drangehängt, falls jemand den Code erweitern möchte und dazu den 
INFO-Bereich als Programmspeicher benutzen will/muss.
Außerdem ein modifiziertes "cstartup"-File. Spart nochmal etwas Code, da 
kein exit-Code erzeugt wird (jeder halbwegs vernünftige Programmierer 
wird seine main() doch hoffentlich so schreiben, dass keine 
exit-Endlosschleife notwendig ist!) und spart 2Bytes auf'm Stack, da 
main() per Branch und nicht per Call aufgerufen wird!

Dann mal viel Spaß damit.
Kritik und Anregungen erwünscht!

Stefan

von Thomas T. (runout)


Lesenswert?

Hallo Stefan,

ich möchte dein MSP430-Ladegeät in abgewandelter
Form aufgreifen.

Es soll ein Doppel-Lader werden
für 2 x 15NiCd Akkupacks.

Die Akkupacks werden mit Relais
zwischen Laden/Entladen umgeschaltet
und mit nur C/5 geladen.

Ich hatte die LTC4010-Lade-IC am Start
aber eine Mikrocontrollerlösung ist besser.

Der von Dir verwendete MSP ist etwas "dünn"..
Der MSP430G2553 ist Resourcenmäßig wohl besser ?

Brauche ich die Triggerung nur einmal.
Sollte man die Triacs für Akku 1+2
irgendwie entkopplen ?

Fragen über Fragen...

Grüße runout

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.