PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino UNO - Reset Button Frage



Andi#87
06.02.2019, 16:11
Hallo,
am UNO ist PIN1 des Atmel 328 mit der Reset-Funktion versehen (gegen GND). Ist hier auch ein PullUp-Widerstand gegen +5V notwendig?
Die DigitalPIN werden ja zB gegen GND geschaltet, wobei unbedingt ein PullUp-Widerstand gegen +5V nötig ist. Muss dieser Widerstand auch beim Reset-PIN eingefügt werden? Oder ist es hier nicht von Bedeutung, wenn der Atmel-PIN1 im Normalzustand (= Reset-Taster offen) sozusagen „in der Luft hängt“ bzw eben kein definiertes Potential hat? Muss dieser Widerstand rein, oder nicht?

Andi

oberallgeier
06.02.2019, 16:34
.. Die DigitalPIN werden ja zB gegen GND geschaltet, wobei unbedingt ein PullUp-Widerstand gegen +5V nötig ist. Muss dieser Widerstand auch beim Reset-PIN eingefügt werden? ..Wie schon so oft: RTFM.


..
18.2.6. Unconnected Pins
If some pins are unused, it is recommended to ensure that these pins have a defined level. Even though
most of the digital inputs are disabled in the deep sleep modes as described above, floating inputs should
be avoided to reduce current consumption in all other modes where the digital inputs are enabled (Reset,
Active mode and Idle mode).
The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up. In this
case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is
recommended to use an external pull-up or pull-down. ..

Ausloggen
06.02.2019, 16:37
Hi Andi,

vor allem Pins mit Funktionen wie Reset sollte man immer ein definiertes Potential geben. Soweit ich im Manual seh einfach ein Pullup, mit einem taster der auf Masse zieht falls du die Funktion brauchst.

VG

Searcher
06.02.2019, 16:53
am UNO ist PIN1 des Atmel 328 mit der Reset-Funktion versehen (gegen GND). Ist hier auch ein PullUp-Widerstand gegen +5V notwendig?
Meiner Meinung nach nicht, aber die Frage erübrigt sich: In allen Schaltplänen, die ich zum Arduino UNO finden konnte ist auf dem UNO Board schon ein 10kΩ Widerstand von RESET nach +5V eingebaut.


Die DigitalPIN werden ja zB gegen GND geschaltet, wobei unbedingt ein PullUp-Widerstand gegen +5V nötig ist.
Es ist nicht unbedingt ein externer Pullup notwendig. In den meisten Fällen genügt es, den ATmega328-internen Pullup für den jeweiligen INPUT Pin einzuschalten.


Muss dieser Widerstand auch beim Reset-PIN eingefügt werden? Oder ist es hier nicht von Bedeutung, wenn der Atmel-PIN1 im Normalzustand (= Reset-Taster offen) sozusagen „in der Luft hängt“ bzw eben kein definiertes Potential hat? Muss dieser Widerstand rein, oder nicht?

Der externe Widerstand ist schon vorhanden (s.o.) Wenn er nicht vorhanden wäre, gibt es trotzdem noch den µC-internen Pullup am RESET laut ATmega328 Datenblatt von 30kΩ - 60kΩ, der immer am RESET PIN eingeschaltet ist. Der RESET hängt also nie in der Luft. Ein zusätzlicher externer Widerstand am RESET verbessert die jedoch Störfestigkeit.

Gruß
Searcher

Andi#87
06.02.2019, 17:02
Danke für Eure Antworten. Mir ist das bekannt mit PullUp, extern, intern usw. Ich war mir nur unsicher, ob der Reset-PIN möglicherweise eine Ausnahme bildet.

Andi

HaWe
06.02.2019, 17:31
Wie schon so oft: RTFM.

ganz genau, oberallgeier, RTFM !

