Forum: Mikrocontroller und Digitale Elektronik Reset-Problem bei ATmega 168


von Bernd (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich mache momentan einige Versuche mit dem ATmega 168. Seit letzter 
Woche funktioniert der µC leider nicht mehr.
Ich vermute, dass ein Fehler beim Reset-Pin vorliegt. Im Betriebszustand 
liegt dort nämlich eine Spannung von 1,4V an, obwohl ein Pull-up 
Widerstand den Pin nach Vcc (5V) zieht. (siehe angefügte 
Resetbeschaltung)
Der µC lässt ich auch nicht mehr programmieren.
Ich habe schon versucht mit der HV-Programmiermethode den µC zu retten, 
leider vergeblich. Es ist zwar möglich diesen auf Werkeinstellung 
zurückzusetzen, das Reset-Problem bleibt aber weiterhin bestehen.
Habt ihr irgendeine Idee die ich noch probieren könnte?

Gruß
Bernd

von H.Joachim S. (crazyhorse)


Lesenswert?

Welchen Sinn macht die LED? Soll sie dir zeigen, dass du gerade den 
Taster drückst? Oder soll sie anzeigen, ob der Taster noch funktioniert?
Das ist übrigens gar keine schlechte Idee, geladene 100nF schaffen es in 
der Tat, den Kontakt zu verbrennen.

von Magic S. (magic_smoke)


Lesenswert?

Liegt das Problem immer noch vor, wenn Du den Programmer von der 
Schaltung abziehst? Wenn der µC aus der Schaltung genommen wird?

Im Grunde ists ganz einfach, wenn (ohne gesetzte Reset-Disable-Fuse) 
Strom in den Reset-Pin hineinfließt, dann war's das für den µC.

von Conny G. (conny_g)


Lesenswert?

magic smoke schrieb:
> Liegt das Problem immer noch vor, wenn Du den Programmer von der
> Schaltung abziehst? Wenn der µC aus der Schaltung genommen wird?
>
> Im Grunde ists ganz einfach, wenn (ohne gesetzte Reset-Disable-Fuse)
> Strom in den Reset-Pin hineinfließt, dann war's das für den µC.

Nimm mal die LED und Vorwiderstand raus. Da hast eine Parallelschaltung, 
wo ich jetzt grad nicht sagen könnte, was die für einen Widerstand hat. 
Und wenn der Pullup am Reset zu klein wird, dann geht das tatsächlich 
nicht mehr.
Hatte mal so ein ähnliches Problem mit einem Widerstand am Ausgang eines 
Optokopplers. Der AVR kann da über eine Leitung, die per OK ankommt 
resettet werden. Und da hatte ich dann die 10k Pullup und < 1K 
Widerstand vom OK parallel und das funktionierte nicht mehr, die 
Spannung am Reset war ebenfallsmzu niedrig. Lösung war den niedrigen 
Widerstand des OK zu entfernen und dann ging es.

von Bernd (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten.

H.Joachim Seifert schrieb:
> Welchen Sinn macht die LED? Soll sie dir zeigen, dass du gerade
> den Taster drückst?
Die LED soll in der Tat zeigen, wann der AVR gerade einen Reset bekommt. 
Gerade für solche Probleme finde ich sie nützlich. (wenn sie nicht 
gerade die Hauptursache ist :)

Conny G. schrieb:

> Nimm mal die LED und Vorwiderstand raus. Da hast eine Parallelschaltung,
> wo ich jetzt grad nicht sagen könnte, was die für einen Widerstand hat.
> Und wenn der Pullup am Reset zu klein wird, dann geht das tatsächlich
> nicht mehr.

Ich habe vorher die LED + Vorwiderstand herausgelötet, doch leider 
befindet sich der AVR danach immer noch im Resetzustand.
Mir ist aufgefallen, dass die Spannung am Reset-Eingang nun geringer 
wurde. Trotz 10k Pull-up Widerstand waren dort 0,3V zu messen. Mit 
LED+Vorwiderstand waren es 1,4V.

Mir scheint es als hätte ich diesen Eingang zerstört, obwohl ich mir 
nicht erklären kann wie.

von spess53 (Gast)


Lesenswert?

Hi

>Mir scheint es als hätte ich diesen Eingang zerstört, obwohl ich mir
>nicht erklären kann wie.

Ist es möglich, das du beim Programmieren der Fuses aus Versehen die 
RSTDISBL-Fuse gesetzt hast?

MfG Spess

von Wilhelm F. (Gast)


Lesenswert?

Bernd schrieb:

> Mir scheint es als hätte ich diesen Eingang zerstört, obwohl ich mir
> nicht erklären kann wie.

Hattest du mal einen Kurzschluß in der Versorgung? Dann würde sich der 
100n direkt am Pin entladen, und den µC evtl. zerstören. Obwohl, bei 
100n schwer vorstellbar. Aber deswegen haben etwas bessere Schaltungen 
noch einen Serienwiderstand zwischen C und Reset-Pin.

Probleme mit so kleinen Kondensatoren hatte ich mal mit 8051-ern. 
Üblicherweise wurden dort auch 10µ und 10k verwendet.

Bei 100n und 10k ist aber die Reset-Dauer extrem kurz. Vielleicht ist es 
das. Es könnte besonders beim Anstieg der Versorgungsspannung nach 
Einschaltung eine Rolle spielen.

von Conny G. (conny_g)


Lesenswert?

Und der Taster ist auch sicher nicht defekt? Oder einfach "normal 
geschlossen"?

Hast Du die Möglichkeit das Ganze auf einem Breadboard mit einem neuen 
AVR aufzubauen? Dann tust Dich leichter herauszufinden, was falsch ist.

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Wilhelm F. schrieb:
> Bernd schrieb:
>
>> Mir scheint es als hätte ich diesen Eingang zerstört, obwohl ich mir
>> nicht erklären kann wie.
>
> Hattest du mal einen Kurzschluß in der Versorgung? Dann würde sich der
> 100n direkt am Pin entladen, und den µC evtl. zerstören. Obwohl, bei
> 100n schwer vorstellbar. Aber deswegen haben etwas bessere Schaltungen
> noch einen Serienwiderstand zwischen C und Reset-Pin.
>
> Probleme mit so kleinen Kondensatoren hatte ich mal mit 8051-ern.
> Üblicherweise wurden dort auch 10µ und 10k verwendet.
>
> Bei 100n und 10k ist aber die Reset-Dauer extrem kurz. Vielleicht ist es
> das. Es könnte besonders beim Anstieg der Versorgungsspannung nach
> Einschaltung eine Rolle spielen.

Die Resetdauer wird nicht mit dem RC am Resetpin gesteuert. Das ist auch 
beim 8051 nur die Einfachlösung. Normalerweise nimmt dafür einen 
Resetcontroller mit BOD. Sowas hat der AVR eingebaut.

@Autor: Bernd (Gast)
Schmeiss die gesamte externe Beschaltung des Resetpins raus.
Der Atmega 168 braucht sowas nicht. Der 10k-Widerstand bietet nur 
zusätzliche Sicherheit. Der Kondensator ist Paranoia.
Und lass die LED weg.


siehe AVR042: AVR Hardware Design Considerations

mfg.

von Wilhelm F. (Gast)


Lesenswert?

Thomas Eckmann schrieb:

> Die Resetdauer wird nicht mit dem RC am Resetpin gesteuert. Das ist auch
> beim 8051 nur die Einfachlösung. Normalerweise nimmt dafür einen
> Resetcontroller mit BOD. Sowas hat der AVR eingebaut.

Für mich im Hobby reichte bisher wirklich immer diese Einfachschaltung.

Anders mag es in einer industriellen Anwendung sein, wo jemand anderes 
das Netzteil entwickelte, und dies auch noch andere Schaltungen 
betreibt. Da werden es immer mehr unbekannte Parameter, und man nimmt 
halt einen Reset-Baustein, um auf Nummer Sicher zu gehen.

> @Autor: Bernd (Gast)
> Schmeiss die gesamte externe Beschaltung des Resetpins raus.
> Der Atmega 168 braucht sowas nicht. Der 10k-Widerstand bietet nur
> zusätzliche Sicherheit. Der Kondensator ist Paranoia.
> Und lass die LED weg.

Ein PIC12F675 auf meinem Steckbrett braucht für den Reset im Augenblick 
auch kein externes RC-Glied, das macht er intern, und hat auch noch 
einen Brown-Out-Detektor.

Aber 8051-er Derivate begannen bei mir nach Einschaltung zu flattern, 
wenn die Zeitkonstante des Hochfahrens der Stromversorgung größer war, 
als das RC-Glied am Reset. Wenn ich keinen Reset-Baustein hatte, konnte 
ich das nur über die Größe des Kondensators (Zeitkonstante) machen, daß 
er einwandfrei läuft.

von Wilhelm F. (Gast)


Lesenswert?

Was ich noch ergänzen wollte:

Die LED mit 1k Vorwiderstand verkürzt auch noch mal die Reset-Dauer. Nur 
so am Rande bemerkt. Im Einschaltmoment der Stromversorgung ist Tau dann 
ca. 1k mal 100n, macht 100µs. Reicht dem µC das? Denn je nach 
Spannungsanstieg ist der µC dann schon aus dem Reset wieder raus, wenn 
er eigentlich noch aktiv sein müßte.

Üblicherweise braucht ein µC eine bestimmte Mindestreset-Zeit, weil er 
dann intern einige Register auf Default-Werte beschreibt, bevor er 
startet.

von Wilhelm F. (Gast)


Lesenswert?

Bubu schrieb im Beitrag #3405990:

> Wilhelm F. schrieb:

>> nach Einschaltung zu flattern,
>> wenn die Zeitkonstante des Hochfahrens der Stromversorgung größer war
>
> Das mußte ich leidvoll am Elektor-CompuBoard (8052 AH-Basic) erfahren.
> Insofern waren der 10µ und 10k nicht sooo verkehrt.

Exakt an einem Elektor-CompuBoard, aber mit 80C535, hatte ich auch mal 
Probleme, weil dort anstatt sonst üblich 10µF nur 1µF drin war. Den 
mußte ich tauschen. Die Schaltung pumpte und flatterte nach 
Stromeinschaltung, und kam da nicht mehr raus.

von Thomas E. (thomase)


Lesenswert?

@Wilhelm und Bubu:
Das trifft zwar alles auf einen 8051 zu und die gleichen Erfahrungen 
haben ich und jeder andere vor 30 Jahren auch gemacht. Aber hier geht es 
um einen Atmega. Da ist 8051 einfach Offtopic.

mfg.

von Wilhelm F. (Gast)


Lesenswert?

Bubu schrieb im Beitrag #3405997:

> Wilhelm F. schrieb:
>> Üblicherweise braucht ein µC eine bestimmte Mindestreset-Zeit, weil er
>> dann intern einige Register auf Default-Werte beschreibt, bevor er
>> startet.
>
> Mir scheint, dass du den Microcode der 8051er und deren Derivate
> verfrühstückt hast :-).

Oh, einer, der Details kennt. Berichte doch mal.

;-)

