ISP zerschiesst Atmegas?

OP #1628285
Lesenswert?

Hallo!

Ich bastel z.Z. an meinem Hexabot und bin mittlerweile bei der 
Programmierung angekommen. Die Steuerung besteht aus einem Atmgea644 und 
3 Atmega48 um schnell Änderungen vornehmen zukönnen habe ich eine ISP 
Schnittstelle vorgesehen mit der jeder Microcontroller einzeln verbunden 
werden kann. (siehe Schaltung unten)
Der Atmega644 lässt sich recht problemlos bespielen, manchmal braucht es 
zwei Anläufe, allerdings habe ich jetzt schon den dritten Atmega48 auser 
Gefecht gesetzt.
Zu Anfang hat der Atemga48 in der Schaltung funktioniert aber nachdem 
ich ihn das erste Mal mit dem selbst gebauten ISP programmiert habe ging 
gar nichts mehr.
Ich erhielt mit AVRDude den Fehler
avrdude: verification error, first mismatch at byte 0x0000
danach noch
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
Eigentlich nur ein Zeichen das es nicht geklappt, aber seitdem gibt der 
Atmega48 Nichts mehr von sich. Das Ganze ist mir dreimal hinter einander 
passiert.... Auch mit meinem anderen Programmer kann ich nicht mehr 
zugreifen.
Könnte der Controller wirklich defekt sein?
Meine Vermutung wäre das die Fuses zerstört wurden ist das möglich? Also 
Reset disabled o.ä.

Hoffe das mir Jemand weiter helfen kann das Problem einzugrenzen oder 
hatte ja schon Jemand das gleiche Problem.


Vielen Dank!
Oliver
Angehängte Dateien:
#1628438
Lesenswert?

Hallo,

gut, frage ich eben anders: ich sehe in seiner Schaltung einen MAX232, 
der mit der Sub-D Buchse verbunden ist. Außerdem hängt dort ein 4053 
dran.

Der MAX läßt mich also eine Verbindung mit einer RS232 vermuten (Pegel 
+-12V).
Was mag ein 4053 mit 5V Betriebsspannung wohl von +-12V an seinen 
Eingängen halten?

Ich denke mal wenig...

Deshalb meine Frage, was an der Sub-D-Buchse hängt, mir ist egal, ob das 
ein Bierkasten oder eine Wasseruhr ist, die Signale und die Pegel sind 
interessant.

Gruß aus Berlin
Michael
OP #1628644
Lesenswert?

Erstmal vielen Dank für die Antworten.
Ja es ist ein sechsbeiniger Roboter http://zwen.ath.cx/PICT0421.jpg 
(noch ohne Elektronik)

Ich gebe zu die Schaltung ist sehr unglücklich. Also an der Sub-D Buchse 
hängt der serielle Port des Computers, also ja +-12V.
Zur Zeit schaltet der Mux nur die Leitung 3 des RS232, alle anderen 
Leitungen sind direkt verbunden mit der ISP-Schaltung und dem Max232, 
dass das auch geht ist mir erst danach aufgefallen , ich könnte also 
auch auf den Mux verzichten oder ihn durch Jumper o.ä. ersetzen.
UART senden funktioniert auf jeden Fall und auch das programmieren des 
Atmega644.

Ganz ist noch jetzt nicht geklärt was mit den Atmega48 passiert ist, so 
wie es aussieht ist er durch die fehlerhafte Schaltung beschädigt 
wurden?

Oliver
#1628664
Lesenswert?

Oliver S. schrieb:
> Ich gebe zu die Schaltung ist sehr unglücklich. Also an der Sub-D Buchse
> hängt der serielle Port des Computers, also ja +-12V.
> Zur Zeit schaltet der Mux nur die Leitung 3 des RS232,

Der Mux macht irgendwas, da du dich weit ausserhalb seiner Maximum 
Ratings befindest. Vielleicht macht er sogar manchmal sowas ähnliches 
wie das, was du von ihm erwartest, +/-12V werden aber auf keinen Fall 
hinten rauskommen. Damit passt dann auch die ganze Schaltung dahinter 
nicht mehr.

> alle anderen
> Leitungen sind direkt verbunden mit der ISP-Schaltung und dem Max232,
> dass das auch geht ist mir erst danach aufgefallen , ich könnte also
> auch auf den Mux verzichten oder ihn durch Jumper o.ä. ersetzen.

Ist eine Möglichkeit. Mit dem 4053 wird das auf keinen Fall etwas.

Aber warum machst du nicht einfach eine ISP-Buchse auf die Platine(n) 
und benutzt einen ordentlichen Programmer? Dieser Bitbanging-Murks 
macht, wie man unschwer an den hier im Forum auftauchenden Fragen dazu 
erkennen kann, mehr Probleme als alles andere.

> UART senden funktioniert auf jeden Fall und auch das programmieren des
> Atmega644.

