Hi! Folgendes Problem: Ich benutze den AVR Usb lab als STK500 und das Pollin Board über ISP. Wenn ich aus AVR Studio heraus den ATmega8 flashen möchte passiert das ohne Fehlermeldung oder sonstigem ungewöhnlichen Aktionen. Auch kann ich die Signaturen usw. auslesen. Sobald er mit dem Flashen abgeschlossen hat tut sich allerdings auf dem Board nichts! Mache ich nun das gleiche aus dem myAVR Programm heraus funktioniert alles ohne Probleme. Komisch ist nur, dass ich ganz am Anfang alles auf einem Steckbrett hatte und ich dort ohne weiteres von AVR Studio heraus flashen konnte. Programm aus AVR Studio heraus: #include "avrlab.h" #include "gpio.h" int main(void) { AvrLabInit(); DDRD = 0xFF; PORTD = 0xFF; while (1) { //or here AvrLabPoll(); //must be called at least every 40 ms //muss mindestens alle 40 ms aufgerufen werden } } Programm aus myAVR heraus: #define F_CPU 3686400 // Taktfrequenz des myAVR-Boards #include <avr\io.h> // AVR Register und main () { DDRD=0xFF; //PortD auf Ausgang konfigurieren do { PORTD=0xFF; // PortD High, LEDs on } while (true); // Mainloop } Vielen Dank euch schon mal für eure Hilfe!
Hast du nach dem Flashen schon den ISP-Stecker abgezogen? Wenn das was ändert, dann nachschauen wie man einstellt, dass das Usb lab nach dem Programmieren die RESET-Leitung loslässt.
Programm aus AVR Studio heraus: #include "avrlab.h" #include "gpio.h" int main(void) { AvrLabInit(); DDRD = 0xFF; PORTD = 0xFF; while (1) { AvrLabPoll(); //must be called at least every 40 ms //muss mindestens alle 40 ms aufgerufen werden } } das ist aber die firmware für das lab den den dort verbauten µC zu nutzen also kein target sondern nur AVR lab und steckbrett zudem es glaube en problem mit dem pollinboard gab da der dort verlötete STK200 programmer immer mit dranhängt kann sein das der was vermurkst
gast schrieb: > zudem es glaube en problem mit dem pollinboard gab da der dort verlötete > STK200 programmer immer mit dranhängt [Just for the records] Auf dem Pollinboard ist kein STK200-kompatibler Programmer verlötet. Es ist ein einfacher serieller Bitbang-Programmer Typ ponyser iN AVRDUDE drauf.
Stefan B. schrieb: > Hast du nach dem Flashen schon den ISP-Stecker abgezogen? Wenn das was > ändert, dann nachschauen wie man einstellt, dass das Usb lab nach dem > Programmieren die RESET-Leitung loslässt. Nein, hat nichts gebracht. Wie gesagt, gleiches Programm mit myAVR überspielt und es funktioniert optimal. @gast ich weiß, dass die AVRlabinit() z.B. für ne Steckbrettlösung ist - aber es funktioniert ohne diesen inits auch nicht. was tun... :-/ ISP Geschwindgkeit ist auf 115,2kHz und Oszillator ist auf 1MHz intern danke schon mal für eure Antworten
Martin S. schrieb: > Nein, hat nichts gebracht. > Wie gesagt, gleiches Programm mit myAVR überspielt und es funktioniert > optimal. Welches Programm? Das?
1 | #include "avrlab.h" |
2 | #include "gpio.h" |
3 | int main(void) |
4 | {
|
5 | AvrLabInit(); |
6 | DDRD = 0xFF; |
7 | PORTD = 0xFF; |
8 | while (1) |
9 | {
|
10 | // or here
|
11 | AvrLabPoll(); //must be called at least every 40 ms |
12 | //muss mindestens alle 40 ms aufgerufen werden
|
13 | }
|
14 | }
|
oder das?
1 | #define F_CPU 3686400 // Taktfrequenz des myAVR-Boards
|
2 | #include <avr\io.h> // AVR Register und |
3 | main () |
4 | {
|
5 | DDRD=0xFF; // PortD auf Ausgang konfigurieren |
6 | do
|
7 | {
|
8 | PORTD=0xFF; // PortD High, LEDs on |
9 | }
|
10 | while (true); // Mainloop |
11 | }
|
Für mich sehen beide Programme unterschiedlich aus. Die Unterschiede sind in den Zeilen > AvrLabInit(); > AvrLabPoll(); //must be called at least every 40 ms Diese Zeilen dienen beim Programm #1 dazu den Atmega8 auf dem USB AVR Lab (!!!) anzusprechen, wenn man das USB AVR Lab als Entwicklungsplattform benutzt. Wenn man das USB AVR Lab als Programmieradapter benutzt, so wie du indem du die STK500v2 aufgespielt hast und damit einen AVR auf einem angeschlossenen Pollin-Board programmierst, dann machen diese Funktionen keinen Sinn. Ich vermute der Hänger des Pollin-Boards ist darauf zurückzuführen, dass die AvrLabInit(); hängt. Die Sourcen finde ich im Moment nicht und in die EXE-Installation mag ich nicht reinschauen. Ist aber auch nicht nötig - wenn du einen AVR auf dem Pollin-Board programmieren willst, gehe auch im AVR Studio so vor wie im 2. Beispiel. Lasse die USB AVR Lab spezifischen Teile einfach weg.
Add: Die Sourcen kann man online einsehen: http://usbavrlab.svn.sourceforge.net/viewvc/usbavrlab/userfirmware/avrlab.c?revision=12&view=markup
die averinit und avrpoll sind für das lab .. da dieser µC direkt am usb hängt brauch das lab dise routinen ...
Danke für eure Antworten. Habe jetzt alles nochmal durchprobiert. Mit den inits für das lab und ohne die inits. Hab auch die Libary von dem avrlab neu eingespielt. Hilft alles nichts. Was ich nicht verstehe - laut Schaltplan vom Pollinboard hab ich über ISP eine 1:1 Verbindung wie wenn ich ein Steckbrett verwenden würde. Wäre es anders oder beschaltet dürfte es ja auch dem myAVR heraus nicht funktionieren. In myAVR benötige ich ja diese lab inits auch nicht. Wo ist da also der Unterschied? mfg
... hat keiner mehr eine Idee, was ich noch ausprobieren könnte, damit ich wieder aus dem AVR Studio heraus flashen kann? mfg
Martin S. schrieb: > Ich benutze den AVR Usb lab als STK500 und das Pollin Board über ISP. Hast du beachtet, dass die Firmware des USB AVR Lab ein STK500v2 kompatiblen Programmer darstellt und kein STK500-kompatibler Programmer? Hast du schon Kreuzversuche gemacht? Also eine mit myAVR erstellte HEX-Datei mit AVR Studio flashen oder eine mit AVR Studio erstellte HEX-Datei mit myAVR flashen? Vielleicht stimmt die Erstellung der Hex-Datei unter AVR Studio nicht und der Atmega8 kann mit der Datei nix anfangen...
mir ist noch immer nicht klar warum du , wenn das USB LAB flashen soll die avrlab.h einbindest in das projekt ???? dein zel hat nichts mehr mit dem AVR lab gemein .. die avrlab-h und die dazugehörige avrlabinit sind fiunktionen FÜR das lab selbst um eine eigene firmware für das lab zu erstellen und/oder miniprojekte mit dem steckbrett ohne anderen µC zu realisieren da du ja das pollinboard dranhast ist DORT dein ziel .. und der µC der was machen soll du nimmst das AVRlab tool und spielt die AVR ISP MKII oder die STK500V2 firmware auf im AVR studio auf connect und entsprechend auswählen in deinem folgendem programm hat das NICHTS mit dem lab zu tun nur das : #define F_CPU 3686400 #include <avr\io.h> int main (void) { DDRD=0xFF; // PortD auf Ausgang konfigurieren PORTD=0xFF; // PortD High, LEDs on while (1); // Mainloop { } return 0; }
mit diesem : #include "avrlab.h" #include "gpio.h" int main(void) { AvrLabInit(); while (1) { AvrLabPoll(); //must be called at least every 40 ms //muss mindestens alle 40 ms aufgerufen werden } } erstellt man für das lab eigene firmware und kann so die software USB schnitstelle nutzen sowie die freien I/Os es ist dann kein wieterer µC erforderlich
also: habe jetzt das: #define F_CPU 3686400 #include <avr\io.h> int main (void) { DDRD=0xFF; // PortD auf Ausgang konfigurieren PORTD=0xFF; // PortD High, LEDs on while (1); // Mainloop { } return 0; } einmal bei AVR Studio und einmal bei myAVR 1:1 reinkopiert. Aber nur aus dem myAVR heraus funktioniert es.
So,jetzt... Mich hats jetzt doch soweit genervt, dass ich alles was mit AVR, Treiber, usw... zu tun hatte deinstalliert habe. Alle Versionen neu heruntergeladen und installiert... jetzt gehts! Ich weiß absolut nicht was sich da überschlagen hat... Danke euch auf jeden Fall für euren Support!!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.