NuTiny Board N76E003           


Elektronik-Labor  Projekte  Nuvoton


Letzte Woche kam das Starterkit von Nuvonton an. Der Keil C-Compiler und die Beispielprojekte waren schon installiert (siehe Labortagebuch: Mikrocontroller von Nuvoton), sodass ich gleich beginnen konnte, die wichtigsten Eigenschaften des N76E003 zu testen. Die Platine trägt links den Zielcontroller und rechts das Programmier- und Debug-Interface Nu-Link-Me. Man kann beide Teile später trennen und hat dann ein vollständiges Programmiergerät für die Controllerfamilie. Die fünf Leitungen zum Zielcontroller sind oben zusätzlich herausgeführt. Außer der Betriebsspannung und Reset werden nur zwei Ports angeschlossen, CLK und Data. Rechts daneben gibt es den Mini-Dipschalter SW3. Wenn man alle vier Schalter auf ON stellt, hat man eine virtuelle COM-Schnittstelle für TX und RX des Controllers.

Die wichtigsten Eigenschaften des 8081-kompatiblen N76E003: Er hat 18 kB Flash, von denen man 2 kB oder mehr als Boot-Bereich verwenden kann. Außerdem können beliebige Bereiche des Flash als Datenspeicher genutzt werden. Ein Datenlogger für bis zu 16 kB ist denkbar. Die Ports sind wahlweise CMOS-Ein- oder Ausgänge, oder auch quasi-bidirektionale Ports wie beim originalen 8051. Es gibt dann noch weitere Eigenschaften, wie z.B. Schmitt-Trigger-Eingänge, die zusätzlich eingeschaltet werden können. Der Controller hat einen genauen RC-Oszillator mit 16 MHz und kann wahlweise mit oder ohne Quarz betrieben werden. Der AD-Wandler hat bis zu acht Eingänge und eine Auflösung von 12 Bit. Es gibt eine interne Referenz mit 1,2 V und dazu eine bei der Produktion eingespeicherte Konstante, die die genaue Spannung nennt.





Das Beispielprojekt Output\ADC_Bandgap_VDD zeigt die Eigenschaften des AD-Wandlers und der Bandgap-Referenz. Hier wird durch Messung der Referenz die genaue Betriebsspannung VDD bestimmt. Das Beispiel zeigt die im ROM gespeicherte genaue Bandgap-Spannung von 1,2315 V und die damit  gemessene VCDD von 3,048 V. Mein Digitalmultimeter behauptet, es wären  3,013 V. Die Abweichung beträgt 1%. 



Das Beispiel GIOP behandelt die Ports. Man sieht ein Blinken an der roten LED am Port P1.2 und kann die Reaktion an den anderen Ports messen.  Die Eigenschaften aller Ports werden mit Set_All_GPIO_Quasi_Mode; // Define in Function_define.h eingestellt. In Function_Definde.h findet man, dass tatsächlich jeweils zwei Register pro Port betroffen sind:  P0M1=0;P0M2=0;P1M1=0;P1M2=0;P3M1=0;P3M2=0; Diese Zeile habe ich direkt eingesetzt, was auch funktioniert, es blinkt. Ganz ohne geht es nicht, weil nach einem Reset alle Port hochohmige CMOS-Eingänge sind.



Der Compiler erzeugt ein Hex-File im Output-Verzeichnis. Interessant ist nun, ob man ein Hexfile auch ohne die IDE in den Controller bringen kann. Das Ziel ist nämlich, dass für richtige Anwendungen ein anderer Compiler wie SDCC ohne Beschränkung der Programmgröße eingesetzt wird. Nuvoton stellt ein Programmier-Tool bereit, das auch mit dem Nu-Link-Me arbeitet. Wichtig ist, dass die 8051 T1 Serie gewählt wird. Beim ersten Anschluss möchte das Tool die Firmware updaten, was auch ohne Probleme funktioniert.



Mit einem Klick auf Connect findet der Brenner von allein den verwendeten Chip. Dann muss man (eigentlich nur für das AROM) die Hex-Datei angeben und untern AROM anklicken. Mit Start wird der Controller gebrannt. Wenn man im Laufe der Arbeit das Programm ändert und neu kompiliert, muss man nur auf Refresh klicken, damit es neu geladen wird.



Soweit funktioniert alles. Dem Einsatz anderer Compiler steht also nichts mehr im Weg. Mit Keil-µVision sollen dann die Details untersucht werden, damit klar ist, welche Register bei einer Aufgabe mitspielen. Die eigentliche Arbeit soll aber mit SDC oder vielleicht mit Bascom-51 gemacht werden.




Elektronik-Labor  Projekte Nuvoton