mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierungsproblem Selbstbauboard


Autor: Terfagter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Terfagter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und hier die Eagle Datei als Bild.

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Warum sind zwischen VCC-GND und AVCC-AGND keine Abblock-Cs (100nF)?
Sollte sich langsam herumgesprochen haben.

MfG Spess

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich versuche es mal. Auf den diversen AVR Tutorials steht davon aber 
nix.
Werds dann direkt berichten.

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier nach bin ich gegangen und da hat es doch auch ohne 
Abblockkondensatoren funktioniert.
http://www.rn-wissen.de/images/f/f8/Avrtutorial_gr...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe 2 100nF Keramikkondensatoren an die Stellen eingelötet. Das 
Reset Problem bleibt aber weiter bestehen...

Autor: Andy H. (vinculum) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?!

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sry hatte mich nur auf die Schnelle vermessen. Auf der Resetpin am 
Zielcontroller geht kurzzeitig auf low!

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du dir sicher, dass die Kommunikation zwischen USBasp und PC 
korrekt funktioniert? Schwingt der Quarz des USBasp richtig?

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also 10k sind es auf jeden Fall. Werd mal einen 47k oder 100k 
ausprobieren.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Werd mal einen 47k oder 100k ausprobieren.

Der interne PullUp hat 30...60k. Was soll das dann noch?

MfG Spess

Autor: Terfagter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also einen kleineren als 30k?!

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

...

Autor: Ollz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.