von Wilhelm F. (Gast)


Lesenswert?

Thomas Eckmann schrieb:

> @Wilhelm und Bubu:
> Das trifft zwar alles auf einen 8051 zu und die gleichen Erfahrungen
> haben ich und jeder andere vor 30 Jahren auch gemacht. Aber hier geht es
> um einen Atmega. Da ist 8051 einfach Offtopic.
>
> mfg.

Stimmt. Ein modernerer µC sollte ganz ohne externen Reset-Baustein aus 
kommen, also quasi nur eine Taste am Reset-Pin, sonst nichts.

von Magic S. (magic_smoke)


Lesenswert?

> Hattest du mal einen Kurzschluß in der Versorgung? Dann würde sich der
> 100n direkt am Pin entladen, und den µC evtl. zerstören.
Nee. Selbst wenn, dann würde das den FET zu Vcc hin zerballern, aber 
offenbar hat der FET nach Masse was abbekommen.

Ich sags nochmal, die Sache ist ganz einfach. Sämtliche Beschaltung vom 
Reset-Pin weg (auch Programmer usw.) und nur einen 10k Widerstand 
dranlassen. Fließt dann über diesen Widerstand ein Strom bzw. liegen 
keine Vcc am Reset-Pin, dann ist der µC tot.

ResetDisable Fuse kann es gar nicht sein, weil dann ließe sich der µC 
nicht mehr im "Reset-Mode" festhalten, egal was am Reset-Pin los ist.

von Bernd (Gast)


Lesenswert?

Hallo an alle,

Leider konnte ich den µC trotz ausbauen der kompletten Reset-Beschaltung 
nicht mehr ansprechen. Auch wenn man nur den 10k Pull-up einlötet, 
arbeitet er nicht mehr.
Ich habe mittlerweile aus einem anderen Gerät einen Atmega 168 ausgebaut 
und versuche damit gemacht. Mit diesem funktioniert alles wunderbar, 
sowohl mit meiner ersten Schaltung (mit LED), als auch nur mit 10k 
Pull-up.

Ich werde daher einen neuen µC bestellen müssen.
Vielen Dank für eure Hilfe!

Schöne Grüße
Bernd

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.