Beim Arduino sind für den Reset Pin keine (weiteren) Pullups nötig, wie Searcher ganz richtig schrieb: der Pin ist gebrauchsfertig herausgeführt und wird zum Reset aktiv, sobald er mit GND verbunden wird.
Er hängt auch nicht in der Luft, sodass man jederzeit befürchten müsste, dass er ungewollt zufällig aktiv werden könnte.
(Gewöhn' dich endlich mal an die Erkenntnis, dass Arduinos keine nackten AVRs sind!)

http://forum.arduino.cc/index.php?topic=273932.msg1930392#msg1930392

IF you use a real Arduino board, RESETR will be on one of the header pins. The board will have the button (normally open) & the required pull-up resistor. Just take a wire from the RESET pin and a wire from GND, the ground (common.)
Use a pushbutton also normally open and thee two leads. Now, the external button works like the one on the board - no code.

https://store.arduino.cc/arduino-uno-rev3

Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board.

Das gilt übrg. nicht nur für den Uno, sondern für alle Arduino (-kompatiblen) Boards, also auch für den Mega2560 und die ARM Cortex Boards Due, M0 u.v.a.m.

Gnom67
07.02.2019, 01:04
Naja, die erste Antwort kann ja auch nicht immer gleich die zutreffende sein... Und je mehr Leute sich beteiligen, desto näher kommt man nicht nur der richtigen Lösung, sondern auch einem angenehmen Umgangston... ;)
Erstaunlicherweise findet man in quasi allen Beschreibungen einer Minimalbeschaltung des 328 einen externen Pullup an Reset. Laut Datenblatt ist dieser allerdings (wie bereits oben von Searcher richtig gesagt) gar nicht erforderlich. Ich hab noch keinen rohen 328 beschaltet, aber für diverse Attinys kann ich sagen, der externe Pullup ist nicht nötig.

Ceos
07.02.2019, 07:34
gibt es trotzdem noch den µC-internen Pullup am RESET laut ATmega328 Datenblatt von 30kΩ - 60kΩ, der immer am RESET PIN eingeschaltet ist


Laut Datenblatt ist dieser allerdings (wie bereits oben von Searcher richtig gesagt) gar nicht erforderlich. Ich hab noch keinen rohen 328 beschaltet, aber für diverse Attinys kann ich sagen, der externe Pullup ist nicht nötig.

kannst du mal das Datenblatt linken und die Passage bzw. Seite nennen wo das steht? Ich habs bisher nicht gefunden!

Es gibt interne Pull-Ups, ja und es gibt den Reset Pin den man auch als Ouptut Pin nutzen kann ... aber die Kombination "Reset Pin", "Pull Up" und "immer aktiviert". Habe ich bisher nicht gefunden, das würde mich jetzt stark interessieren.

Den Reset Pin mal ohne Pullup zu betreiben habe ich bei einem Atmega mal ausversehen gemacht und mich dann wundern müssen warum random im Betrieb den Controller abschmierte. Der Layouter hatte von dem vorhergehenden Projekt abgeguckt und den Widerstand einfach weggelassen, weil in dem vorhergehenden Projekt schlicht der Reset Pin per Fuse abgestellt worden war. Also ich konnte meinen Controller nicht ohne PullUp lassen.


PS: Die erste Antwort war ja nicht unbedingt falsch, aber sie ging von einer anderen Fragestellugn aus ...

wenn der Atmel-PIN1 im Normalzustand (= Reset-Taster offen) sozusagen „in der Luft hängt“ bzw eben kein definiertes Potential hat? Muss dieser Widerstand rein, oder nicht?

darin wurde explizit nach dem atmega pin und NICHT dem board gefragt, also war (solange mir keiner den Part mit Reset + internem PullUp zeigt) absolut richtig

Searcher
07.02.2019, 08:10
Es gibt interne Pull-Ups, ja und es gibt den Reset Pin den man auch als Ouptut Pin nutzen kann ... aber die Kombination "Reset Pin", "Pull Up" und "immer aktiviert". Habe ich bisher nicht gefunden, das würde mich jetzt stark interessieren.


