Forum: Mikrocontroller und Digitale Elektronik ATMEGA328: falsche Device Signature


von bene (Gast)


Lesenswert?

Hallo,

ich habe ein Aufbau mit zwei ATMEGA328 und habe dabei seit kurzem ein 
Problem mit der Device Signature von einem der beiden µC.

Zum Programmieren benutze ich avrdude einen Buspirate. Ich habe beide µC 
mit den selben Daten- und Clock-Leitungen belegt, einer bekommt das 
Resetsignal über den normalen Reset, einer über den aux des Buspirates. 
Das hat bisher auch immer alles funktioniert, nachdem ich in der 
avrdude.conf den ATMEGA328 korrekt hinzugefügt habe.

Seit heute habe ich ein Problem. Einer der beiden µC hat eine falsche 
Device Signature. Nicht mehr 0x1e9514 wie es sein sollte, sondern eine 
16 am Ende. Außerdem kann ich diese nur das erste mal auslesen, nachdem 
ich das Board mit Strom versorgt habe. Danach gibt mir avrdude immer 
folgenden Fehler aus:
avrdude: initialization failed, rc=-2
         Double check connections and try again, or use -F to override
         this check.

mit -F kann ich den µC auch weiterhin programmieren (jedenfalls jeweils 
einmal nachdem ich das Board mit Strom versorgt habe)

Die Fuses habe ich gecheckt, diese sind bei beiden µC die selben 
Defaultwerte.

Was für ein Problem könnte ich hier noch haben?

von Pandur S. (jetztnicht)


Lesenswert?

Der eine Controller ist im Reset, der andere arbeitet normal. Was 
bedeutet arbeitet normal? Verwendet zB MISO, MOSI oder SCLK ? Und macht 
somit das Programmiersignal des Anderen kaputt. Ich erachte solche 
Sparloesungen als am falschen Ort gespart. Mach doch einfach zwei 
vollstaendig getrennte Programmierstecker hin

von bene (Gast)


Lesenswert?

Solange der Resetpin auf High ist, tun dem µC die Daten an den ISP-pins 
doch nicht weh. ich habe mich an folgende Anleitung gehalten: 
http://hintshop.ludvig.co.nz/show/buspirate-avr-programming/

Der Grund warum ich das so gemacht habe ist Platzmangel auf dem Board. 
Einen zweiten Stecker konnte ich nicht tolerieren. Ich könnte natürlich 
noch an kleinere Stecker gehen, aber eigentlich dachte ich, dass diese 
Lösung funktionieren sollte.

von Pandur S. (jetztnicht)


Lesenswert?

Wenn der Reset Pin auf tief ist, ist der Controller im Programmier mode.
Der andere Controller ist aber nicht im Programmier Mode, sondern im Run 
Mode. Und dort duerfen die MISO, MOSI und SCLK Pins machen was sie 
wollen, resp sollen. Was stoeren kann, wenn sie mit den MISO, MOSI und 
SCLK des zu programmierenden Controllers zusammenhaengen.

Bezueglich des Programmiersteckers ... Man kann sich immer eine 
abgespeckte, oder verkleinerte Version vorstellen. Allenfalls wuerden 
auch Nadeladapter auf Pins genuegen...

von bene (Gast)


Lesenswert?

Vielen Dank, das war der entscheidenden Hinweis!!

Und ich weiß, es ist nicht perfekt mit dem Programmieren, wie ich es 
jetzt mache, ich werde auch in Zukunft versuchen es besser zu machen.

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
Noch kein Account? Hier anmelden.