www.mikrocontroller.net

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


Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas T. (runout)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.