Pony-Prog Tutorial

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Hex-Dateien mittels PonyProg zum AVR-Controller übertragen

Diese Anleitung beschreibt, wie vom Assembler (z.B. AVR-Studio) oder C-Compiler (z.B. avr-gcc/winavr) erzeugte HEX-Dateien auf einen ATMEL AVR-Mikrocontroller übertragen werden. Die vorgestellte Lösung basiert auf freier oder kostenloser Software und low-cost-Hardware. Anfängern mit nicht allzu eingeschränkten finanziellen Möglichkeiten wird angeraten, sich das ATMEL STK500 Enwicklungskit zuzulegen. Diese Kit wird von ATMEL offiziell unterstützt und ist leichter zu handhaben. Bezugsquellen für das STK500 z.B.

Benötigte Ausstattung

diese Anleitung wurde PonyProg 2000 Version 2.06 beta genutzt.

oder selbst bauen nach:

  • AVR-Controller-Board mit ISP-Anschluss (siehe weiter unten)

Um schon in der Anfangsphase Probleme zu vermeiden, sollte der Controller beim Einsatz eines STK200-Programmieres mit 5 Volt betrieben werden. Geringere Spannungen werden nicht von allen Programmieradaptern unterstützt. Höhere Spannungen zerstören mglw. den Controller oder den Parallelport des PCs.

PonyProg installieren und einrichten

Pronyprog kommt mit einem Installationsprogramm, einfach starten. Einstellung der Programmierhardware (STK200 ISP DONGLE) in Ponyprog unter Setup/Inteface-Setup nach folgender Abbildung:

Pony1.jpg

Im Anschluss PonyProg die Zeitschleifen kalibieren lassen (Menüpunkt Setup/Calibration).

PonyProg unterstützt die automatische Erkennung von AVR-Controllern, um Probleme zu vermeiden, sollte man den Controllertyp jedoch manuell einstellen. Für einen ATmega16 z.B. so:

Pony2.jpg

Hardwareverbindung herstellen

Auf der Controller-Platine (Controllerboard) ist ein Anschluss für den Programmieradapter erforderlich. Überlicherweise wird dazu eine 10-polige "Pfostenwanne" (5 Pole in 2 Reihen, "PSW10G" bei Reichelt) genutzt (siehe Abbildung). Dieser Anschluss ist auch kompatibel zum ATMEL AVRISP Programmiergerät.

Datei:Psw10g.jpg

Die Anschlussbelegung (entnommen aus der AVRISP Online-Benutzeranleitung):

Isp conn.jpg

SignalPinsE/A (aus "Sicht" des Programmieradapters)Beschreibung
VTG2(Eingang)Stomversorgung des Programmiergeräts, mit +5V Versorgung des Controllerboards verbinden
GND3,4,6,8,10(Eingang)Masse, Ground, mit Ground des Controllerboards verbinden
MOSI1AusgangDatenleitung vom Programmeradapter zum Controller, mit MOSI des AVR verbinden
MISO9EingangDatenleitung vom Controller zum Programmieradapter, mit MISO des AVR verbinden
SCK7AusgangProgrammier-Takt-Leitung (PA->AVR), mit SCK des AVR verbinden
RESET5AusgangResetleitung, wird durch das Programmiergerät bei der Programmierung auf "LOW gezogen", mit RESET des AVR verbinden

Sogennante "value-added" Programmieradapter unterstützen an PIN 3 den Anschluss einer LED, mit der ein Zugriff auf den Controller durch den Programmieradapter angezeigt werden kann. Weiters dazu in den Beschreibungen der Programmierhardware auf den o.g. Seiten.

Angangs sollte vermieden werden, die Anschlusse MOSI, MISO und SCK des Controllers als allgemeine Ein- und Ausgabeanschlüsse oder zur Verbindung mit SPI-Pherpherie zu nutzen, also diese Leitungen ausschliesslich mit dem Programmieranschluss (Pfostenwanne) verbinden.

Zur Programmierung mittels ISP muss der Controller mit einer "Taktquelle" ausgestattet sein, modernere AVRs sind mit einem internen Oszillator (1 MHz Takt) ausgestattet, der ab Werk aktiviert ist, bei diesen sind keine zusätzliche externen Bauteile erforderlich. An AVRs ohne internen Oszillator (z.B. die veraltete "AT90S"-Serie) muss zur ISP-Programmierung ein externen Taktgeber (z.B. Quarz mit Kondensatoren) angeschlossen werden.

Der ISP Anschluss wird zur Programmierung mit dem Programmieradapter verbunden, der PC-seitige Anschluss erfolgt an die Druckerschnittstelle (Parallelport, LPT). Es empfiehlt sich, die Stomversorgung des Controllerboards beim an- und abstecken abzuschalten.

Programmierung des Controllers

Schritt 1: Hex-Datei in Ponyprog laden

In PonyProg Menü: File/Open-Device-File... wählen, im Dialog die HEX-Datei auswählen und mit [OK] in Ponyprog laden.

Schritt 2: Daten zum Controller übertragen

In Ponyprog Menü: Command/Wite All wählen. Ponyprog übertragt die Daten aus der HEX-Datei dann auf den Controller ("flashen") und verfiziert im Anschluss, ob dieser Schreibvorgang fehlerfrei durchgeführt wurde, indem der Inhalt des Controller-Flash-Speichers gelesen und mit dem Inhalt der HEX-Datei verglichen wird. Der Inhalt des EEPROM wird bei der Programmierung gelöscht, d.h. alle Speicherstellen des EEPROM-Speichers im AVR werden auf $FF gesetzt.

Martin Thomas, 29.10.2003