PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Resetproblem mit AtMega8



rico65
16.11.2006, 22:27
Habe einen AtMega8 in Betrieb. Wenn ich Kaltstart mache, läuft der AVR zu langsam (blinkt z.B. langsam); wenn ich ihn programmiere
startet er anschliessend normal (schnell); nehme an weil dies
eine sauberes Reset gibt ?
Habe am Resetpin einen 10k nach 5V und einen 10nF nach Masse.

Takt habe ich intern und extern versucht, identisches Problem.

Kann mir jemand helfen ?

Normal nimmt man 100nF glaube ich, ist das der Grund ?

Danke für jede Hilfe !

wkrug
17.11.2006, 08:42
Also meine Vorschläge wären:

1. Du wertest in deiner Software das MCUCSR Register aus und verzweigst dann irgendwie nicht richtig.

2. Im Ram befinden sich bei Prozessorstart zufällige Werte die Du während deines Programmstartes nicht mit gültigen Werten überschreibst.

3. Der Watchdogtimer wird nicht rechtzeitig zurückgesetzt und startet den ATMEGA ständig neu.

4. Der ATMEGA8 "vergisst" seine Fuse Einstellungen oder den Inhalt des EEProm - Das sollte sich durch austauschen des ATMEGA 8 gegen ein anderes Exemplar austesten lassen.

5. Für die Resetbeschaltung verwende ich normalerweise nur einen 10k Widerstand und hatte eigentlich noch keine Probleme damit.

6. Eventuell bringt ein anderes Start up Timimg, oder eine aktivierte Brown OUT detection (Fuses !) eine behebung des Problems.

Schau Dir mal die Sachen an vieleicht hilfts ja.

SprinterSB
17.11.2006, 09:41
In welcher Umgebung arbeitet der µC?

--Wenn die mit viel Störungen durchsetzt ist, evtl VCC besser bügeln.
-- Vielleicht hat der Takt (Quarz) Probleme in der Umgebung wegen Störungen. Evtl. den Output-Swing des XTAL-Verstärkers erhöhen (noisy envoronment).
-- Ist die Betriebsspannung immer im erlaubten Bereich? Auch beim Proggen? Versuch mal, die VCC immer mindestens 500mV über dem vorgeschriebenen Minimum zu halten.
-- Ansonsten würd ich auch vermuten, daß uninitialisierte Daten das Problem sind.
-- Zeigt MCUCSR immer die RESET-Quelle, die du erwartest?
-- Wenn du RAM-Daten hast, die einen RESET überstehen sollen (avr-gcc Section ".noinit"), dann musst du nach dem Proggen einen Power-Down-RESET machen. External RESET genügt *nicht*, da sich durch Programmänderungen Lokatierungen geändert haben können!.

rico65
17.11.2006, 10:25
Danke für eure Infos !

Ich habe jetzt festgestellt, dass wenn ich den ISP-
Stecker eingesteckt habe, die Schaltung korrekt
funktioniert, wenn nicht, fast nie.

Ihr habt sicher eine Idee !

Übrigens:
Vcc habe ich gemessen, ist 4.9 V; ist das ok ?

rico65
17.11.2006, 11:27
Ich habe definitiv mit dem Einschalten ein Problem
und dies nur wenn der ISP-Stecker vom PC nicht dran
ist. Nach ein paar Sekunden Blinkt die LED nicht mehr
und die RS232 geht gar nicht.
Mach ich dann Reset am AVR (manuell) geht die Sache
wieder und lange.
Wie gesagt, ist der ISP dran gehts auch immer.
Danke für jede Hilfe!

Habe im Moment einen 10nF von Reset gegen Masse (und kein Stabilisator für 5V) und ein 10K gegen oben.

shaun
17.11.2006, 11:56
Abblock-C direkt!!! zwischen Vcc und GND?

rico65
17.11.2006, 12:36
Was für ein Abblick-C ?

askazo
17.11.2006, 12:53
Wie ist Dein Reset-Pin beschaltet?
Ich habe bei mir standartmässig den Reset mit 2kOhm nach 5V gezogen und mit einen 10nF-Kondensator nach Masse. Durch den Kondensator erhält der Controller beim Einschalten einen sauberen Reset.

askazo

Hubert.G
17.11.2006, 13:06
Wie sieht dein Schaltung aus, vieleicht liegt das Problem ganz wo anders. Vieleicht kannst du sie mal komplett posten.

rico65
17.11.2006, 14:25
Hallo askazo
habe den Reset genau so beschaltet wie Du beschrieben hast.
Was aber (vielleich) fehlt, ist ein Kondensator generell zwischen
Masse und Vcc. Ist das DAS Problem ? Wenn ja, welche
Dimension muss er haben ?

magnetix48
17.11.2006, 14:32
Hallo,

hier gibt's Informationen:
https://www.roboternetz.de/wissen/index.php/Abblockkondensator

Gruß
Detlef

wkrug
17.11.2006, 19:56
@rico65
Abblockkondensatoren gehören zwischen VCC und GND und AVCC und AGND möglichst nahe an den Pins des Prozessors.

Ich nehm immer 100nF Keramikkondensatoren in letzter Zeit häufiger in SMD Bauweise 0805. Bei AVCC darf es auch ein Folienkondensator sein, wenn es auf eine möglichst hohe Genauigkeit des ADC ankommt (Ob das wirklich einen Effekt hat hab ich noch nicht getestet - in der Theorie stimmts).

In der Zwischenzeit hat es sich Eingebürgert alle IC zwischen den Stromversorgungsanschlüssen mit 100nF Abzublocken - ist allemal einfacher als Tagelang dubiose Fehler zu suchen.

Auch auf der Ausgangsseite deiner Stromversorgung (Auf der Eingansseite sowieso) sollte sich ein 100 bis 220nF Abblockkondensator befinden zu dem ein 10... 100uF Elektrolytkondensator parallel geschaltet ist.
Beim endgültigen Wert kommt es auf den Spannungsregler, sowie auf die entnommene Strommenge an. Im Zweifelsfall das Datenblatt des Spannungsreglers befragen.

#Klugscheißermodus an
Bei Audio- und Hochfrequenzschaltungen sollte man mit den Abblockkondensatoren etwas vorsichtig sein - Keramische Kondensatoren haben ein etwas höheres Rauschen und zudem einen Mikrofonieeffekt (Wirken tatsächlich wie ein kleines Mikro für starke Geräusche) - Aber das war ja hier nicht die Frage.
#Klugscheißermodus aus