AS/400 :: Roboter :: Microcontroller :: Elektronik :: Downloads :: Links :: Seitenchronik

feedback :: home

Alle Neuigkeiten befinden sich hier : CMS



 Microcontroller
 

Nitron LCD Terminal

MON08 Programmier und Debugschaltungen

Nitron Oszillator trimmen

AB32 Board

HC08 Flash Programmieren

HCS08 Controller

HCS12 Controller

HC12 Welcome Kit

TBDML HCS12 BDM Tool

Zwobots Display

 

 

 

Microcontroller

   

Im Rahmen meiner Robotik Geschichten habe ich mich ein wenig mit Microcontrollern beschäftigt. Ich habe mich für die Motorola 68HC908 Controller entschlossen. Die MC68CH908 Familie bietet eine große Zahl unterschiedlich ausgestattete Controller. Angefangen habe ich mit dem 68HC908GP32. Dieser hat 32 kB Flash, 512 Byte Ram, acht 8 Bit AD/Eingänge, 5 Ausgänge die bis zu 25 mA treiben können, 2 Timer Kanäle und einiges mehr. Insgesamt stehen mit bei der 40 poligen DIP Version 29 I/O´s zur Verfügung. Der Controller ist In System Programmierbar und verfügt auch über eine In System Debugging Schnittstelle. Man muß also nicht wie bei anderen Controllern alles immer nur im Simulator ausprobieren, sondern kann auf der MCU debuggen. Als Software habe ich bisher den P&E Assembler zur Programmierung und dazu den P&E Debugger bzw Programmer benutzt. Zusätzlich habe ich mir die Codewarrior HC08 Special Edition von Metrowerks besorgt. Damit kann ich C-Programme bis zu einer Größe von 16 KB erzeugen und Assembler in unbegrenzter Größe. Es gibt auch eine 4K Version des Cosmic C-Compilers, allerdings ist hier eine Erweiterung der 4K mit Assembler nicht möglich. Inzwischen habe ich erste Gehversuche mit dem Metrowerks Compiler gemacht. Am anfang ist es etwas umständlich damit zu arbeiten, aber wenn man erstmal ein Projekt fehlerfrei erstellt hat ist es mit dem Rest doch ganz angenehm. Ich werde beizeiten hier etwas dazu schreiben. Eine kurze Einführung in die Assembler Programmierung gibt es im HCS08 Family Reference Manual in Kapitel 7Der Schaltplan des Controllerboards ist hier zu sehen.


Da ich keine Lust hatte, ständig irgendeinen MAX232 mit Kondensatoren zu versehen, habe ich das ganze auf eine kleine Extraplatine ausgelagert. So kann ich das ganze sowohl zum Programmieren/Debuggen, als auch für die RS232 Schnittstelle verwenden. Das Controllerboard ist als Bild auf der Roboterseite zu sehen. Auf dem Board habe ich einen Oszillator mit 19,6608 MHz eingesetzt, dadurch kann ich mit 19200 Baud Programmieren und die Fast 5 MHz Busfrequenz langen mir auch erstmal. Ansonsten kann ich den immer noch gegen 32 MHz austauschen. Ich habe das Board dann mal mit einem 20 MHz Oszillator versehen und es gab auch keine Probleme. Es sollte also auch mit 5, 10 oder 30 MHz möglich sein den Baustein zu Programmieren, ohne das es zu Übertragungsfehlern kommt. Diese Frequenzen sind im Handel leichter zu bekommen, als die krummen Frequenzen, die Motorola vorgibt. Das errechnen von Ausführungszeiten wird dadurch auch wesentlich einfacher. Alternativ kann man natürlich einen 32 kHz Quarz nehmen und die MCU über die PLL betreiben. Der Aufbau ist aber noch nicht ganz fertig und ich bin mir nicht sicher ob das auf Lochraster wirklich funktioniert oder ob man dafür nicht sorgfältig geätzte Platinen braucht.



Als nächstes konnte ich dann eins der Motorola Nitron Demo Kits ergattern. Davon hat Motorola 4000 Stück verschenkt, und ich bin einer der glücklichen, die eins abbekommen haben. Auf dem Board ist ein 8 beiniger 68HC908QT4 mit 4 K-Byte Flash, 128 Byte Ram 2 Timer Kanälen, 4 A/D Kanälen und internem Oszillator. Weiterhin ist das Board mit einem Potentiometer an einem der A/D Ports und einer LED bestückt. Das Board wird mit einem Chip ausgeliefert, in den der User Monitor bereits programmiert ist. Es eignet sich nicht um weitere MCU´s zu programmieren, weil dazu die erforderliche Hardware auf dem Board fehlt. Die MCU ist eingelötet und nicht gesockelt und somit wirklich nur zu Demozwecken zu gebrauchen

