siehe auch: (evtl. Links zu anderen verwandten Seiten einfügen...)

PonyProg Allgemein

Sollte es beim Einspielen des Bootloader Probleme mit AvrDude (bzw. dem MikroKopter-Tool) geben, kann alternativ PonyProg benutzt werden.

/!\ Achtung: die aktuellere V2.7a geht nicht! Der ATMEGA644 ist nicht mehr in der Datenbank.

Nach der Installation von PonyProg muss man es ggf. einmal kalibrieren. Das hat noch nichts mit einer angeschlossenen Hardware zu tun.

(Wähle im Menü: Setup - Calibration )

Man sollte den Rechner zum Programmieren/Kalibrieren vorher einmal neu starten und während des Prozesses auch keine weitere Software laufen lassen, bzw. starten.

Der Programmiervorgang ist 'zeitkritisch' und 'ungewollte' Unterbrechungen können einen AVR-Prozessor schon mal unbrauchbar machen.

SerCon als ISP-Interface

Der SerCon wird unter Interface-Setup so eingestellt:

http://mikrocontroller.cco-ev.de/images/kopter/Sercon_kl.jpg http://mikrocontroller.cco-ev.de/images/kopter/pony_ser.gif

DT-006 als Interface

Alternativ kann z.B. auch unser ISP-Adapter zur Programmierung genutzt werden.

Dieser erfordert eine parallele Schnittstelle am PC.

ISP_STK500.jpg pony_dt006.gif

Bild: Schaltplan des parallelen ISP-Adapters und der entsprechenden Einstellung unter Ponyprog

FlightCtrl: ATMEGA644 programmieren

  1. SerCon mit der FlightCtrl Platine verbinden. (ISP2 - 6pol) Rotes Kabel jeweils auf Pin 1.

  2. Bl-Ctrl Platine, falls noch nicht geschehen, mit Spannung versorgen. Die grüne LED auf dem Konverter muss nun dauerhaft leuchten.
  3. JUMPER auf dem SerCon stecken !

  4. Controller: AVR micro --> ATMEGA644 einstellen

  5. Bootloader für FlightCtrl auswählen

  6. Fusebits (Konfigurationsbits) des Controllers einstellen (Siehe folgendes Bild) und mit „Write“ schreiben
  7. Controller (Device) programmieren


Fuse-Setting für den Bootloader der Flight-Ctrl:

http://mikrocontroller.cco-ev.de/images/kopter/Atemega644Fusebits.png

{i} Die aktuelle Firmware wird dann mit AvrDude entweder in einem Terminal oder mit der grafischen Oberfläche des MikroKopter-Tools in die FlightCtrl eingespielt.




BL-Ctrl: MEGA8 programmieren

  1. SerCon mit der Bl-Ctrl Platine verbinden. (ISP1 - 10pol) Rotes Kabel jeweils auf Pin 1.

  2. Bl-Ctrl Platine, falls noch nicht geschehen, mit Spannung versorgen. Die grüne LED auf dem Konverter muss nun dauerhaft leuchten.
  3. JUMPER auf dem SerCon stecken !

  4. PonyProg entsprechend der unten aufgeführter Anleitung benutzen.

pony_bedienung.gif

Bild: Schritte zum Programmieren des Controllers:

  1. Controller: AVR micro --> ATMEGA8 einstellen

  2. Bootloader für BL-Ctrl auswählen
  3. Fusebits (Konfigurationsbits) des Controllers einstellen (Siehe folgendes Bild) und mit „Write“ schreiben
  4. Controller (Device) programmieren

Hinweis Die Einstellungen hier müssen sorgfältig verglichen werden! Der Regler muss zum Programmieren mit Spannung versorgt sein. Die Fusebits müssen nur einmal programmiert werden. Wenn ein neues Programm eingespielt wird, müssen sie nicht jedes mal neu gesetzt werden.

Fuses_Mega8_8MHZ_Intern_MIT_Bootloader.gif

Bild: Ponyprogeinstellung der Fusebits bei Verwendung des internen 8MHz-Oszillators und der Brown-Out-Detection (Unterspannungs-Watchdog).

Schritt 1: Controller einstellen Schritt 2: Device File öffnen Schritt Schritt 3: Fuses programmieren 4: Device programmieren

aktuelle Firmware wird dann mit AvrDude entweder in einem Terminal oder mit der grafischen Oberfläche des MikroKopter-Tools in die FlightCtrl eingespielt.

Problembehebung: Write failed

Schlägt die Programmierung mit einem "Write failed" fehl, so kann es durch Anpassung einiger Einstellungen funktionieren. In der Pony-Prog-Ini-Datei folgende Werte ändern:

  • ATMegaPageWriteDelay=100
  • AVRByteWriteDelay=50
  • AVREraseDelay=100

(Bei PonyProg 2.06g gibt es 2 ini-Dateien: PONYPROG2000.INI und PonyProg2000_26g.ini. Im Zweifelsfall in beiden Dateien ändern).

Problembehebung: aus dem Prozessor ausgesperrt

Ist nach falschem Setzen der Fusebits (oder nach einem fehlgeschlagenem Programmieren mit avrdude) kein weiterer Zugriff auf den Prozessor mehr möglich, so kann dieser evt. mit einem Oszillator wiederbelebt werden. Siehe dazu den Beitrag AVRWiederbelebung.

= /!\ ToDo: hier gibt es noch etwas zu tun



  • (Hier kann ein Link auf eine Kategorie eingefügt werden)