Hallo zusammen, ich bin absoluter Neuling in der µC-Programmierung und habe mir meine erste Schaltung mit einem ATmega8 aufgebaut (nach dem Schaltplan im AVR-Tutorial). Das Problem: Ich kann nach dem Anlegen der Spannung den µC nur einmalig lesen bzw. schreiben (Fuses, Flash, EEPROM). Danach wird die Signatur des Chips nicht mehr erkannt. Als Takt benutze ich einen 8MHz Oszillator und zum lesen bzw. schreiben (nach etwas rumprobieren) avrdude. Zur Programmierung via ISP kommt ein USBasp zum Einsatz. Habe das Problem zwar im Forum gefunden, aber keine Lösung dazu. Hat jemand eine Idee voran es liegen könnte? Eine Frage vorweg: Ist es notwendig GND und VCC des ISP mit der Spannungsversorgung der Schaltung zu verbinden? Gruß Holger
Moin, Holger schrieb: > Eine Frage vorweg: Ist es notwendig GND und VCC des ISP mit der > Spannungsversorgung der Schaltung zu verbinden? wenn die Schaltung aus dem Tutorial 1:1 umgesetzt wurde, sind diese bereits verbunden. Wenn nicht Ja. Was heißt "einmalig" MfG
Holger schrieb: > Eine Frage vorweg: Ist es notwendig GND und VCC des ISP mit der > Spannungsversorgung der Schaltung zu verbinden? > > Gruß > Holger Ja
Vielen Dank für die schnelle Hilfe! Sauger schrieb: > Was heißt "einmalig" Nach dem Anlegen der Spannung kann ich über avrdude einen Lese- bzw. Schreibbefehl absetzten. Dieser liefert dann die korrekte Signatur, wird ausgeführt und ggf. verifiziert. avrdude: Device siganture = 0x1e9307 Wiederhole ich den Befehl ein zweites Mal (oder versuche einen anderen) kommt avrdude: Device signature = 0x000102 avdude Expected singature for ATMEGA8 is 1E 93 07 Ein weitere Befehl ist erst nach erneutem Anlegen der Spannung möglich. Dachte da der USBasp über USB versogt wird und die Schaltung eine eigene Spannungsversorgung hat könnte das Vebinden von GND und VCC zu Problemen führen. Ist ja bei der Verwendung eines FTDI auch so. Werde es gleich mal versuchen. Gruß Holger
Holger schrieb: > einmalig > lesen bzw. schreiben (Fuses, Flash, EEPROM). Na, wenn du die "Fuses" schreibst, ohne zu wissen, was du da tust, kann das solche Folgen haben. Oliver
Oliver schrieb: > Na, wenn du die "Fuses" schreibst, ohne zu wissen, was du da tust, kann > das solche Folgen haben. Stimmt, aber das ändern der Fuses hat mein Problem bisher nicht gelöst. Deshalb frag ich ja ob jemand das Problem kennt. Oder bin ich etwa der einzige Anfänger, der schonmal Mist gebaut hat? Benutze zur Zeit: lfuse: 0xD0 hfuse: 0xCA Habs auch schon mit nem 8MHz Quarz und entsprechendem lfuse versucht. Selbes Problem. Gruß Holger
Holger schrieb: > lfuse: 0xD0 > hfuse: 0xCA Und jetzt such uns mal genau raus, was da eingestellt ist. Evtl hat's ja den Quartz ausgeklammert?
Hast du mal versucht, deinem Oszillator ein bisschen mehr Zeit zum anschwingen zu geben? Vielleicht sind ihm 4 ms etwas zu wenig.
Holger schrieb: > avrdude: Device signature = 0x000102 > avdude Expected singature for ATMEGA8 is 1E 93 07 Versuch es einfach nochmal. Ich habe auch so einen Billig-USBasp und bei mir kommt es auch hin und wieder vor, dass aus irgend welchen Gründen die Signatur falsch ausgelesen wird. Einfach den Vorgang mehrfach starten, irgendwann passt es dann wieder.
Ich würd mir ja einfach mal was Brauchbares besorgen bevor ich mich mit irgendwelchem unbrauchbaren Scheiß abfinde!
Ich würde mich darauf konzentrieren, die Signatur oder die Fuses oder das Flash fehlerfrei mehrmals hintereinander zu lesen bevor irgendwelche Schreibaktionen gemacht werden. USBasp http://www.fischl.de/usbasp/ Schaltplan USBasp http://www.fischl.de/usbasp/bilder/usbasp_circuit.png Selbstbau im AVR-Tutorial http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Selbstbau > Das Problem: Ich kann nach dem Anlegen der Spannung den µC nur einmalig > lesen bzw. schreiben (Fuses, Flash, EEPROM). Mir ist nicht klar, wie du die Spannungsversorgung machst. Man kann die Selbstbauschaltung über die ISP-Buchse vom USBasp versorgen lassen. Dazu muss der Jumper JP1 (Supply Target) auf dem USBasp-Board gesteckt sein. Man kann die Sebstbauschaltung extern mit 5V versorgen. Dann darf der Jumper JP1 (Supply Target) auf dem USBasp-Board nicht gesteckt sein. In beiden Fällen muss GND von Selbstbauschaltung und USBasp miteinander verbunden sein. Die Versorgungsspannungen von USBasp und Selbstbauschaltung sollten so wenig wie möglich voneinander abweichen. So gesehen ist es vorteilhaft, wenn die Selbstbauschaltung vom USBasp aus versorgt wird. Das setzt aber eine ordentliche Selbstbauschaltung voraus. Wenn in der Selbstbauschaltung zu viel Strom gezogen wird (aktive Hardwareerweiterungen, Kurzschluss) schlägt das über USB auf den PC durch und kann Probleme verursachen.
Hast du mal versucht, den Programmiertakt zu reduzieren? Das hilft meistens. Bei avrdude einfach als Kommandozeilenoption "-B 100" oder auch mal "-B 500" übergeben. Natürlich geht das Programmieren dann langsamer, aber dafür funktioniert es. :-)
> Ich habe auch so einen Billig-USBasp und bei mir kommt es auch hin und > wieder vor, dass aus irgend welchen Gründen die Signatur falsch > ausgelesen wird. Holger, hast du das Fischl-USBasp oder einen "Billig-USBasp" Nachbau?
Vielen Dank für die vielen Tips! ... schrieb: > Hast du mal versucht, deinem Oszillator ein bisschen mehr Zeit zum > anschwingen zu geben? Vielleicht sind ihm 4 ms etwas zu wenig. Danke, habs mal mit 64ms versucht. Hat leider nichts gebracht. Krapao schrieb: > Holger, hast du das Fischl-USBasp oder einen "Billig-USBasp" Nachbau? Einen Billig-USBasp. Ich denke ich werde mir nächste Woche was anderes zulegen. Welche Programmer sind zu empfehlen? Krapao schrieb: > Mir ist nicht klar, wie du die Spannungsversorgung machst. Die Schaltung sitzt auf einem Steckbrett und wird von einem Steckmodul(Spannungswandler) über USB mit 5V versorgt.
Holger schrieb: > Einen Billig-USBasp. Ich denke ich werde mir nächste Woche was anderes > zulegen. Welche Programmer sind zu empfehlen? Lass dich nicht verwirren, meistens liegts nicht am Preis. Ich verwende auch einen China-ISP, und der läuft prima. Hast du es jetzt mal mit -B 500 probiert?
Das Problem kenne ich. Reset ist auf Masse (GND) kurzgeschlossen. Danach lässt sich der Controller ein mal Programmieren / lesen. Kontrolliere mal den Pegel am Reset, wenn du nicht gerade am programmieren bist müsste der ~5V sein. mfg Andreas
S Hahn schrieb: > Hast du es jetzt mal mit -B 500 probiert? Ja, danke, hats aber leider auch nicht gelöst.
Andreas B. schrieb: > Das Problem kenne ich. > > Reset ist auf Masse (GND) kurzgeschlossen. Danach lässt sich der > Controller ein mal Programmieren / lesen. > > Kontrolliere mal den Pegel am Reset, wenn du nicht gerade am > programmieren bist müsste der ~5V sein. DANKE!!! Genau das wars! :-) Mein eigentlich überflüssiger Resetknopf (Taster) hatte nen Kurzschluss. Gruß Holger
Ich denke ich sollte das mal irgendwo passend ins Wiki schreiben. Du bist nicht der erste mit genau diesem Problem;-) mfg Andreas
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.