Hallo Ceos,
aus dem Datenblatt kann ich das auch nicht so eindeutig herauslesen. Ich habe auch noch nicht so richtig die "Overriding Signals" for "Alternative Port Functions" verstanden. Könnte da vielleicht aus dem Datenblatt ableitbar sein. Meine Aussage "immer aktiv" gilt nur, wenn die RESET Funktion auch per Fuse eingaschaltet ist. Wenn sie nicht eingeschaltet ist, weiß ich nicht, ob der "Reset Pullup" auf dem entsprechenden Pin aktiviert ist.

Kurz:

The reset line has an internal pull-up resistor. If the environment is noisy, it can be insufficient and reset may occur sporadically. Refer to the device datasheet for the value of the pull-up resistor that must beused for specific devices.

Kapitel 3 aus: AVR042: AVR Hardware Design Considerations
http://ww1.microchip.com/downloads/en/appnotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf

Gruß
Searcher

Ceos
07.02.2019, 08:42
Oh wow, man lernt nie aus :)

Aber schon ziemlich kacke dass das in den Design Referenzen und nirgendwo im Manual oder Datenblatt steht :(

Wer ließt schon Application Notes XD

und das beobachtete Phänomen trat i.d.R. auch nur unter erschwerten ESD/EMI Situationen auf, dann aber ziemlich zuverlässig!

Also sollte man korrekterweise Formulieren, dass der externe PullUp nicht wotwendig ist, solange man sicher geht dass die Schaltung gut vor EMI gesichert wird. Besser ist es ihn dennoch einzuplanen oder auf den Reset Pin per Fuse zu verzichten sollte, wenn man ohne REset Pin in der Lage ist den Chip weiterhin zu programmieren (mit ISP alleine kann man glaube ich nicht darauf verzichten, da braucht man schon mindestens PDI, bei dem die Clock der REset ist aber die gibts nicht bei Tinys soweit ich weis)

Um die "erschwerten Bedingungen" mal näher zu erläutern, der Controller steuerte einen 15V FET der wiederum über einen mikro Trafo ein HV Puls erzeugte ... es braucht also nicht unbedingt viel ... gibt es für den PullUp eigentlich irgendwo auch definierte Werte? bei den Pins schwanken die Angaben ja zwischen 20k und 80kOhm

Gnom67
07.02.2019, 09:31
Einige Infos findet man im Datenblatt (Atmega328P, DS40002061A / 2018 (http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf)).

- Kapitel 11.2 Reset Sources: Schaltschema mit eingezeichnetem Pullup-Widerstand
- Kapitel 25.3 Physical Interface: Hier heißt es, dass für debugWIRE der Pullup an RESET nicht kleiner als 10 K sein darf. Außerdem steht da, dass kein Pullup notwendig ist und dass ein direkter Anschluss an Vcc nicht funktioniert. Daraus muss man schließen, dass es einen internen Pullup > 10 K gibt.
- Kapitel 30.2 DC Characteristics: Tabelle, Rrst = 30-60 KOhm.

Die erste Antwort bezieht sich auf das Kapitel 14.2, in dem es um IO-Pins geht. Dort heißt es in 14.3.2: When the RSTDISBL Fuse is programmed, this pin functions as a normal I/O pin, and the part will have to rely on Power-on Reset and Brown-out Reset as its reset sources. When the RSTDISBL Fuse is unprogrammed, the reset circuitry is connected to the pin, and the pin can not be used as an I/O pin.

Der Pin wird also je nach Verwengung (Fuse) zwischen den Schlatkreisen für Reset und I/O umgelegt. Wenn der Pin als Reset geschaltet ist, gilt die im gleichen Kapitel weiter vornegetroffene Empfehlung für unconnected Pins offenbar nicht. Die Pegel von I/O und Reset-Funktion würden sich ja sonst auch gegenseitig in die Quere kommen. Zumal die programmierbaren internen Pullups mit 20-50 KOhm in ähnlicher Größenordnung liegen wie der Pullup des Reset.

Nichtsdestotrotz sollte man dann wohl auch die Application-Note beherzigen und in störanfälligen Umgebungen mit einem externen Pullup nachhelfen. (Deshalb ist wohl praktisch auch auf allen Boards und in allen Beschaltungsamleitungen der Pullap drin - sicher ist sicher.) Grundsätzlich ist der Pulluip aber nicht zwingend notwendig.

HaWe
07.02.2019, 09:46
welchen Teil von
"Beim Arduino (Uno) müssen am Reset Pin keine Pullups angeschlossen werden"
habt ihr nicht verstanden?
Es ist dort bereits alles fix und fertig verkabelt!

Gnom67
07.02.2019, 09:54
Ich glaube, das haben wir alle verstanden. Offenbar interessieren sich hier aber ein paar Leute für die tieferen Hintergründe.
Kein Grund, schroff zu werden...

Ceos
07.02.2019, 09:57
@Gnom ... ich wollte grade Fragen ob wir hier 2 unterschiedliche Dokumente vor uns haben, bis mir aufgefallen ist, dass es ja ein ECHTES Datasheet gibt aus dem du zitierst :)

