Für die Micro-Unit gibt es ein eigenes Programmier- und Experimentierboard mit Software-CD und Bedienungsanleitung. Mein Ehrgeiz lag aber darin, ohne dieses Board auszukommen. Im Internet findet man unter www.c-control-support.de alles nötige an Software und Informationen. Der Programmieradaper benötigt eigentlich nicht mehr als die Inverter/Pegelwandler für die RS232. Diese wurden in fast gleicher Schaltung wie auf dem Programmierboard auf einer ELEXS-Platine aufgebaut.
Die Stromversorgung kommt von außen über eine 9-V-Batterie. Wichtig ist noch, dass P3 (weiß) mit an Masse liegt. Beim Einschalten weiß der Controller dann, dass zuerst ein neues Programm übertragen werden soll. Nach der fertigen Übertragung aus der CC-Basic-Umgebung wird das Programm automatisch gestartet, auch wenn P3 weiterhin an Masse liegt. Hier könnte man zwar auch einen Tastschalter einfügen, aber mit fester Masseverbindung reicht es für die ersten Versuche auch schon. Die noch freien Ports P4, P5 und P6 wurden an die Eingänge RI, CTS und DSR der RS232 gelegt, damit ich ihren Zustand am PC überwachen kann.
Und nun das erste Programm: Die Syntax ist im wesentlichen gleich wie bei der alten Unit, und es wird auch der selbe Compiler benutzt. Wichtig ist, dass man nur Byte-Variablen verwenden darf. Außerdem werden einige Funktionen der alten Unit nicht unterstützt.
Die erste Aufgabe sollte ein kleines Analoginterface sein, das laufend Messungen ausführt und Messdaten an den PC sendet. Dazu wurde der print-Befehl verwendet. Zuerst passierte nichts. Aber dann kam die entscheidende Idee: Wenn die Micro-Unit Universalports verwendet, muss man wohl den TXD-Pin zuerst in Ausgaberichtung schalten, d.h. zur Initialisierung einen 1-Zustand ausgeben. Und so funktioniert es nun. Der Controller misst die Spannung an P4 und sendet das Ergebnis an den PC.
define PRINTER port[1]
define ADIN ad[6]
define MESS byte[1]
PRINTER =1
#LOOP
MESS = ADIN
print MESS
pause 100
goto LOOP
Das Ergebnis kann nun mit meinem Terminal.exe überprüft werden. Im Anzeigefenster sieht man die eintreffenden Messergebnisse. Weil die Eingangsspannung gleichzeitig an RI liegt, zeigt das Programm einen 1-Pegel.
Getestet wurde auch, welcher Strombedarf besteht und ob die Micro-Unit direkt von der RS232 aus mit Energie versorgt werden kann. Beim Programmieren braucht man anscheinend die vorgeschriebenen 5 V und ca. 15 mA. Man kann etwa 5 V am roten Anschluss anschließen oder ca. 9 V an gelb. Wenn die Unit bereits programmiert ist, läuft sie schon mit ca. 2,5 V an rot. Möglich ist auch die Versorgung über DTR und RTS vom PC aus, wobei man Dioden zum gelben Anschluss vorsehen sollte. Der Spannungsregler auf der Platine liefert dann 5 V. Vom Terminalprogramm aus lässt sich die Betriebsspannung einschalten und der Controller starten.
Nachtrag: Beschaltung von P3/weiß
Johannes Lehmke weist darauf hin, dass P3 nicht fest an Masse liegen sollte:
Die Beschaltung des "Port 3" entscheidet über die Funktion des "micro"! Entscheidend ist der Zustand dieses Ports zum Zeitpunkt der Inbetriebnahme:
1. Wenn der Port zu diesem Zeitpunkt mit einem Widerstand von
etwa 4,7
k an der Versorgungsspannung liegt, arbeitet der Controller das
eingespeicherte
Programm ab (Autostart).
2. Wenn der Port zu diesem Zeitpunkt an Masse liegt, geht er in den
Programmiermodus.
Wenn man das Programm geladen hat, startet das Programm automatisch.
Kurz nach der Inbetriebnahme kann man den Zustand von "Port 3" in beiden Betriebsmodi ohne Wirkung beliebig ändern. Bemerkenswert ist, dass ein "Reset" (notwendige Voraussetzung zum Programmieren) nur gelingt, wenn der Controller vollständig spannungslos geschaltet wird (siehe Kurzanleitung S. 8)!!
Nachtrag: Das Programmierboard für den R8C/13 verwenden
Mein Bruder Ulli verwendet C-Control Micro mit dem zugehörigen Programmier- und Experimentierboard für Anwendungen in Flugmodellen. Ein Controller ist leider abgeraucht, was eine gute Gelegenheit bietet, die Isolierhülle zu entfernen. Man sieht den sauber abgeschliffenen Controller im SMD-Gehäuse. Auf der Rückseite findet sich einen kleiner 5-V-Regler.
Als würdiger Ersatz für den defekten Controller kommt jetzt das R8C/13-Board aus Elektor 12/05 zum Einsatz, sozusagen als 16-Bit-Upgrade zu C-Control. Die bunten Kabel der defekten Unit wurden genau so an den R8C/13 gelötet, dass das C-Control-Programmierboard verwendet werden kann. Nur ein zusätzlicher 1-k-Widerstand muss noch auf den DIP-8-Sockel gesteckt werden, um den RXD-Eingang (blau) hochzuziehen. Der Mode-Eingang (weiß) passt genau zum C-Control-System. Man muss also nur den Download-Knopf beim Einschalten drücken, um ein neues Programm zu übertragen. Der Reset-Eingang des R8C muss nicht angeschlossen werden.
Zusätzlich zum Programmierinterface wurden die Ports P1.0 bis P1.3 angeschlossen. So kann man die LEDs, den Piezo-Schallwandler und das Poti auf dem Experimentierboard nutzen. Im Moment dudelt gerade das Übungsbeispiel Jingle_Bells aus dem Dezemberheft aus dem Mini-Lautsprecher. Es musste dazu so abgeändert werden, dass jetzt auch P1.2 (grün) angesteuert wird, was P6 der originalen Unit entspricht. Die Steckerleisten am R8C/13 wurden übrigens nicht bestückt. Die Idee war, dass alles schön flach bleiben soll, damit es auch noch im engsten Flugmodell zwischen Akku und Servo gequetscht werden kann