Forum: Mikrocontroller und Digitale Elektronik Power on Reset Verhalten


von Max (Gast)


Lesenswert?

Hallo,

ich habe vor das Power-on-Reset Verhalten beim AVR etwas näher zu 
betrachten. Soweit ich weiß hat der AVR ja eine Power-On Reset 
Protection mit eingebaut.

Zusätzlich ist in den meisten Standardbeschaltungen ja ein RC-Glied am 
Reset Pin des Mikrocontrollers vorgesehen, um den Mikrocontroller nach 
dem Einschalten der Versorgungsspannung für eine definierte Zeitspanne 
im Reset zu halten.

Nun stellt sich mir die Frage, wozu teilweise noch das Verhalten 
berechnet wird? Welche Aspekte, wahrscheinlich Sicherheitsaspekte 
spielen dabei eine Rolle?

von Nullpointer (Gast)


Lesenswert?

Aeh, ja. Es gibt langsame Supplies, die nur wenig Strom bringen und es 
gibt stabile Supplies die jeden Strom bringen. Und dann gibt es 
Schwabbelsupplies, die hin und wieder einbrechen. Falls der 
Stromverbrauch ein Thema ist, sollte ein externer Powerdetektor in 
Betracht gezogen werden. Ein MCP111T, zB zieht nur 1uA.

von Thomas (kosmos)


Lesenswert?

ich würde jetzt nicht sagen das das RC-Glied zum verzögerten Einschalten 
des AVRs gedacht ist, da man ja eine Startverzögerung bis zu 64mSek auch 
direkt flashen kann. Das RC Glied hält kurze negative Spikes fern damit 
der AVR nicht irrtümlicherweise resetet wenn so ein kurzer Spike an den 
Reseteingang kommt. Durch das RC-Glied werden kurze Spikes unterdrückt 
und das der AVR verzögert einschaltet ist ein zugehöriger Nebeneffekt.

Außerdem könnte ich mir vorstellen das bei absinkender 
Versorgungsspannng die Spannung am Reseteingang früher abfällt(wegen dem 
Widerstand) und dadurch der AVR sicher resetet wird, also nicht das das 
Programm unterbrochen wird oder durcheinanderkommt und der AVR dann mit 
falschen Werten weitermacht, sonder ein Reset stattfindet und das 
Programm vom neuen beginnt.

Glaube aber mal im Forum hier gelesen zu haben das trotzdem Daten im 
SRAM stehen bleiben könne trotz Reset, leider finde ich den Beitrag 
nicht mehr da mich das damals auch ganz schön verwundert hat, wenn man 
sich nichtmal auf einen Reset verlassen kann.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Zusätzlich dazu hat fast jeder AVR einen BrownOut Detektor, der dann 
einen Reset auslöst, wenn die Betriebsspannung die minimale gültige 
Schwelle unterschreitet. Diese Schwelle ist in Stufen programmierbar. 
Externe Resetbausteine sind an einem AVR eigentlich überflüssig.

von Hannes L. (hannes)


Lesenswert?

Die RC-Beschaltung des Reset-Pins (die eigentlich noch eine Schutzdiode 
braucht) kenne ich nur von den ersten AVRs (ohne BOD) als billigen 
Ersatz für einen externen Reset-Baustein. Bei den heute üblichen AVRs 
ist der Kondensator Unsinn. Den PullUp am Reset setze ich aber immernoch 
ein.

Der interne BOD hat einen nicht zu vernachlässigenden Ruhestrom. Falls 
dieser stört, sollte ein externer Reset-Baustein mit besonders geringem 
Stromverbrauch eingesetzt werden. Im Normalfall ist ein externer 
Reset-Baustein nicht nötig.

...

von Max (Gast)


Lesenswert?

Danke für die Antworten.

Was mir da noch zu denken gibt, ist ein programmierter Controller der 
mitten im Programm resettet wird. Wie sieht das mit den Pins nach dem 
Neustart aus? Also in der Zeit bis zur Stelle im Programm, wo die Pins 
initialisiert werden? Haben die einen definierten Zustand?

von Simon K. (simon) Benutzerseite


Lesenswert?

Max wrote:
> Danke für die Antworten.
>
> Was mir da noch zu denken gibt, ist ein programmierter Controller der
> mitten im Programm resettet wird. Wie sieht das mit den Pins nach dem
> Neustart aus? Also in der Zeit bis zur Stelle im Programm, wo die Pins
> initialisiert werden? Haben die einen definierten Zustand?

Jep, die Pins sind beim Controllerstart Hochohmig. (Bzw. Als Eingang 
ohne Pullup: DDRx = 0; PORTx = 0)

von Simon K. (simon) Benutzerseite


Lesenswert?

Hannes Lux wrote:
> Den PullUp am Reset setze ich aber immernoch
> ein.

Dito. Ich hatte schonmal das Problem, dass der Controller in einer 
verseuchten Umgebung dauernd resettet hat. Mit den 50kOhm eingebauten 
Reset-Pullup ist der Pin aber auch eher floatend statt fest definiert.
Ein externer Pullup hat Abhilfe geschafft (3k3)

von Thomas (kosmos)


Lesenswert?

und wie programmiert man einen AVR wenn man in nicht resetten kann? Ohne 
den Pullupwiderstand wird es die Programmierschaltung ziemlich schwer 
haben die Spannung am Resetpin runterzuziehen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Thomas O. wrote:
> und wie programmiert man einen AVR wenn man in nicht resetten kann? Ohne
> den Pullupwiderstand wird es die Programmierschaltung ziemlich schwer
> haben die Spannung am Resetpin runterzuziehen.

So'n Quatsch.. Was hat denn das jetzt für einen Sinn? Außerdem haben die 
neuen AVR ja einen internen Pullup.

von Hannes L. (hannes)


Lesenswert?

Simon Küppers wrote:
> Hannes Lux wrote:
>> Den PullUp am Reset setze ich aber immernoch
>> ein.
>
> Dito. Ich hatte schonmal das Problem, dass der Controller in einer
> verseuchten Umgebung dauernd resettet hat. Mit den 50kOhm eingebauten
> Reset-Pullup ist der Pin aber auch eher floatend statt fest definiert.
> Ein externer Pullup hat Abhilfe geschafft (3k3)

Bisher nahm ich 3k9 oder 4k7. Ich werde aber auf 10k umstellen, da laut 
Dragon-Doku Debug-Wire sonst nicht sauber funktionieren soll.

In verseuchter Umgebung sollte ein Jumper nach VCC oder zu einem 
niederohmigerem PullUp helfen (falls Reset-Taster nötig ist), der beim 
Programmieren entfernt werden kann.


Thomas O. wrote:
> und wie programmiert man einen AVR wenn man in nicht resetten kann?

Kein Reset-Widerstand heißt ja nicht, dass Reset fest auf Vcc liegt. Es 
soll Leute geben, die Reset offen lassen und auf den internen PullUp 
vertrauen.

Außerdem soll es Schaltungen geben, in denen fertig programmierte AVRs 
eingesetzt werden, deren Programme keine "Bananensoftware" sind, also 
nicht beim Kunden reifen. Diese brauchen nunmal keine 
Update-Möglichkeit.

...

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.