Ich habe bisher immer nur das summarized manual und das ausführliche manual gesehen und dachte dass IST das datasheet XD

@HaWe ... ich habe die Zeile in meinem Post zitiert die darauf hindeutete dass es darum ging was passiert wenn der "PIN OFFEN IST" abseits der Board Beschaltung

HaWe
07.02.2019, 10:01
"Nichtsdestotrotz sollte man dann wohl auch die Application-Note beherzigen und in störanfälligen Umgebungen mit einem externen Pullup nachhelfen."


...
Ich glaube, das haben wir alle verstanden. Offenbar interessieren sich hier aber ein paar Leute für die tieferen Hintergründe.
Kein Grund, schroff zu werden...

welche Hintergründe?
Der Pullup am Reset-Pin samt Reset-Button ist bereits auf dem Arduino-Board fest verschaltet!
Alles weitere über den nackten AVR-Chip ist hier komplett irrelevant oder falsch und verwirrt nur!

Gnom67
07.02.2019, 10:02
[...]weil in dem vorhergehenden Projekt schlicht der Reset Pin per Fuse abgestellt worden war.

Die Fuse-Settings für die Pullups sind ziemlich undurchsichtig. Ich bin davon ausgegangen, dass die sich nur auf I/O-Pins beziehen. Kann man den Reset-Pullup wirklich per Fuse abschalten? Welche Fuse ist das?

Ceos
07.02.2019, 10:04
Alles weitere über den nackten AVR-Chip ist hier komplett irrelevant oder falsch und verwirrt nur!

Wenn man die Frage genauer ließt, klingt das anders ... aber versteh du was du willst und antworte darauf ... ich verstehe was anderes und antworte etwas anderes und gut ist es ....

es irreführend zu nennen obligt dem Fragesteller und nicht dir, danke :)

- - - Aktualisiert - - -


Kann man den Reset-Pullup wirklich per Fuse abschalten?

Den Pullup nicht, aber man kann den Reset Pin abschalten (ich vermute damit auch den PullUp)

Aber man muss beachten dass man dann seine Möglichkeiten den Chip zu programmieren einschränkt! (Evtl. sogar den Chip zer-FUSED und dann hilft nur HVPP zum Retten)

