Forum: Mikrocontroller und Digitale Elektronik ISP zerschiesst Atmegas?


von Oliver S. (zwen)


Angehängte Dateien:

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

von Sönke O. (soenio)


Lesenswert?

eigendlich ist alles möglich...
Muss nicht der der µC und der Programmer ein gemeinsamen GND haben?
Was hast du den für ein Programmer?

von Oliver S. (zwen)


Lesenswert?

Gnd haben natürlich alle den gleichen gibt nur eine Spannungsversorgung.
Der Programmer ist eigentlich nur diese Schaltung 
http://www.olimex.com/dev/images/avr-pg1b-sch.gif die am seriellen 
Anschluss vom PC hängt. Mein anderes Board ist Atmel Evaluattions-Board 
von Pollin.

von Michael U. (amiga)


Lesenswert?

Hallo,

ich verstehe die Schaltung nicht: was kommt an die Sub-D Buchse in 
Deiner Schaltung dran?

Gruß aus Berlin
Michael

von hexapod (Gast)


Lesenswert?

Oliver S. schrieb:
> Hexabot

hexapod

von Michael U. (amiga)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

hexapod schrieb:
> Oliver S. schrieb:
>> Hexabot
> hexapod
Ein Hexabot ist ein sechsbeiniger Roboter, das hat mit einem Hexapod 
nichts zu tun. Hier ein Beispiel: 
http://www.frank-popp.de/HEXABOT/hexabot.html
Und schon wieder was gelernt... ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> Der Programmer ist eigentlich nur diese Schaltung
Nein, denn das Schlüsselbauteil ist wie schon angemerkt der MUX, der 
weit ausserhalb seiner Specs betrieben wird. Spiel mal selber Mux und 
verbinde da ohne IC4  den Pin 4 mit 3, 15 mit 1 sowie 14 mit 13....

von Peter D. (peda)


Lesenswert?

Warum nimmst Du nicht anstatt dieser komischen Schaltung nen Bootloader?
Die UART ist doch schon rausgeführt.
Dann ist kein Verfusen möglich, da der Bootloader nur den Flash 
schreiben kann.


Peter

von Oliver S. (zwen)


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

von Andreas F. (aferber)


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

von psy (Gast)


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

von Oliver S. (zwen)


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

von holger (Gast)


Lesenswert?

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

HCT laufen nur mit 5V. Deine ganze Schaltung ist von Ars...

von Andreas F. (aferber)


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

von Oliver S. (zwen)


Angehängte Dateien:

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!

von Peter D. (peda)


Lesenswert?

Oliver S. schrieb:
> Zum programmieren stecke ich die IC's jetzt doch lieber wieder um, ist
> zwar nervig, aber mir gehen langsam die Atmegas aus.

Nagut, wenn Du es unbedingt umständlich willst, dann nimm eben keinen 
Bootloader.


Peter

von Oliver S. (zwen)


Lesenswert?

Peter Dannegger schrieb:
> Nagut, wenn Du es unbedingt umständlich willst, dann nimm eben keinen
> Bootloader.

Ich hab leider noch nie mit einem Bootloader gearbeitet aber bei 
Gelgenheit werde ich mich mal damit auseinander setzen.

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.