Das Demo Board von Motorola



Inzwischen habe ich auch ein Demoboard von Softecmico. Auf diesem Board ist ebenfalls ein 68HC908QT4, dieser ist jedoch gesockelt. Das Board verfügt über die komplette Programmierhardware inklusive Powerdown Feature. Hiermit lassen sich dann auch Fabrikneue QT4´s programmieren. Desweiteren hat das Board ein Experimentierfeld, auf dem ich einen 16 poligen Sockel für die größeren Nitrons aufgelötet habe. Außerdem kann man dort noch einen kompletten MON08 Stecker unterbringen. Das Board ist also deutlich brauchbarer als das vom Motorola, kostet aber auch ca. das vierfache.

Das Demoboard von Softecmico





Für eigene Experimente habe ich mir die 16 Polige Version 68HC908QY4 Bestellt. Bei dem 68HC908GP32 haben mich die zusätzlichen Bauteile auf der Platine nicht weiter gestört, für den 68HC908QY4 habe ich mir dann aber doch einen eigenständigen Programmer gebaut. Auf der Platine ist alles untergebracht um eine beliebige 68HC908 MCU in den Monitor Mode zu bringen. Zusätzlich ist auch noch ein 16 Poliger Sockel für die Nitrons vorhanden. Den Schaltplan gibt es hier zum ansehen. Durch die DIP Schalter können 4 Signale beliebig auf Low oder High gesetzt werden, um damit die Signale MOD0, MOD1, SSEL, und DIV4 passend zur MCU zu setzen. Wahlweise kann der Programmer eigenständig Nitrons Programmieren oder alle benötigten MON08 Signale liefern. Ebenso kann er den User Monitor beim Nitron bedienen Der Programmer kann die Stromversorgung liefern oder vom Targetboard mit Strom versorgt werden.

Mit dem Nitron und einem LM052L LC Display habe ich ein kleines LCD-Terminal gebaut



Ein 68HC908QY4CP




In der Zwischenzeit habe ich erstmal mein zweites GP32 Board gebaut. Das Board unterscheidet sich dadurch, das ich die ISP Signale auf einen Dipschalter geführt habe, damit mir die Signale auch noch einmal unverfälscht zur Verfügung stehen. Außerdem wird hier die MCU mit einem 32 kHz Quarz betrieben. Alle Sorgen die ich hatte, das die Oszillatorschaltung zu empfindlich wäre um sie auf Lochraster aufzubauen waren völlig unbegründet. Der Quarzoszillator dient nur zum Debuggen und Programmieren wenn der Controller bereits programmiert ist und kann durch einen Jumper abgeschaltet werden. Desweiteren habe ich den MAX232 doch auf das Board gebaut, weil ich dann beide RS232 Kanäle nutzen kann, um sowohl die ISP/ISD schnittstelle als auch die RS232 Schnittstelle gleichzeitig zu nutzen.

das Board Die Quarzschaltung


Der Schaltplan folgt demnächst.

Ich habe jetzt auch die ersten Gehversuche in SMD gemacht, nachdem ich ein paar MC68HC908QY1CDW in SMD Gehäuse erworben habe. Da ich immer noch keine Platinen ätzen will, habe ich mir eine Adapterplatine besorgt und den Chip darauf gelötet. Das löten des SOIC Bauteils ging sogar recht einfach. Man muß nur aufpassen, das man ganz wenig Lötzinn nimmt. Überschüssiges Lötzinn läßt sich aber mit Entlötlitze wieder entfernen. Eine Lupe und ein spitzer Lötkolben sind hier sehr hilfreich. Zum löten habe ich Lötzinn mit einem Durchmesser von 0,5 mm verwendet, dadurch wird es etwas einfacher das Zinn entsprechend knapp zu dosieren. Zusätzlich habe ich noch etwas Flußmittel hinzugegeben.



