7.1.4.2 Test der Programmierschnittstelle
- Im später folgenden Kapitel "Programmierung" wird noch genauer darauf eingegangen, wie Programme erstellt werden können.
- Hier aber soll es genügen, ein bereits compiliertes Programm auf den Mikrocontroller zu übertragen.
- Die zu übertragende Datei hat die Endung .hex und sie wird über den Menüpunkt "build" im AVR-Studio generiert.
- Im Rahmen dieses Workshops wird für jedes Programmierbeispiel ein gezipter AVR-Studio-Projektordner zum Herunterladen bereit gestellt.
- AVR-Studio wird mit dem jeweiligen Projekt gestartet, wenn man in dem Projektordner die Datei muecb.aps doppelklickt (Marienkäfer-Icon
)
- Auf der gleichen Ebene im Projektordner, befindet sich auch das fertig compilierte Programm mit der Endung .hex, hier heißt es muecb.hex
- Um das Programmiergerät für die Parallelschnittstelle verwenden zu können, ist es notwendig:
|
- ...das Programmiergerät mit PC und Mikrocontroller-Platine zu verbinden,
- an die Mikrocontroller-Platine eine Versorgungsspannung von 5Volt anzuschließen,
- Ponyprog am PC zu starten,
- Nach der Konfiguration von Ponyprog (vergl. Kapitel 7.1.2.3 Ponyprog) die Datei muecb.hex in Ponyprog zu öffnen und mit Ponyprog in den Programmspeicher des Mikrocontrollers zu "flashen".
|
Schritt 1 - Verbinden von Programmiergerät, PC und Mikrocontroller-Platine
Bild 7.1.4.2-1: Vorbereitung der Hardware für die Übertragung des .hex-Files auf den Mikrocontroller
Schritt 2 & 3 - Übertragen der Datei muecb.hex
Hier kann das erste Projekt ("Blinkende LED") heruntergeladen werden ( 001protoneu_ledblink.zip )
Bild 7.1.4.2-2: Nach Start von Ponyprog: Öffnen der zu übertragenden .hex-Datei.
Bild 7.1.4.2-3: Öffnen der zu übertragenden .hex-Datei (Fortsetzung).
Bild 7.1.4.2-4: Übertragen der Datei durch Anklicken des umkreisten Icons.
Konfiguration des Mikrocontrollers
- Nach dem Einbau eines vorher unbenutzten Mikrocontrollers, ist werksseitig als Taktgeber der interne RC-Oszillator mit einer Frequenz von einem Megahertz (1MHz) aktiviert.
- Das bedeutet, pro Sekunde werden eine Millionen Maschinenbefehle im Mikrocontroller abgearbeitet.
- Der eingebaute Quarz hat eine wesentlich höhere Frequenz, nämlich 9,216MHz.
- Um auf diesen als Taktgeber umzuschalten, müssen die so genannten Fuse-Bits des Mikrocontrollers umgesetzt werden.
- Des weiteren ist werksseitig eine zweite Programmierschnittstelle (JTag) aktiviert, was einie Bits von Port C (Pin/Beinchen 22 bis 29) blockiert.
- Auch um die JTag-Schnittstelle zu deaktivieren muß ein bestimmtes Fuse-Bit gesetzt werden.
- Dies geht mit Hilfe des USB-Programmierers AVRISP mkII recht gut, da hier die möglichen Konfigurationsarten aufgelistet sind und bei entsprechender Auswahl gleich die Gruppe der notwendigen Fuse-Bits gesetzt wird.
- Im Gegensatz dazu muß man über Ponyprog die Fuse-Bits einzeln setzen und sie werden zudem invertiert dargestellt.
- Deshalb ist zur Orientierung im Folgenden zuerst ein Screenshot der werkseitigen Konfiguration, wie sie in Ponyprog dargestellt wird zu sehen und dann die notwendige Konfiguration, wie sie für das Vehikel eingestellt werden muß.
- Übertragen Sie einfach die Einstellungen nach dem zweiten Screenshot auf Ihr Modul.
|
Bild 7.1.4.2-5: Schreiben und Lesen der Fusebits mit Ponyprog unter Command ->Security and Configuration Bits.
Bild 7.1.4.2-6: Nach Betätigen von "READ" wird die obige Konfiguration bei einem bisher unbenutzten Mikrocontroller angezeigt.
Bild 7.1.4.2-7: Die in diesem Bild dargestellte Konfiguration sollten Sie auf den Mikrocontroller mit "WRITE" übertragen.
Test
- Nun sollte die LED sofort blinken.
|
Gesonderte Auflistung der Befehle des Anwendungsprogramms aus muecb.c in 001protoneu_ledblink.zip
//****************************** Anwenderprogramme **************************************
//Programmbeschreibung: LED blinkt.
while(true)
{
for(pause=0;pause<10000000;pause++);
lampe.aus();
for(pause=0;pause<10000000;pause++);
lampe.ein();
}
//****************************** ENDE Anwenderprogramme *********************************
Code 7.1.4.2-1: Anwendungsprogramm aus muecb.c in 001protoneu_ledblink.zip
Aufgaben
- Ändern Sie das Programm so, dass die LED doppelt so schnell blinkt.
- Schätzen Sie anhand des Programms ab, wieviele elementare Befehle der Mirkocontroller pro Sekunde abarbeiten kann.
|