Kann ATMEGA nicht mit ICSP programmieren

Für ein Projekt, an dem ich gearbeitet habe, habe ich ein funktionierendes PCB-Schaltbild so umgestaltet, dass es alle SMD-Komponenten verwendet und jetzt über einen ICSP-Header verfügt. Das Board ist im Wesentlichen ein LED-Treiber, der von einem ATMEGA168 gesteuert wird. Es ist Arduino-kompatibel und die PTH-Version funktioniert einwandfrei.

Ich habe das neue Board zusammengebaut, aber ich kann es anscheinend nicht mit meinem AVRISPMkII programmieren. Da dies das erste Mal ist, dass ich so etwas mache, habe ich Schwierigkeiten herauszufinden, wo ich anfangen soll, wenn es darum geht, das Board zu debuggen. Wenn ich versuche, mit dem Board zu kommunizieren, erhalte ich eine von zwei Fehlermeldungen. Diese sind:

avrdude: stk500_getsync(): not in sync: resp=0x00

Und

avrdude: stk500_getsync(): not in sync: resp=0x66

Soweit mir bekannt ist, liegt dieser Fehler daran, dass keine Kommunikation mit dem Board möglich ist. Ich habe mich gefragt, ob dies daran liegen könnte, dass ich den ATMEGA beim Löten beschädigt, das Schaltungsdesign durcheinander gebracht habe oder etwas anderes? Wie kann ich so etwas debuggen?

[Bearbeiten - Link zu meinem Schaltplan aus Datenschutzgründen entfernt, jetzt ist das Problem gelöst]

Antworten (1)

Ja, dieser Fehler liegt daran, dass keine Kommunikation zwischen dem Board und Ihrem Computer besteht. Leider ist dies schwierig zu debuggen, da es fast unendlich viele Probleme gibt, die dies verursachen können. Ich kann nur folgendes empfehlen:

Sie müssen beide Enden beheben:

Auf der Tafel:

1) Überprüfen Sie Ihre Spannungen. Sind sie korrekt? Möglichst mit einem Oszilloskop. Nicht alle Programmierer liefern eine Spannung, Ihr Board muss dies möglicherweise tun. Normalerweise liefert der STK500 5V. Spannung sollte nur aus einer Quelle bereitgestellt werden; der Programmierer oder das Board - NICHT BEIDES.

2) Überprüfen Sie, ob Ihr ICSP-Header korrekt mit Pin 1 auf dem Header zu Pin 1 auf dem Programmiergerät passt. In der Vergangenheit habe ich Fehler gemacht, indem ich ein Teil umgedreht oder während des Layouts so gedreht habe, dass die Pinbelegung gespiegelt wurde und nicht mehr richtig passte.

3) Wohin geht Ihr Reset-Netz? Ich finde keinen Knopf oder ähnliches. Wenn es an GND gebunden ist, halten Sie den MEGA im Reset.

4) Haben Sie den Bootloader auf den ATMEGA geladen? Arduino IDE wird ohne sie nicht funktionieren.

5) Der ICSP kann auf der Platine deaktiviert werden. Möglicherweise haben Sie dies versehentlich getan, oder es wurde ab Werk mit deaktiviertem ICSP geliefert. Wenn Sie Software auf andere Weise hochladen können, ist es immer noch möglich, dass ICSP deaktiviert ist. Was können Sie also tun, wenn ICSP deaktiviert ist? Wir müssen den Chip zurücksetzen. Lesen Sie hier mehr

Auf dem Computer:

1) Ist die richtige serielle Schnittstelle ausgewählt?

2) Ist der richtige Treiber installiert?

3) Kann man mit dieser Methode einen normalen Arduino programmieren? Wenn Sie können, stimmt etwas mit Ihrem Board nicht.

Danke für die Hinweise - ich werde sie durchgehen und sehen, ob ich etwas finden kann. Das Zurücksetzen wird vom ATMEGA über einen 10k-Widerstand auf +5 V hochgezogen. Dies habe ich in der Vergangenheit bereits getan, da ich auf dieser Platine keinen Reset-Knopf haben wollte. Ich konnte den Bootloader wegen dieser ICSP-Probleme noch nicht auf den ATMEGA bekommen.
AVRISPMkII ist mit einem 10k-Widerstand in Ordnung, aber wenn Sie einen niedrigeren Wert verwenden, kann der Programmierer den Reset möglicherweise nicht niedrig genug ziehen.
Ich beginne mich zu fragen, ob das von mir gekaufte AVRISPMkII funktioniert oder nicht. Ich erhalte keine andere Fehlermeldung, die besagt: avrdude: stk500_recv(): programmer is not respondingWenn ich versuche, mein Arduino Mega 2560-Board zu programmieren (von dem ich weiß, dass es funktioniert).
Deine Pinbelegung sieht richtig aus. Wenn der Chip Strom und einen Oszillator hat, sollte er programmieren. Ich würde einen anderen Chip wie Sie oder auf einem Steckbrett ausprobieren und sehen, ob der Programmierer mit dem Hut sprechen kann.
Nach einigem Debugging (nochmals vielen Dank für die Tipps!) habe ich meinen AVRISP-Klon durch einen echten ersetzt. Es ist heute angekommen und nach ein bisschen Testen habe ich gute Neuigkeiten: avrdude: AVR device initialized and ready to accept instructions- danke für die Hilfe!