kramann.info
© Guido Kramann

Login: Passwort:










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 Projekt-Käfer)
  • 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:
  1. ...das Programmiergerät mit PC und Mikrocontroller-Platine zu verbinden,
  2. an die Mikrocontroller-Platine eine Versorgungsspannung von 5Volt anzuschließen,
  3. Ponyprog am PC zu starten,
  4. 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

Vorbereitung der Hardware

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 )
.hex-File öffnen

Bild 7.1.4.2-2: Nach Start von Ponyprog: Öffnen der zu übertragenden .hex-Datei.

.hex-File öffnen 2

Bild 7.1.4.2-3: Öffnen der zu übertragenden .hex-Datei (Fortsetzung).

Übertragen

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.
Fusebits

Bild 7.1.4.2-5: Schreiben und Lesen der Fusebits mit Ponyprog unter Command ->Security and Configuration Bits.

Fusebits werkseitig

Bild 7.1.4.2-6: Nach Betätigen von "READ" wird die obige Konfiguration bei einem bisher unbenutzten Mikrocontroller angezeigt.

Fusebits soll

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.