Hallo, ich probiere jetzt seit ca. 3 Wochen ein Atmega16 bzw. 32 Board zu bauen, um mich der Welt der yC näher zu bringen. Früher hatte ich einen ISP Programmieradapter für Lpt, da ich diese Schnittstelle an meinem Laptop aber nicht mehr habe, hab ich mir den USBasp von ullrichradig zusammen gebaut. Dann fingen die Probleme auch schon an. Mal wollte das USBasp programmieren, mal nur halb, mal wurden die Fuses gesetzt, mal wurden andere Fuses gesetzt, die ich eigentlich gesetzt habe. Plötzlich ging gar nichts mehr und ich musste mit einem Quarzoziloskop meinen yC wieder wecken. Ein weiterer Fehler ist, das ich meinen Zielcontroller immer manuell reseten muss. Obwohl ich einen 10k Widerstand vor dem Reset habe! Ich hab mich dann wochenlang durch Foren gelesen und nirgends eine Lösung gefunden und mir dann schlussendlich einen fertigen USBasp von Softland gekauft. (Natürlich wurde eine Leitung auf der Platine vergessen, die ich dann nach langem Suchen zuaätzlich angelötet habe, aber egal.) Die ganzen Fehler von vorher sind aber geblieben! Alle Fehler: -Programmierung nur wenn er mag, und selbst dann wenn ein Versuch von 20 mal klappt, bin ich mir nicht sicher, ob es wirklich richtig beim Zielcontroller angekommen ist. -Programmiert wenn nur, wenn ich manuell Reset auf Masse lege. - Setzt Fuses die ich gar nicht setzen will. Häufigster Fehler bei AVRdude: error: programm enable: target doesn't answer.1 initialization failed, rc=-1 Double check connections and try again, or use-F to override this check. Manchmal fängt er an zu programmieren, bricht aber dann nach dem lesen ab und gibt zurück das der Controller nicht stimmen würde. Ich programmiere mit Winavr oder in Linux mit gedit und gcc. Am Programmieradapter kann es ja jetzt nicht mehr liegen. Ich habe ein Testboard auf einer Lochrasterplatine aufgebaut und eins in eagle gelayoutet und danach geätzt. Beides mal das selbe Problem. Ich habe mal die eagle Datei angehangen, nach der ich beides gebaut habe. Ich hoffe mir kann endlich jemand helfen und ich kann mich auf die Programmierung konzentrieren und nicht wieder auf die Hardware.
Ich habe selbst die Spannungsversorgungsquellen und die Controller gewechselt. Und ich habe auch die Leitungen vom USBasp bis zum Zielcontroller durchgepiepst.. PCs hab ich auch schon getauscht.
Hi Warum sind zwischen VCC-GND und AVCC-AGND keine Abblock-Cs (100nF)? Sollte sich langsam herumgesprochen haben. MfG Spess
Ok ich versuche es mal. Auf den diversen AVR Tutorials steht davon aber nix. Werds dann direkt berichten.
Hier nach bin ich gegangen und da hat es doch auch ohne Abblockkondensatoren funktioniert. http://www.rn-wissen.de/images/f/f8/Avrtutorial_grundschaltung_mitled.gif
Hi >Auf den diversen AVR Tutorials steht davon aber nix. >Hier nach bin ich gegangen und da hat es doch auch ohne >Abblockkondensatoren funktioniert. Ist irrelevant. Die einzige gültige Informationquelle sind die Datenblätter und AppNotes von Atmel. Und da steht das drin. MfG Spess
Ich habe 2 100nF Keramikkondensatoren an die Stellen eingelötet. Das Reset Problem bleibt aber weiter bestehen...
Die Schaltung ist ok, wenn sie auch wirklich so aufgebaut ist. Keine Schlüsse? Vielleicht schwingt der Quarz nicht richtig an? Den brauchst du eigentlich amm Anfang nicht, denn der interne Oszillator reicht ja und schließt eine Fehlerquelle aus. Sind die Massen auch wirklich verbunden? Wie sieht VCC aus? Du hast Störungen auf den SPI-Leitungen oder eine kalte Lötstelle...? Fragen über Fragen
Hallo, Betriebsspannung des AVR ist wirklich ok? Wo kommt die her? Ein neuer AVR läuft mit 1MHz internem Takt, ISP-Takt muß also merklich! unter 250kHz liegen. Zu langsam ist unnötig, 100-150kHz muß immer gehen. Was heißt "manuell Reset auf Masse lege"? Beim Start des Programmierens wird zuerst Reset vom Programmer aus auf L gelegt, das Signal ist selbst mit einem Multimeter zumindest erkennbar. Wenn der nicht mit der Spannung runter geht, stimmt mit dem Programmer was nicht. Kann man auch gut ohne AVR am Programmer messen, muß sich genaus verhalten wie mit AVR. Fuses und Device-ID müssen sich immer! ohne Fehler und gültig lesen lassen, sonst braucht man da garnicht weiter zu probieren, man riskiert nur, daß der AVR ungewollt verfust wird. Ich benutze selbst nur Dragon, selten STK500, früher STK200 mit Ponyprog. Ich habe mir den Programmer von http://www.ullihome.de/index.php/Hauptseite mal auf Lochraster zusammengelötet, auch der benimmt sich (fast) ordentlich bei mir mit der AVRISPmkII-Firmware aus AVR-Studio. Er ist schnell, merklich schneller als der Dragon bei angeblich gleichem ISP-Takt. Dafür programmiert er sehr selten mal bei mir gro0e Files (16kB) fehlerhaft. Da habe ich die Ursache noch nicht gefunden... Gruß aus Berlin Michael
Die Spannung liegt überall da an, wo sie laut Datenblatt anliegen soll. Manuell Reset auf Masse legen heißt, per Schalter Pin Reset auf Masse ziehen, vor dem 10k Widerstand. An Pin 5 am Programmer kann ich sehen, dass auf Low gezogen wird, wenn ich anfangen will zu programmieren. Die Betriebsspannung wird von einem 7805 geregelt. Jumper 2 ist gesetzt, alle anderen nicht. Kalte Lötstellen habe ich nicht, hab alles durchgemessen und nach gelötet. Löten ist bei mir auch kein Problem.
Wenn ich am Programmer den Reset Ausgang messe, geht er beim Programmierversuch auf Low (Ohne Zielcontroller). Messe ich aber am Zielcontroller, geht Reset nicht auf Low?!
Sry hatte mich nur auf die Schnelle vermessen. Auf der Resetpin am Zielcontroller geht kurzzeitig auf low!
Hab gerade die SPannungsquellen nochmal gewechselt. Keine Veränderung! MIttlerweile lassen sich die yC nur noch mit einem Quarzoszillator auslesen. Wenn ich die Einstellungen auf externe clock lasse, schreibe er die Fuses erfolgreich. Änder ich auf "External crystal" folgt ein Fehler beim schreiben. Und weiterhin nur wenn ich Reset manuell auf Masse lege. Sonst tut sich überhaupt nix.
Bist Du dir sicher, dass die Kommunikation zwischen USBasp und PC korrekt funktioniert? Schwingt der Quarz des USBasp richtig?
Ja bin mir sicher. Sonst würde die LED gar nicht erst leuchten. Hab wirklich durch Zufall eben rausgekriegt, dass alles wunderbar funktioniert, wenn ich den 10k Widerstand komplett raus nehme?!? Kann mir das jemand erklären? Auf allen Board funktioniert es jetzt!
Hi >Hab wirklich durch Zufall eben rausgekriegt, dass alles wunderbar >funktioniert, wenn ich den 10k Widerstand komplett raus nehme?!? >Kann mir das jemand erklären? Auf allen Board funktioniert es jetzt! 1. Dann mal den Widerstand ausmessen. Sind vielleicht nur vermutete 10k. 2. Wenn der stimmt, dann mal in der Beschreibung vom Programmer nachsehen. Vielleicht ist der in dieser Beziehung etwas schwach auf der Brust. MfG Spess
Also 10k sind es auf jeden Fall. Werd mal einen 47k oder 100k ausprobieren.
Hi
>Werd mal einen 47k oder 100k ausprobieren.
Der interne PullUp hat 30...60k. Was soll das dann noch?
MfG Spess
Also ich hatte bisher immer 3,3k genommen und nie Probleme damit gehabt. Seitdem ich den Dragon habe, nehme ich 10k (bzw. 11k5, da ich davon eine SMD-Rolle habe), damit Debug-Wire nicht gestört wird. Wenn Du mit 10k Probleme hast, dann liegt der Fehler nicht an den 10k, sondern irgendwoanders. Du suchst den Fehler also am falschen Ende... ...
Nur so nebenbei: AREF nicht auf AVCC legen. Damit nimmt man sich ADC
Konfigurationsmöglichkeiten. Statt dessen einen 100 nF Kondensator von
AREF nach GND.
Für den grundsätzlichen HW-Aufbau Atmel Application Note AVR042 lesen.
Oh, und was ist ein
> ich musste mit einem Quarzoziloskop
? Sowas ein Ding ich in <murmel><murmel> Jahrzehnten Berufserfahrung
noch nicht gesehen.
> AREF nicht auf AVCC legen. Damit nimmt man sich ADC > Konfigurationsmöglichkeiten. Statt dessen einen 100 nF Kondensator von > AREF nach GND. Stimmt, aber das ist noch ein alter Zopf aus AT90Sxxxx-Schaltungen. In meinen ersten Mega8-Projekten habe ich aus AT90S4433-Gewohnheit AREF auch noch auf AVCC gelegt. Inzwischen kommt da nur noch ein Chipkondensator 100n dran. Ähnlich penetrant hält sich die Reset-Beschaltung der alten Classsic-AVRs, obwohl die neueren AVRs die dank BOD nicht mehr brauchen. Bei modernem Equipment (wie Dragon) ist sie sogar hinderlich. > ich musste mit einem Quarzoziloskop Ja, da musste ich auch schmunzeln... - Aber haben wir nicht alle mal angefangen und diese oder jene Begriffe verwechselt? ...
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.