Hallo Osser,
wie angekündigt habe ich das Update von AF ein wenig weiter getestet.
Ziel: ISP-Programmierung mit Hilfe von AVRDude.
Dazu habe ich folgende Hardware verwendet:
* Laptop IBM Thinkpad R40 mit WinXP,
* einen ATmel Mega16 auf dem Board RN-Control 1.4 und
* einen parallelen Programmer (STK200 kompatibel).
(Infos unter http://www.shop.robotikhardware.de/s...alog/index.php)
Neben AsuroFlash incl. Compiler sind folgende Dateien notwendig:
avrdude.exe
avrdude.conf
avrdude.pdf
giveio.sys
install_giveio.bat
remove_giveio.bat
status_giveio.bat
(Diese Dateien befinden sich in den Compilerverzeichnissen bin und doc\avrdude.Ich habe mir sie noch einmal in einen gemeinsamen Unterordner AVRDude von AF kopiert. Daraus resultiert später die Konfiguration!)
Und so geht's:
1. Vorbereitungen:
avrdude.exe greift direkt auf die Ports des Rechners zu. Betriebssysteme ab WinXP lassen dies aber nicht zu. Deshalb muss zusätzlich der Treiber giveio.sys installiert werden. Dazu sind Administratorrechte erforderlich! Mit Hilfe der Batch-Datei install_giveio.bat wird dies automatisch erledigt. Da sich das Fenster, dass durch diese Datei geöffnet wird, sofort wieder schließt, sollte zunächst am Ende der Batch-Datei der Befehl pause eingefügt werden, um den Erfolg der Installation prüfen zu können.
Mit status_giveio.bat lässt sich der Erfolg der Aktion ebenfalls prüfen. Mit remove_giveio.bat kann der Treiber gestoppt und deinstalliert werden.
Die Installation musste ich auf meinem Rechner nur einmalig durchführen. Bei jedem Neustart wird der Treiber nun automatisch geladen. Dies lasst sich bei den Systemeinstellungen kontrollieren und ändern. Bei Bedarf kann ich das näher ausführen.
2. Konfiguration von AF:
im Konfigurationsmenue Extern flash tool auswählen
Program path: AVRDude\avrdude.exe
Commandline parameters: -p m16 -P lpt1 -c stk200 -e -U flash:w:"%AF_HEXFILE%":a
und letztlich im makefile den neuen Controller einstellen
# MCU name
MCU = atmega16
3. Programmieren:
Mein Testprogramm bringt einfach eine LED auf dem Controllerboard zum Leuchten:
Code:
#include <avr/io.h>
int main(void) {
DDRC = DDRC |(1<<0);
PORTC = PORTC &~(1<<0);
while (1);
return 0;
}
4. Compilieren:
5. Flashen:...
... und fertig!
Das Flashen funktioniert bei mir ausgezeichnet. AF arbeitet genau so, wie ich mir das vorgestellt habe. Herzlichen Dank, Osser.
Das einzige Problem trat bei meiner Hardware auf. Der LPT1-Port war falsch konfiguriert und wurde zunächst von AVRDude nicht erkannt. BIOS und WinXP haben unterschiedliche Basisadressen angezeigt (richtig ist für meine Konfiguration: 37
. Außerdem musste ich den Betriebsmodus auf PC/AT umstellen. Warum auch immer!? Hier hilft zur Not nur rumprobieren.
Der serielle Programmer, den ich weiter oben beschrieben habe, sollte nun ebenfalls mit den dort beschriebenen Einstellungen funktionieren.
In der Datei avrdude.pdf findet sich übrigens eine gut verständliche Anleitung von AVRDude, in der auch die Schalter im Detail beschrieben werden.
Viele Grüße
Ulli
Lesezeichen