Vermutlich funktioniert es beim 64er zufällig, weil er physikalisch 
ein bisschen dichter an deiner ISP-Murksschaltung dransitzt. Morgen ist 
vielleicht die Temperatur ein bisschen anders und es geht nicht mehr.

> Ganz ist noch jetzt nicht geklärt was mit den Atmega48 passiert ist, so
> wie es aussieht ist er durch die fehlerhafte Schaltung beschädigt
> wurden?

Oder er wurde mit völligem Müll programmiert, weil irgendwas an seinem 
ISP-Port ankam, was nicht unbedingt dem entsprechen muss, was du dorthin 
gesendet hast. Insbesondere kannst du dabei auch die Fuses so zersemmelt 
haben, dass du jetzt nicht mehr via ISP drankommst.

Andreas
Gast #1628687
Lesenswert?

nur mal so als kleiner hinweis an den oliver:
es ist korrekt das die megas alle zeichen korrekt über den uart an den 
pc senden, da dort der signalpegel mit dem max232 von 0..5V auf +/-12V 
geändert wird, wenn du aber deine megas aber über ein nullmodem kabel 
programmieren willst, solltest du deine programmierschaltung dringend 
überdenken, da dein 4053N mit dem Spannungspegel von +/-12V nicht 
klarkommt und dadurch warscheinlich auch noch kaput geht.

greets psy
OP #1628694
Lesenswert?

Andreas Ferber schrieb:
> Der Mux macht irgendwas, da du dich weit ausserhalb seiner Maximum
> Ratings befindest. Vielleicht macht er sogar manchmal sowas ähnliches
> wie das, was du von ihm erwartest, +/-12V werden aber auf keinen Fall
> hinten rauskommen. Damit passt dann auch die ganze Schaltung dahinter
> nicht mehr.

Wie gesagt durch den Mux läuft nur noch die Leitung zum Transistor der 
den Reset schaltet, also eigentlich keine Daten. Es handelt sich um 
einen CD75HCT4053 also ein analoger Multiplexer ich dachte der kommt mit 
den Spannungen klar.


> Insbesondere kannst du dabei auch die Fuses so zersemmelt
> haben, dass du jetzt nicht mehr via ISP drankommst.

Das glaub ich auch.Es ist vermutlich auch nachteilhaft das er IC mit 
einem 20Mhz Quarz läuft oder spielt das keine Rolle?

> Aber warum machst du nicht einfach eine ISP-Buchse auf die Platine(n)
> und benutzt einen ordentlichen Programmer? Dieser Bitbanging-Murks
> macht, wie man unschwer an den hier im Forum auftauchenden Fragen dazu
> erkennen kann, mehr Probleme als alles andere.

Wie gesagt mein "richtiger" Programmer ist auch nur ein Bitbanger. Ich 
arbeite schon über ein Jahr damit und hatte bisher keine Probleme damit.


Oliver
#1628759
Lesenswert?

Oliver S. schrieb:
> Wie gesagt durch den Mux läuft nur noch die Leitung zum Transistor der
> den Reset schaltet, also eigentlich keine Daten.

Auch beim Reset dürften irgendwelche Glitches in unopportunen Momenten 
zu "interessanten" Ergebnissen beim Programmieren führen.

> Es handelt sich um
> einen CD75HCT4053 also ein analoger Multiplexer ich dachte der kommt mit
> den Spannungen klar.

Dann schau (in Zukunft am besten vorher) mal ins Datenblatt. Die 
Signale dürfen sich nur zwischen VCC und GND bewegen. RS232-Pegel sind 
da weit ausserhalb.

> Das glaub ich auch.Es ist vermutlich auch nachteilhaft das er IC mit
> einem 20Mhz Quarz läuft oder spielt das keine Rolle?

Du kannst noch versuchen, ob du die Controller mit einem externen 
Clock-Signal (zur Not einen anderen Controller mit einem Pin wackeln 
lassen) an XTAL1 (Quarz natürlich abklemmen) neu programmieren kannst. 
Wenn allerdings auch die SPIEN-Fuse "abgeschossen" wurde, geht im 
Zweifelsfall nur noch HV-Programming.

Andreas
OP #1629974
Lesenswert?

So ich habe die Schaltung wie unten abgebildet geändert. Es funktioniert 
jetzt besser aber immer noch nicht gut, liegt also vermutlich 
tatsächlich an der bescheidenen Bit-Bang Schaltung. Zudem hab ich die 
Atmega48 durch Atmega8 mit 16Mhz ersetzt. Die Atmega48 sind scheinbar 
nicht mehr zuretten auch ein externes Clock-Signal brachte keinen 
Erfolg.
Zum programmieren stecke ich die IC's jetzt doch lieber wieder um, ist 
zwar nervig, aber mir gehen langsam die Atmegas aus.


Egal jetzt bin ich ganz zufrieden damit, das erste Bein zappelt schon.

Vielen Dank für posten!
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren