mc00b.jpg
Edit v1.202 from 2001-07-18 to 2009-11-25 by AMu+HDo+HSc+MBi+SSc

Microcontroller 68HC05b

Sofort einsatzfähige Schaltung mit dem Microcontroller 68HC05b incl. Software und Bedienungsanleitung. Nach dem Motto "auspacken und loslegen." Benutzt wird die Programmiersprache BASIC.

Projekt Kapazitätsmessung am Akku mit I/O-Tester für die Funktionsüberprüfung des Microcontrollers.

Projekt Kapazitätsmessung am Akku

Idee:
Das Kapazitätsmessprogramm kam durch folgendes Problem zustande. Ich kaufte mir für mein Mobiltelefon einen neuen Akku. Der Händler sagte mir, dieser Akku habe 2.500 mA/h (ausgesprochen milli Ampere Stunden). Ich wollte ihn nun aufladen. Steckte ihn ans Ladegerät und dachte er muss nun circa 16 Stunden laden. Dann sollte er für ca. 4 Wochen halten. Dann hatte ich mal nach circa 3−3,5 Stunden nach gesehen und sah das der Akku fertig geladen war. Wie konnte das gehen dachte ich mir. Das Ladegerät hatte einen max. Ausgangsstrom von 500 mA, wie konnte also eine Zelle mit 2.500 mA/h in noch nicht einmal 4 Stunden voll geladen sein? Zuerst dachte ich das ist halt so, weil die Zellen im Akku noch neu sind. Aber als dieses Phänomen auch noch beim 3 und 4 Ladevorgang war, dachte ich mir da muss was faul sein! Wie konnte ich jetzt herausfinden, wie viel Energie steckt den wirklich drin? Wenn ich die Kapazität messen könnte, könnte ich dies dem Händler vorlegen, und so einen Umtausch beantragen.

Aufgabe: Es soll eine Schaltung und ein Programm entwickelt werden, welche mit Hilfe eines Microcontroller die Akkukapazität misst.
  • Die Schaltung soll ermöglichen, das der Microcontroller seinen Spannungs−Messbereich und die verwendete Last selber wählen kann.
  • Die Aufgabe des Programmes ist, einen Akku über eine mittels Microcontroller gesteuerte Schaltung zu entladen. Durch die dem Programm übergebenen Daten soll im Anschluss die Kapazität berechnet und ausgegeben werden.

Team

Manuel Birkholz (MBi) verantwortliche für
Das Team bestand aus:
qmess01a.jpg Abb. 1a: Team (v.links n.rechts KVo, MBi, GMu)
  • die Leitung des Projekts,
  • die Entwicklung der Stromlaufpläne für die Schaltung und
  • die Generierung der Software incl. der dazugehörigen Dokumentation.
Guido Müller (GMu) verantwortliche für
die Entwicklung der Layoutpläne für
  • der Entladeschaltung und
  • der Spannungsbereichwahl (Autorange).
Karsten Voll (KVo) verantwortliche für
die Integration der HTML-Seiten in die Firmenhomepage.

Aufbau und Funktion

Hardware

qmess02a.jpg Abb. 2a: Steuerkreis der Entladeschaltung

qmess02b.jpg Abb. 2b: Messbereichs- und Lastkreis der Enladeschaltung
Die Schaltung gibt die Werte von der Spannung an das Programm über die A/D−Wandler des Microcontroller weiter.

Software