Entgegen der Spezifikation verfügen diese QY1 Controller statt nur über 1,5 KB Flash ebenfalls über 4 KB Flash, was ich durch testen herausgefunden habe. Möglicherweise ist das bei späteren Maskenrevisionen anders. Die A/D Kanäle funktionieren bei meinen MCs auch, das erweitert die möglichkeiten doch noch um einiges.

Die neue C-Control scheint jetzt ja auch auf einem HC08 zu basieren. Scheint ein GT16 für die M-Unit zu sein. Ohne Kenntnis der Security Bytes, kann man außer Basic wohl nicht viel mit der C-Control machen. Allerdings, wenn es sich nicht um eine zum Teil Maskenprogrammierte Variante handelt, dann sollte sich der gesamte Flash Speicher löschen und die C-Control sich als normaler HC08 nutzen lassen. Mehr dazu wie das geht steht hier MON08 Programmier und Debugschaltungen. So könnte das leben der ein oder anderen C-Control deutlich verlängert werden.

Als einziges deutsches Buch zu Thema MC68HC08 gibt es leider nur das Buch 68HC08 Mikrocontroller erfolgreich anwenden aus dem Franzis Verlag. Wer dieses Buch günstig erstehen kann, der kann sich sicherlich nicht beschweren, für den regulären Preis enthält es aber zu viele Ungereimtheiten und Fehler. Ein gutes Beispiel hierfür ist das Kapitel über die Timer, wo das Beispielprogramm dann die Timer gar nicht benutzt. Diese Ungereimtheiten ziehen sich leider von vorne bis hinten durch das Buch, so das man es nicht wirklich empfehlen kann. Aufgrund des Erscheinungsdatums des Buches ist die Software auf der CD inzwischen auch hoffnungslos veraltet, und sowieso durch neuere Versionen die man aus dem Internet beziehen kann zu ersetzten.

Motorola hat die Halbleitersparte jetzt ausgegliedert und in Freescale umbenannt und als Neuerung kann man jetzt auch Samples bestellen. Dadurch wird es jetzt wesentlich einfacher auch mal an die HC08 Varianten zu kommen, die beim Händler nicht zu beschaffen oder unverschämt teuer sind. Ich habe mir zu Testzwecken zwei MC68HC908AB32 und zwei MC68HC908JB16 bestellt. Die Controller wurde innerhalb weniger Tage geliefert. Der AB32 hat mir wegen der 51 I/O Pins und den 2 Timern mit jeweils 4 Kanälen zugesagt. Allerdings gibt es die nur im QFP64 Gehäuse. Ich benutze dafür eine Adapterplatine löten. Leider kosten die Adapterplatinen aber auch unverschämt viel Geld. Die JB16 haben eine USB Schnittstelle auf dem Chip, mal sehen was ich daraus bauen werde. Es gibt neue Nitron Chips. Den MC68HC908QB4 und den MC68HC908QB8 aus der neuen QB Serie, außerdem gibt es jetzt auch einen MC68HC808QY8 der 8 KB Flash und 256 Byte RAM hat. Die beiden QBs haben es allerdings in sich. Der 68HC908QB4 hat 4 KB Flash und 128 Byte RAM, der 68HC908QB8 hat 8 KB Flasch und 256 Byte RAM. Ansonsten bringen beide in einem 16 poligem Gehäuse 10 10-Bit AD Kanäle, 4 Timer Kanäle, SPI und eine ESCI unter. Die ESCI kann sowohl als RS232 als auch als LIN Schnittstelle genutzt werden. Die QBs sind pinkompatibel mit den QYs, soweit man nur die Funktionen aus der QY Reihe benutzt. Leider kann man den User Monitor nicht so einfach mit der QB Serie nutzen. Aufgrund der erweiterten Peripherie sind hier einige Interruptverkoren mehr belegt. Dieser Speicherplatz wird aber unter anderem bei dem User Monitor für QT/QY benutzt. Wenn man hier auf ein paar Interrupts verzichten kann, dann sollte die Nutzung möglich sein. Ein anderes Problem ist, das die ROM Routinen an anderen Adressen liegen und Freescale diese noch nicht veröffentlicht hat.

Jetzt habe ich auch ein Board mit einem HCS12 Controller, mit dem ich mich dann noch näher beschäftigen werde.

Desweiteren habe ich ein Demoboard mit einem HCS08 Controller erworben.

 

 

 

     

 

   © 2005 by Eckhard Gosch •  eckhard@eckhard-gosch.de