HaWe
07.02.2019, 10:06
Hallo,
am UNO ist PIN1 des Atmel 328 mit der Reset-Funktion versehen (gegen GND). Ist hier auch ein PullUp-Widerstand gegen +5V notwendig?
Die DigitalPIN werden ja zB gegen GND geschaltet, wobei unbedingt ein PullUp-Widerstand gegen +5V nötig ist. Muss dieser Widerstand auch beim Reset-PIN eingefügt werden? Oder ist es hier nicht von Bedeutung, wenn der Atmel-PIN1 im Normalzustand (= Reset-Taster offen) sozusagen „in der Luft hängt“ bzw eben kein definiertes Potential hat? Muss dieser Widerstand rein, oder nicht?

Andi

die Frage bezieht sich auf den Arduino Uno, und da hängt der Reset-Pin NIE in der "Luft", egal in welchen Zustand der AVR ist, denn er hat immer einen Pullup fest auf der Platine verlötet.
Also wird nicht noch ein zusätzlicher Pullup benötigt.
Siehe oben verlinkte Arduino-Quellen.
Daher sind hier alle anderen Antworten über zusätzlich nötge Pullups falsch und/oder verwirrend.

Gnom67
07.02.2019, 10:16
HaWe, es mag für die ursprüngliche Fragestellung irrelevant sein. Das verbietet uns aber nicht, weiter darüber zu diskutieren, wieso, weshalb, warum (du weißt ja, das Sesamstraßenlied: "... wer nicht fragt bleibt dumm") der Atmega oder der Arduino einen Pulluip braucht oder nicht. Wenn es dich verwirrt, musst du diesen Thread ja nicht weiter verfolgen. Aber hör bitte auf, anderen vorschreiben zu wollen, über was sie diskutieren.

@Ceos: Das summarized Datasheet ist nicht sehr ergiebig... es gibt auf der Microchip-Website zu allen µC die kompletten Datasheets. Die sind schon sehr hilfreich.

- - - Aktualisiert - - -


Den Pullup nicht, aber man kann den Reset Pin abschalten (ich vermute damit auch den PullUp)

Man kann ihn wohl per Fuse zu eine I/O-Pin machen. Aber dann dürfte er keine Resets mehr aufgrund von Störeinflüssen ausführen. Insofern ist mir dein Beitrag #8 nicht ganz nachvollziehbar.

HaWe
07.02.2019, 10:16
HaWe, es mag für die ursprüngliche Fragestellung irrelevant sein. Das verbietet uns aber nicht, weiter darüber zu diskutieren, wieso, weshalb, warum (du weißt ja, das Sesamstraßenlied: "... wer nicht fragt bleibt dumm") der Atmega oder der Arduino einen Pulluip braucht oder nicht. Wenn es dich verwirrt, musst du diesen Thread ja nicht weiter verfolgen. Aber hör bitte auf, anderen vorschreiben zu wollen, über was sie diskutieren.

@Ceos: Das summarized Datasheet ist nicht sehr ergiebig... es gibt auf der Microchip-Website zu allen µC die kompletten Datasheets. Die sind schon sehr hilfreich.

deine - und andere - Posts sind off-topic, weil sie sich nicht auf das Topic "Reset-Pin am Arduino Uno" beziehen. Wenn du/ihr fachsimpeln wollt über Atmel, Gott, das Universum, und den ganzen Rest, dann macht doch einen neuen Thread zum nackten Atmel auf.

Für die Topic-Frage ist nur richtig :
"Nein, keine zusätzlichen Pullus nötig"

- eine andere Antwort ist falsch, abwegig und im Sinne der Topic-Frage verwirrend, gerade wenn DU (und andere) DOCH weitere Pullups "empfehlt", was aber Unsinn ist..

Manf
07.02.2019, 10:23
Die Antwort wurde gefunden und der Fragesteller wurde zufriedengestellt.
Weitere Diskussionen können tatsächlich an einer weiteren Stelle geführt werden.
Schade wenn es in Erweiterungen des Themas zu auseinandersetzungen kommt.
Vielleicht kann man dann in der weiterführenden Diskussion auch analysieren warum es nicht friedlich und konstruktiv geht.