Dieses Programm verwendet die vom Nutzer eingegebenen Nennwerte des Akkus um zu bestimmen, welche Lastkreise über den Microcontroller angesteuert werden sollen. Hier sehen Sie die Struktogramme für das Hauptprogramm und das Unterprogramm zur Messbereichsauswahl mit dem Namen Autorange. Mittels dieser kann nachvollzogen werden wie das Programm arbeitet.
Bestandteile des Programm
  1. Eingabeprozedur in der der Nutzer die elektrischen Werte Nennspannung und Nennkapazität seines Akkus eingeben muss.
  2. Überprüfung der vom Benutzer eingegebenen Werte.
    qmess02c.gif Abb. 2c: Struktogramm des Hauptprogrammes
    Sind diese nicht richtig, wird die Schritt 1 wiederholt. Danach wird die Kennziffer für die Technologieform des Akkus abgefragt.
  3. Über einen einstellbaren Spannungsteiler wird die Akku−Spannung den A/D Wandler vom Microcontroller zugeführt und gemessen.
  4. Berechnen der Maximallast Aus der eingegebenen Nennkapazität wird dann die LastSoll nach folgender Formel
    Sollstrom ist ein zehntel der angegebenen Nennkapazität
    berechnet.
  5. Hier wird überprüft ob der Lastkreis überhaupt für die Spannung ausgelegt ist, welche geschaltet werden soll. Somit wird ein Durchbrennen der Widerstände durch Überlastung verhindert. Danach wird das Schalten der Last durch die Stromzuführung zum jeweiligen Relais veranlasst.
  6. In der Entladephase ist das Programm im Pausemodus für eine Zeit tPause.
  7. Die Berechnung der entnommenen Kapazitäten erfolgt durch Aufsummieren der geflossenen Ströme mal Zeitdauer des Fliesens.
  8. Es wird der Wert der Spannung gemessen welche am Akku anliegt. Hat dieser die Entladeschlussspannung nicht erreicht, springt er wieder zum Punkt 3.
  9. Es erfolgt die Ausgabe der Gesamtkapazität und das Programm wird beendet.

Zu Erstellung der Programme wird das Programm CC-Basic verwendet.
Das Unterprogramm zur Messbereichswahl,
qmess02d.png Abb. 2d: Struktogramm der Messbereichwahl
auch Autorange genannt, funktioniert wie folgt: Der Messbereich wird auf maximale Spannung voreingestellt. Ist der Messwert kleiner als ein Zehntel, wird der Messbereich verkleinert.

Einsatz

Dokumentation für den Kunden
  1. Systemanforderung des Programmes Microcontroller MC68HC05B mit angeschlossenem Applikationsbord und die Entladeschaltung PC ab 80286 mit 640 KByte RAM und wenn möglich mit Festplatte (für das Betriebssystem und CC-Basic mit Miniterminal) es ist aber auch der Betrieb auf Disketten möglich.
  2. Installation des Programmes Kopieren sie die Datei Kapmess.bas auf Ihre Festplatte Starten Sie das separat erhältliche CC-Basic für DOS und öffnen sie die Datei Kapmess.bas. Gehen Sie auf Entwicklung dann auf BASIC-Compiler. Diese erstellt Ihnen nun die Binärdatei. Nun müssen Sie diese in den Microcontroller laden. Dieses geschieht mit Entwicklung Lader Danach müssen Sie erneut auf Entwicklung und dann auf Miniterminal. Nun betätigen sie den gelben Startknopf am Microcontroller. Nun viel Spaß beim Nutzen des Programmes.
  3. Bedienung des Programmes Drücken Sie auf Start. Geben Sie die Nennspannung Ihres Akkus ein. Geben Sie die Nennkapazität des Akkus ein Geben Sie die Technologie des Akkus ein.
  4. Ausgaben des Programmes Aufforderung zur Eingabe der Nennwerte und Technologie des Akkus. Nach Beendung Ausgabe der noch im Akku befindlichen Kapazität.
Ergebnis: Als der Händler dann die Ergebnisse sah war er überzeugt das er mir keinen 2.500 mAh Akku verkauft hatte und gab mir einen Teil meines Geldes zurück.

Das Projekt Input/Output-Tester

Der Microcontroller hat 8 Digitalen- und 8 Analogenports plus Spannungsausgang und Masse.
check01a0.png Abb. 1a: Input/Output-Testschaltung
Die Aufgabe des Test ist es bei der Inbetriebnahme des MC68hc05 die Funktionsfähigkeit der Ports zu überprüfen.

Aufbau und Funktion

Hardware

  1. Erstellen eines Schaltplanes für die Testplatine
    check02a.jpg Abb. 2a: Platine zum Ein- und Ausgeben von Signalen

  2. Die Verbindung vom Microcontroller zur Testplatine wird folgendermaßen hergestellt:
    check02b0.png Abbildung 2b: Modifiziertes Sub-D-Kabel für den Digitalport
    Für die Verbindung zwischen dem digitalen Port und der Testplatine habe ich ein Slotblechkabel verwendet.
    check02b1.jpg Abbildung 2b1: Sub-D-Slotblech mit den 9 und 25poligen Steckern
    An Stelle des Sub-D-Steckers vom Slotblech wurde an jede Ader (Draht) einen Fehlerstecker (1mm) angelötet. Dieser wurde zusätzlich mit einem Schrumpfschlauch überzogen, um Kurzschlüsse bei geringem Kontaktabstand zu vermeiden.

  3. Des weiteren wird ein zweites Kabel für den analogen Port benötigt.
    check02c.jpg Abb. 2c: Kabel für den Analogport und die Stromversorgung
    Dazu werden 5 Mainbord-Steckbuchsenkabel verwendet. An das Ende der Litze (+1 für Stromanschluss) löten Sie einen Federstecker. Jeweils ein Kabel wird für
    • Betriebsspannung +6,5V und Masse GND verwendet, sowie
    • die anderen 4 Kabel jeweils für den analogen Messeingang 8 und 7, 6 und 5, 4 und 3, 2 und 1.

Software

check02d0.jpg
           title= Abb. 2d: Windows Version des Programmes C-Control Basic
Zum Microcontroller-Bausatz wird eine Entwicklungsumgebung mitgeliefert. Entwickelt wurde das Programm mit dem integrierten CC-Basic v3.0. Dieses Entwicklungsumgebung ist für DOS als auch für Windows-PCs erhältlich. Die verwendete Programmiersprache ist BASIC. Diese ist eine nicht objektorientierte Sprache mit nur 25 verschiedenen Befehlen. Es kann auch immer nur ein Vorgang abgearbeitet werden. Simultanes Arbeiten an verschiedenen Prozessen ist auch nicht möglich.

Einsatz

Inbetriebnahme

  1. check03a.jpg Abb. 3a: Analoge und digitale Anschlüsse des Microcontrollers
    In der Abb. 3a sehen sie links die analogen und rechts die digitalen Anschlüsse des Microcontrollers. Das Anschließen der Testplatine erfolgt durch die vorbereiteten Kabel. D.h. das Kabel laut Abb. 2b mit der Pfostenbuchse kommt an den digitalen Port und die 5 Mainboard-Steckbuchsen-Kabel laut Abb. 2c kommen an den analogen Port.
  2. check03b.jpg Abb. 3b: Analoge und digitale Anschlüsse der Testplatine
    Dieses Bild zeigt den Anschluss der Porttestplatine, links analog und rechts digital. Die Seite der modifizierten Kabel mit den Fehlersteckern wird hier angeschlossen. Wenn alles richtig angeschlossen wurde beginnen die Dioden an zu leuchten und durch das betätigen der Schalter kurzzeitig zu erlischen!

