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
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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.
@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.
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. ;-)
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.
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.