Hi, mein Name ist Uwe und ich bin bei meinem 4. Anlauf für die Programmierung von ATMEGA & Co. Ausstattung: Win 7, jeweils: neu aufgespielte letzte Versionen von ATMEL Studio7, AVRDUDE, libusb ATmega8-16PU, USBasp von Technology (10-poliger Stecker), Version 2.0 Atmel Studio7 läuft, USBasp in Win7 fehlerfrei erkannt (fischl sei Dank) und unter External Tools eingerichtet, AVRDUDE lässt sich darüber aufrufen Der ATmega8 steckt auf dem Steckbrett in der auf mikrocontroller.net einfachen ISP-Version mit 4MHz-Quarz und 20pF C's. Ablauf: USBasp in Atmel Studio 7 aufrufen (Tools - USBasp) Fenster USBasp wird geöffnet: Arguments: -e -p ATmega8 -c USBasp -P usb -B 10 -U flash:w:"$(ProjectDir)Debug\$(ItemFilename).hex":a Command Line: F:\AVR Dude\avrdude.exe -e -p ATmega8 -c USBasp -P usb -B 10 -U flash:w:"Debug\.hex":a Da ich mich hier schon ein bisschen eingelesen habe, habe ich etwas 'rumgespielt, z. B. -B 10, weil es daran gelegen haben könnte (war es aber nicht). Folgendes passiert: der Programmer lässt seine Prog-LED kurz aufleuchten. Auf meinem Steckbrett zeigt mir eine andere LED an, Spannung (3,3V) wird kurz aufgelegt. Aber leider gibt es immer diese Fehlermeldung (die früher zwar an anderer Stelle schon beschrieben wurde, aber ohne Lösung für meinen Fall). AVRdude Meldung: avrdude.exe: set SCK frequency to 93750 Hz avrdude.exe: error: program enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you. Meine Diagnose: Software ok, AVRdude ok, USBasp ok (hard- und softwaremäßig) Verkabelung geprüft Steckerbelegung geprüft ATmega8 getauscht (beide neu) USBasp getausche (beide neu) Fehler ist reproduzierbar. 2 nagelneue ATmegas sind doch wohl nicht defekt? Vielleicht hat jemand dazu eine Idee - eines noch vorab: ich habe noch keine Dateien oder Projekte, weil ich über diese Hardwareproblematik noch nicht hinausgekommen bin. Vielen Dank für Eure Hilfe!
Kannst Du mal einen Schaltplan skizzieren, wie genau Du es angeschlossen hast?
Mach mal LED's and die Signal-Leitungen (MISO, MOSI, SCK und RESET). Die RESET Led soll bei Low Pegel leuchten, die anderen sollen bei High Pegel leuchten. Dann sag mal Bescheid, welche Flackern und welche dunkel bleiben. Wenn du mit der Bitrate noch weiter runter gehst, kannst du es besser sehen.
Uwe G. schrieb: > Auf meinem Steckbrett zeigt mir eine andere LED an, > Spannung (3,3V) wird kurz aufgelegt. Wenn ich sowas lese dann wird's mir ganz schwummrig. Versorge deinen Controller anständig mit einer Versorgungs- spannung möglichst aus einem Spannungsregler, beschalte den Controller mit einem Abblock-Kondensator wie es der Hersteller vorsieht und achte auf einen Pullup-Widerstand am Reset-Pin.
3,3V ist nicht geeignet. Die allermeisten USBASP arbeiten immer mit 5V Signalen. Die Jumper zum Einstellen der Spannung ist Fake, er steuern nur die Versorgungsspannung, die er am ISP Stecker heraus gibt. Wobei ein anständiger Programmieradapter das gar nicht tun sollte (also weg mit dem Jumper). Das Target sollte hingegen eine eigene Spannungsversorgung haben. Zur Not kannst du 180 Ohm Widerstände in die Signal Leitungen (aber nicht GND) einschleifen, dann geht es meistens auch mit 3,3V Targets.
Ich habe es exakt so aufgebaut wie hier beschrieben: https://www.mikrocontroller.net/articles/Datei:Mega8_Tutorial.png mit dem Quarz, angeschaltet wie hier: https://www.mikrocontroller.net/articles/Datei:Tutorial-quarz-schaltplan.png Die LEDs bekomme ich nur zum Leuchten, wenn sie (über R) wie folgt liegen: 2 SCK gegen + (leuchtet) 3 RESET gegen + (leuchtet) 4 MOSI: gegen - (leuchtet) 5 MISO: gegen + (leuchtet) mit Programmierabfrage alle blinken (bei -B 2000 ist SCK to 500Hz)
Wenn alle LEDs Blinken, dann funktioniert die Kommunikation elektrisch gesehen. Mit einem Oszilloskop könnte man noch genauer hinschauen. Mir hatte aber bisher so ein schneller Test mit LEDs genügt. Du könntest noch kontrollieren, ob die Leitung MISO bis zum Programmieradapter verbunden ist. Diese Flachkabel brechen gerne mal.
Nachtrag Sehe ich ein: mit 5V externer Spannung und Stütz-C leuchten die LED und das flackern ist nur so eben zu sehen. Fehlermeldung ist noch da.
Uwe G. schrieb: > Ich habe es exakt so aufgebaut wie hier beschrieben: > https://www.mikrocontroller.net/articles/Datei:Mega8_Tutorial.png Das kann gar nicht sein denn da ist kein Aufbau gezeigt sondern "nur" ein Schaltplan. Das mag für dich nach Korinthenkacker klingen, aber der Aufbau ist nochmal was ganz anderes als eine Schaltung. Da kann noch viel Mist passieren. Insbesondere wenn man das Reizwort "Steckbrett" lesen muss. Als darfst auch ruhig mal deinen Aufbau zeigen. Wenn du ihn nicht zeigen willst dann wird das schon seine Gründe haben ....
Ich kann ein Foto vom Steckbrett machen, aber dann kommt eh nur ein Kommentar wie: "Wie unordentlich". Ich hatte die Verdrahtung mehrfach überprüft. Das Steckbrett ist sowieso nur zum Testen. Aber dort sollte es wenigstens schon mal funktionieren (wie andere Schaltungen bei mir auch funktioniert haben). Ich will allerdings endlich über TTL hinauskommen - bin die IC-Gräber mit Drahtverhau leid :-) Um noch einmal auf die externe Spannungsversorgung zurückzukommen. Ja, das ist immer eine gute Idee, aber wie kann ich dann jemals eine ISP-Programmierung durchführen, bei der ich gar keine andere Spannung zur Verfügung habe? 'In System Programming' heißt es doch und bedeutet auch, dass ich die Schaltung über den Programmer mit Strom versorge.
Uwe G. schrieb: > 'In System Programming' heißt es doch und bedeutet > auch, dass ich die Schaltung über den Programmer mit Strom versorge. Nein, das heißt es nicht! Gute ISP Geräte "fühlen" die Spannung des Delinquenten und passen sich an. Von 1,8V bis 5V z.B. der Atmel ICE ist so einer Der USBasp nicht. Der kennt keine Scheu, die angeschlossen Schaltungen mit 5V zu fluten und evtl. gar dabei auszubrennen.
Auf Versorgungsspannung wollte ich hinaus, daher die Frage nach dem Aufbau - sei es als Bild oder als Skizze - einfach mal selbst gezeichnet. Da ist dann klar, was mit den entsprechenden Pins ist und ob, bzw. woher sie versorgt werden. Zu oft treffen Leute irgendwelche Annahmen, die am Ende falsch sind.
Uwe G. schrieb: > Ich hatte die Verdrahtung mehrfach überprüft. Du hast es immer noch nicht verstanden. Es geht beim Aufbau nicht nur darum dass man korrekt alles 1:1 vom Schaltplan umgesetzt hat sondern auch wie man das Ganze verdrahtet hat, um die Anordnung und Leitungslängen. Die (Strom-) Versorgung des Versuchsaufbaus ist ein weiterer von Anfängern oft unterschätzter Aspekt.
Das provisorische Aufbauen nicht schön sind, wissen wir alle. Dafür braucht sich niemand zu schämen. Die erfahrenen Elektroniker wissen aber, wo bei provisorischen Aufbauten Knackpunkte lauern. Anstatt jetzt alle 100 Szenarien zum gefühlten 1000ten mal hier aufzuschreiben, nur um vor Dir zu erfahren "nein, das ist es alles nicht" kommen wir mit ein paar simplen Fotos viel schneller und bequemer voran.
OK, jetzt noch mal mit stabilisierter Stromversorgung und Bildern. Beim Aufruf des USBasp aus AtmelStudio heraus spricht AVRdude den USBasp an. Die ProgrammierLED auf dem USBasp binkt auf. Parameter: -e -P usb -c USBasp -p ATmega8 -B 2000 -e -U flash:w:"$(ProjectDir)Debug\$(ItemFilename).hex":a Auf dem Steckbrett sieht man das Flackern der RESET LED, bei den anderen LED ist nichts zu sehen. avrdude.exe: set SCK frequency to 500 Hz avrdude.exe: error: program enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you. Auf dem Foto sieht man leider nicht die Beschriftung: ATMEGA8-16PU, auswählen kann ich im Atmel Studio nur ATmega8
Wenn auf den 3 LEDs wirklich gar kein Flackern zu sehen ist, dann ist dein Programmieradapter oder das Kabel kaputt. Wenn zwei der drei LEDs flackern, hat der AVR keinen Takt. Quarze funktionieren im Steckbrett nicht immer.
1. Ich habe jetzt einen weiteren USBasp gekauft (habe also 2 gleiche und eins von einer anderen Firma). Bei einem dt. Händler, der mir versicherte, dass er einzeln prüft und aktuelle Firmware geflasht hat. 2. habe ich die Schaltung mehrfach optisch geprüft und dann die Verbindungen mit Multimeter durchgemessen. 3. habe ich alle 3 10-poligen Kabel der USBasp durchgemessen. 4. habe ich - natürlich unter Berücksichtigung der PIN-Belegung 1x ATmega8 1x ATmega48 2x ATmega88 eingesetzt. Und ich weiß, dass am Punkt auf der eingekerbten Seite PIN1 liegt. 5. bin ich die Leitungsführung mindestens 2x genau durchgegangen (bis an PINs gemessen) 6. habe ich die am IC anliegende stabilisierte Spanung geprüft (5,83V) 7. Ich habe bei einem USBasp die fehlenden Steckstifte aufgelötet (S3), um dort die eingebaute niedrige Geschwindigkeit vorzugeben. 8. Ich habe AVRDude immer eine geringe Frequenz vorgegeben (B -20 entspricht 32kHz) 9. Ich habe das Zidag-Programm verwendet, um alle verfügbaren Treiber auszuprobieren: libusb, libusbk, win32 von fischl. in meinem Win7prof laufen alle Treiber gleich (gut?) 10. Ich habe ein einfaches main.c erstellt (wie in einem Tutorial beschrieben, um einfach nur 2 Ausgänge auf high zu setzen), dieses built ausgeführt und versucht, hochzuladen. 11. Natürlich mit und ohne Quarz (verschiedene getestet: 4 und 6MHz sowie einen Uhrenschwinger von 32kHz - was ja egal sein dürfte, denn die neuen ATmegas müssten erst mal mit dem internen Oszi laufen). Ob die Quarze anschwingen, kann ich nicht sagen, aber siehe Klammer. 12. Die LED an MOSI, MISO und SCK liegen über R auf Low. 13. a) Mini-Oszi DSO138 (dafür reichts) zeigt mir während der Programmierungsversuche ein Rechtecksignal mit ca. 170mysec. Taktsignal am SCK mit einem Pegel von ca. 1,2V an (mit Stecker für Low frequenz am USBasp), ohne Stecker höhere Frequenz(um die 90ys). b) am Reset kommt ein ähnliches Signal an. Jeder der 3 USBasp wird erkannt Jeder der 3 USBasp wird von AVRDude angesprochen, die Prog-LED geht kurz an Jeweils fängt die leuchtende RESET-LED vom uC an zu flackern Immer leuchtet die MOSI-LED dauernd und flackert ebenfalls beim programmieren. MISO- und SCK-LED bleiben aus. Ein messbar über alle Leitungen ankommendes Signal ist aber vorhanden. Bei allen uC und bei allen 3 Programmern gibt es dieselbe Fehlermeldungen von AVRDude. Die Fehlermeldungen kommen aber auch, wenn die nur den USBasp dranhabe und die Schaltung abgeklemmt ist! Die ATmegas sind allesamt neu, unbeschrieben und haben nur einige Zeit in einem Kästchen auf Schaumstoff hinter sich gebracht (bei pollin gekauft). Elektrostatische Defekte schließe ich hier aus. Sollten die trotzdem ALLE defekt sein können? Jedenfalls finde ich bislang keine weiteren Fehler Ob ich doch noch ein Brett vor der Nase habe?
Uwe G. schrieb: > 6. habe ich die am IC anliegende stabilisierte Spanung geprüft (5,83V) Das ist aber viel. Die AVR sind für maximal 5,5V ausgelegt. > Taktsignal am SCK mit einem Pegel von ca. 1,2V an Das ist zu wenig, der Pegel müsste annähernd mit der Versorgungsspannung übereinstimmen. Irgend etwas belastet diese Leitung viel zu stark. Dem Oszillogramm nach muss es eine kapazitive Last sein. Könnte es sein, dass dein Steckbrett kaputt ist? Vielleicht hat sich innen drin ein Stück Draht verfangen. Ich bin auch unsicher, ob du dein Oszilloskop richtig eingestellt hast. Ganz links unten steht "0,5V AC", du sollst aber DC messen. Wo ist denn auf deiner Anzeige Null Volt ? > am Reset kommt ein ähnliches Signal an. Da sollte nur ein langer Low-Impuls zu sehen sein, der so lange dauert, wie der Programmiervorgang (bzw. dessen Versuch). > MISO- und SCK-LED bleiben aus. Kein Wunder bei 1,2 Volt. Wiederhole deine Messung nochmal mit LED's aber ohne Mikrocontroller. Wollen wir doch mal sehen, ob deine Programmieradapter heile sind. Wie sieht es mit der Stromversorgung deiner USBASP aus, ist die während der Kommunikation stabil auf ca. 5V? Es wäre denkbar, dass dein USB Kabel, Hub oder Port am PC defekt ist.
Uwe G. schrieb: > Ob ich doch noch ein Brett vor der Nase habe? Zum Aufbau: - Das Quarz-Gehäuse kann einen Kurzschluss mit einigen Controller-Pins erzeugen. - Die Widerstände an den LEDs sind evtl zu klein (100 Ohm?) Sollten mindesten 330 Ohm sein, lieber 470. - Wenn die Spannung am Controller mehr als 5.1 Volt hat, misst du entweder falsch oder dein Messgerät ist defekt oder der Spannungsregler erzeugt keine 5V und ist somit defekt. Auch muss die Versorgung von aussen mindestens 7.5V haben (abhängig vom Spannungsregler). Messe die Spannung einmal direkt am Spannungsregler (In vs Gnd und Out vs Gnd) und direkt an den Versorgungspins des Controllers (7 vs 8, 7 vs 22, 20 vs 8 und 20 vs 22). Müsste überall das gleiche herauskommen. - du hast nicht gezeigt woher die Spannung für den Aufbau von aussen kommt. Fern Schätzer schrieb: > Die (Strom-) Versorgung des Versuchsaufbaus ist ein weiterer > von Anfängern oft unterschätzter Aspekt. - du hast keinerlei Angaben zum Spannungsregler gemacht (Typ, Schaltplan).
Hi, >6. habe ich die am IC anliegende stabilisierte Spanung geprüft (5,83V) Mach mal bitte so 10µ an den Ausgang des Spannungsreglers. Mehr als 5V ist Mist. >Ich bin auch unsicher, ob du dein Oszilloskop richtig eingestellt hast. >Ganz links unten steht "0,5V AC", du sollst aber DC messen. Wo ist denn >auf deiner Anzeige Null Volt ? Ja, aber die Schalter stehen auf x5 und 1V. AC ist natürlich Mist. Viel Erfolg, Uwe
Mein Steckbrett sieht genauso aus wie das abgebildete. Der Versorgungsstreifen ist dort aber durchverbunden, das heißt, die kurzen Kabelbrücken (rot und schwarz) zwischen den 5er Blöcken sind nicht notwendig. Sollte das bei dir auch so sein, dann hättest du Eingang und Ausgang des Reglers kurzgeschlossen. Bist du sicher, dass die 5er Abschnitte gegeneinander isoliert sind? Jens
Jens schrieb: > Bist du sicher, dass die 5er Abschnitte gegeneinander isoliert sind? Ich beiße in die Tischkante, wenn es das war...
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.