Anwendung

  1. Schließen Sie den Microcontroller an die I/O-Testplatine an. Wie das geschieht ist auf der Abb. 1a und folgende zu sehen.
  2. Software generieren
    1. Öffnen Sie die ASM_IO.ASM und BAS_IO.BAS mit dem CCBasic Editor.
      • Diese Dateien sind unter dem Link ASM_IO und BAS_IO zu finden.
      • Kopieren Sie sich den Inhalt dieser Dateien und nennen Sie diese in ASM_IO.ASM und BAS_IO.BAS um.
      • Nun können Sie mit dem Editor geöffnet werden.
    2. Lassen Sie über die ASM_IO.ASM das Assemblerprogramm laufen der dann eine ASM_IO.S19 erstellt.
      • WICHTIG: Achten Sie darauf das der Assembler keine Fehler meldet, da dieser sonst beim Kompilieren der BAS_IO.BAS das System zum Abstürzen bringt.
      • Es können eventuelle Fehler beim Assemblieren auftreten, deren Grund die ADD und ADC Befehle sind.
    3. Lösung: Rufen Sie im DOS Modus die AS5.exe auf und dahinter die zu assemblierende Datei,
      • z. Bsp. C:\ASM\AS5.EXE ASM_IO.ASM -L.
    4. Kompilieren Sie die BAS_IO.BAS
      • Im Menü - Entwicklung - Kompilieren des CCBasic Editors, können Sie dies tun.
      • Sollte dieses Feld einmal Grau unterlegt sein, achten Sie darauf das die BAS_IO.BAS im Vordergrund steht.
    5. Laden Sie die BAS_IO.DAT in den Microcontroller.
      • Laden Sie die kompilierte Datei mit dem LADER in den Microcontroller.
      • Dieser lädt dann automatisch erst die Basic und dann die S19 Datei rüber.
      • Sollte der Lader bei der zweiten Datei 0 Byte anzeigen so war das Assemblieren zuvor fehlgeschlagen.
  3. Starten Sie das Programm durch Betätigung des gelben Tasters.
    1. Test - Aufflackern
      • Es beginnt ein heraufzählen von 0 - 256 dies wird auf den Dioden ausgegeben in Form einer 8Bit-Dualzahl. (Jedes Bit gleich eine LED)
      • Nach Ablauf dieses Heraufzählens leuchten alle Dioden 2 Sekunden auf. Es dient nur zur Bestätigung des ersten Testes, wonach mit dem 2. Test fortgefahren werden kann.
    2. Test - Digitalporttest
      • Nun müssen alle Taster gedrückt werden, um diesen Test zu absolvieren.
      • Die Taster müssen/können nur ab dem ersten Taster der Reihe nach gedrückt werden.
      • Sollten alle ausgeschalten sein, beginnt der 1. Test noch einmal, um diesen zu bestätigen.
    3. Test - Analogporttest
      • Beginnen Sie mit Potentiometer den Wert des ersten Analogportes langsam unter 30Digits zu bringen, so lange bis alle Dioden einmal ca. 2 Sekunden ausgehen.
      • Nun bringen Sie langsam den Digitwert über 230, bis diese alle ca. 2 Sekunden Leuchten.
      • Nachdem dies getan wurde, schaltet das Programm automatisch auf den 2. Port um.
      • Alle momentanen Werte, während des Testes, werden auf den Dioden angezeigt.
      • ACHTUNG: Falls an ihrem Controller eine Tastatur angeschlossen ist, bringen Sie den Wert unter 30 Digits mit der Tastatur durch drücken der Taste 7 und mit der Taste 8 über 230 Digits.
      • Nun ist der Test abgeschlossen und es wird in das Basic Programm zurückgekehrt.

Quellenangaben

Die Quellen werden mit Titel, Autor, Verlag und ISBN-Nr. angegeben
  • C-Control/plus von Conrad als Handbuch
  • Steuercomputer 1997
  • C-Control-Applikationsboard von Conrad als Handbuch
  • Motorola 68HC05, Zegin, Heise, 3-88229-034-X
  • B-Familie Zekeriya 1998, 5. A.
  • C-Control Anwendungen, Kainka, Franzis, 3-7723-5514-5
  • MSR-Technik für ..., - , Förster 1998, -
  • Messen-Steuern-Regeln, Kainka, Franzis 3-7723-6734-8
  • mit dem C-Control/BASIC, -, Burkhard 1998
  • Der Keil C51-Compiler, Baldisc, Electro ,3-9804331-6-1
  • v6.0 und æVison2 hweiler nic