mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Power on Reset Verhalten


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Nullpointer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.