Forum: Mikrocontroller und Digitale Elektronik Dimensionierung Pull-Up


von Sören (Gast)


Lesenswert?

Hallo,

nachdem ich einige Beiträge zu diesem Thema gelesen habe, bin ich immer 
noch nicht schlauer. Meistens werden Daumenwerte angegeben, ohne weitere 
Begründung.
Der Beitrag hier (Beitrag "Pullup Widerstand - berechnen?" ganz am 
Ende) beschreibt, wie mein den Pull-Up berechnen kann, allerdings 
bleiben auch hier Fragen offen.

Meine Aufgabe:
An einen I/O eines ATmega-Controllers soll über eine 2-3m lange Leitung 
ein Schalter angeschlossen und abgefragt werden (Polling), das möglichst 
stromsparend. Also muss der Pull-Up Widerstand möglichst groß sein. Aber 
eben nicht zu groß, um Störungen und falsche Werte zu vermeiden.

Der ATmega wird mit 3,3V betrieben, der Leakage-Strom des Eingangs ist 
mit max. 1uA angegeben. Ein High-Pegel wird ab 0,6 * VCC erkannt.

Mit der Rechnung entsprechend dem oben angegebenen Link und einer min. 
Betriebsspannung von 3,0V komme ich auf
R = (3,0V - 3,0 V * 0,6) / 1uA = 1,2MOhm
Das erscheint mir doch etwas viel.

Fragen:

1. Um welchen Faktor sollte der Querstrom durch den Pull-Up größer als 
der Leakage-Strom des I/Os sein?
Welcher Pull-Up ergibt sich daraus?

2. Sind bei einer Leitungslänge von 2-3 m schon Störungen zu erwarten?
Blitzeinschläge und ähnliche singuläre Ereignisse will ich mal außen vor 
lassen.

3. Ist es notwendig, am Eingang des uC ein RC-Glied vorzusehen? Wie wäre 
das zu dimensionieren?

Vielen Dank schon mal.
Gruß
Sören

von Peter D. (peda)


Lesenswert?

Sören schrieb:
> das möglichst
> stromsparend. Also muss der Pull-Up Widerstand möglichst groß sein.

Nein.
Er muß nur so groß sein, daß der Strombedarf keine Rolle mehr spielt.
D.h. wieviel Ah hat Deine Batterie und wie lange soll sie halten und 
welche Lasten müssen sonst noch versorgt werden.

von Sören (Gast)


Lesenswert?

Das ist natürlich ein anderer Aspekt, den man sich anschauen kann.
Wenn nichts zu tun ist, beträgt die typische Stromaufnahme der Schaltung 
laut Datenblättern weniger als 10uA. Da spielt der Strom durch einen 
Pull-Up Widerstand eine große Rolle.

Die gestellten Fragen hätte ich aber gerne unabhängig davon beantwortet.
Vielleicht anders formuliert: Wie groß darf der Pull-Up maximal sein?

von Felix A. (davinciclaude)


Lesenswert?

https://en.m.wikipedia.org/wiki/Wetting_current

Strom fliesst ja nur bei betätigtem Taster. Das sind ja jeweils nur 
Sekundenbruchteile.
1k und gut is.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Sören schrieb:
> Da spielt der Strom durch einen Pull-Up Widerstand eine große Rolle.

Aber nur, wenn der Taster auch gedrückt wird. Im Ruhezustand ist das 
ziemlich schnuppe, ob der Pullup 1k, 10k oder 100k hat. Der Strom am 
(wesentlich hochohmigeren) µC-Eingang ist in allen Fällen annähernd 
gleich.

von Soul E. (Gast)


Lesenswert?

Claude D. schrieb:

> https://en.m.wikipedia.org/wiki/Wetting_current

Da kann man sich behelfen, indem man direkt an den Taster einen 
Kondensator (ca 100nF) schaltet. Der wird vom Pullup aufgeladen und 
entlädt sich bei Betätigung schlagartig über die Kontakte.

So lassen sich >10 mA wetting current bei einigen 100k Pullup erreichen.

von Sören (Gast)


Lesenswert?

Die benutzten Schalter sind im Ruhezustand geschlossen, d.h. die meiste 
Zeit fließt Strom. Und nein, ich kann die Schalter nicht austauschen.
Außerdem wird nicht nur ein Schalter angeschlossen sondern vier. 
Optional auch noch weitere.
Da jeder Schalter einem Input des uC zugeordnet ist, benötigt jeder 
seinen eigenen Pull-Up. Bei der vorliegenden Konfiguration mit 
mindestens vier Schaltern ergibt sich deshalb ein vierfacher Ruhestrom.

von Felix A. (davinciclaude)


Lesenswert?

Das ist noch eine wichtige Info =)
- Pull up an uC-Ausgang und nur speisen, wenn du die Schalter abfragst?
- Was bei zu kleinem Pull up effektiv am Eingang passiert/für Störungen 
auftreten können, weiss ich nicht. Aber vielleicht den Schalter in 
10..50 ms Intervallen abfragen und nur akzeptieren, wenn 3..10 x 
hintereinander ein High-Pegel erkannt wurde?

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Sören schrieb:
> Die benutzten Schalter sind im Ruhezustand geschlossen, d.h. die meiste
> Zeit fließt Strom.

Falsches Design, wenn du schon stromsparend arbeiten willst!
Aber gut, wenn schon der Schalter fast dauerhaft zu ist, dann ist auch 
die Störbeeinflussung gering und nicht vom Pullup abhängig.
Dann kannst du genauso gut einen relativ hochohmigen Pullup (10k...100k, 
je nach 'Dreck' in der Umgebung) wählen und den Taster per SW ordentlich 
entprellen.

von HildeK (Gast)


Lesenswert?

Sören schrieb:
> Fragen:
Sorry, auf die bin ich natürlich nicht eingegangen, weil das Problem 
sich ja konkretisiert hatte.

> 1. Um welchen Faktor sollte der Querstrom durch den Pull-Up größer als
> der Leakage-Strom des I/Os sein?
> Welcher Pull-Up ergibt sich daraus?
Der Leakage-Strom interessiert nur drittrangig - nur wenn er erheblich 
größer ist als bei üblichen CMOS-Eingängen.
Wichtig ist der durch den Pull resultierende Eingangswiderstand und den 
wählt man so klein wie möglich bzw. nötig. Dagegen müsste nämlich eine 
eingekoppelte Störung 'anstinken'. Bei 'dreckiger' Umgebung, bei langen 
Leitungen und bei funktionalen Pins (irgendwelche offenen Eingänge zu 
beruhigen meine ich hier nicht) wähle ich eher was im Bereich von 
0.5-5mA Querstrom, also 1k - 10k in einem 5V-System.
Eine Datenleitung, die nur beim CLK-Flankenwechsel abgetastet wird, ist 
weniger kritisch als ein asynchroner Reset!

> 2. Sind bei einer Leitungslänge von 2-3 m schon Störungen zu erwarten?
> Blitzeinschläge und ähnliche singuläre Ereignisse will ich mal außen vor
> lassen.
Ja, damit musst du rechnen: Einschalten eines Trafos in der Nähe, ev. 
Schaltnetzteile, Leuchtstofflampen usw. produzieren Störungen.

> 3. Ist es notwendig, am Eingang des uC ein RC-Glied vorzusehen? Wie wäre
> das zu dimensionieren?
Das hilft, hat aber auch Nachteile. Der Schalter sollte z.B. ein C nicht 
hart kurzschließen, das RC-Glied sollte die Eingangsspezifikationen 
(spezielle die max. zulässige Anstiegszeit) des Eingangs nicht 
verletzten.

von Stefan F. (Gast)


Lesenswert?

> Meistens werden Daumenwerte angegeben

Ohne genaue Angaben von Dir kann man auch keine genauen Werte empfehlen. 
Es fängt dich schon damit an, daß du keinerlei Angaben zu dem 
Störfeldern gemacht hast, denen die Schaltung ausgesetzt ist.

> Um welchen Faktor sollte der Querstrom durch den Pull-Up
> größer als der Leakage-Strom des I/Os sein?

Die Bedingung ist, dass die Eingangsspannung aus Siche des µC gültige 
High/Low Pegel haben muss. Es zählt also der Spannungsabfall am 
Widerstand multipliziert mit dem Leckstrom.

Aber dabei sind die elektromagnetischen Störfelder noch nicht 
berücksichtigt.

> Sind bei einer Leitungslänge von 2-3 m schon Störungen zu erwarten?

Sicher, selbst bei 1cm sind Sgörungen zu erwarten. Sie sind immer und 
überall. Die Frage ist nur, wie stark sie sich auf das Nutzsignal 
auswirken.

Ein Pull-Up alleine ist übrings nicht ausreichend, du solltest außerdem 
hochfrequenze Signale mit einem Kondensator kurzschließen. Ich halte es 
allerdings nicht für Sinnvoll, hier zu wiederholen, was man auch in 10 
Sekunden mit Google finden kann.

> Ist es notwendig, am Eingang des uC ein RC-Glied vorzusehen?

Zumindest ist es empfehlenswert.

> Wie wäre das zu dimensionieren?

Indem man eine allgemein bewährte Schaltung 1:1 nachbaut, oder aufgrund 
eigener Erfahrungen nachbessert. Da gibt es keine überall gültige 
ideal-Lösung. Jedes Bauteil verändert auch das Nutzsignal und nur kennst 
die Anforderungen. Zum Beispiel ist es von ganz erheblicher Bedeutung, 
wie schnell ein Tastendruck erkannt werden muss und ob es zulässig ist, 
kurze Tastendrücke zu ignorieren. Von welchen Zeiten reden wir hier?

Strom sparen kannst du, indem Du die Pull-Up Widerstände nur bei Bedarf 
(während der Abfrage) einschaltest und die Abfrage z.B. nur einmal alle 
100ms machst.

von M.A. S. (mse2)


Lesenswert?

Sören schrieb:
> Die benutzten Schalter sind im Ruhezustand geschlossen, d.h. die meiste
> Zeit fließt Strom. Und nein, ich kann die Schalter nicht austauschen.
Das ist natürlich übel.

Ich finde, das hier ist dabei der beste Weg:
Claude D. schrieb:
> - Pull up an uC-Ausgang und nur speisen, wenn du die Schalter abfragst?

Sören schrieb:
> Die gestellten Fragen hätte ich aber gerne unabhängig davon beantwortet.
> Vielleicht anders formuliert: Wie groß darf der Pull-Up maximal sein?
Nun ja, die Frage solltest Du Dir mit Hilfe des Datenblattes selbst 
beantworten können:

- Finde den maximalen Leckstrom heraus (unter ungünstigsten Umständen: 
Temperatur, Exemplarsteuung, Alterung)
- sieh Dir an, ab welchem Spannungsabfall der entsprechende Logikpegel 
nicht mehr erkannt würde
- dimensioniere den Widerstand danach (wobei ich einen 
Sicherheitsabstand einbauen würde, wobei die Frage nach dessen Größe 
eher religiöser Natur ist).


PS: Und ja, zwei bis drei Meter Leitungslänge sind durchaus 
störrelevant. Evtl. kannst Du hier mit Verdrillen und Schirmen ein wenig 
Entspannung schaffen.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Sören schrieb:
> Die benutzten Schalter sind im Ruhezustand geschlossen, d.h. die meiste
> Zeit fließt Strom.

nur den du zulässt!

dein pullup kann kann aus einem Port gepeist werden der nur ab und an 
mal zum Taster prüfen aktiviert wird, dann fliesst auch kein dauerhafter 
Strom und sobald Taster ins Spiel kommen braucht es auch keine ständige 
µs Verfügbarkeit.

von Sören (Gast)


Lesenswert?

Erst mal vielen Dank für den Input.
Den Pull-Up nur einzuschalten, wenn tatsächlich abgefragt wird, ist eine 
gute Idee.
Ansonsten werde ich mich jetzt noch zum Thema Störsicherheit bzw. 
Schutzbeschaltung schlau machen.

von Joachim B. (jar)


Lesenswert?

ich frage meine Taster alle 10ms ab, je nach Port dauert das <1µs bis 
100µs

damit ist der pullup im schlimmsten Fall schon mal 9,9ms aus und nur 
0,1ms an!

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> und nur 0,1ms an!

Wenn man so schnell abfragt, kann man allerdings keinen nennenswerten 
Kondensator mehr verwenden, der HF abblockt. Kurzzeitige Störungen 
müsste dann die Software abfangen. Länger andauernde Störungen könnten 
ein Problem werden - falls überhaupt vorhanden.

von Joachim B. (jar)


Lesenswert?

Stefan U. schrieb:
>> und nur 0,1ms an!
>
> Wenn man so schnell abfragt, kann man allerdings keinen nennenswerten
> Kondensator mehr verwenden, der HF abblockt. Kurzzeitige Störungen
> müsste dann die Software abfangen.

logisch PeDas Entprellroutine bullet proof, deswegen 10ms Raster

ausserdem wie will man langsam einen Port befragen, das geht eh im CPU 
Tempo oder I2C Bustempo

Die Chance das genau 4 Pegel zur gleichen µC Lesezeit HF gestört sind 
erscheint mir unglaubwürdig.

: Bearbeitet durch User
von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Hatte ab der Hälfte 'ff' eingeschaltet :/

Spricht was dagegen, wie schon vorgeschlagen, die Eingänge gezielt 
abzufragen?
So, daß man den nötigen PullUp 'nur wenn nötig' einschaltet?
Im Ruhezustand werden die Eingänge auf LOW OUT geschaltet - da die 
Taster geschlossen auf GND hängen, passiert nix, es fließt kein Strom.
Alle paar ms wird der Pin auf IN PullUP geschaltet und der Pegel 
erfasst.
Wenn High, ist der Taster betätigt.
Danach wieder LOW OUT (die Reihenfolge ist nicht ganz unwichtig ob 
zuerst DDR oder Port gewechselt wird).

MfG

von Joachim B. (jar)


Lesenswert?

Patrick J. schrieb:
> Spricht was dagegen, wie schon vorgeschlagen, die Eingänge gezielt
> abzufragen?
> So, daß man den nötigen PullUp 'nur wenn nötig' einschaltet?

nichts

von oldeurope O. (Gast)


Lesenswert?

Patrick J. schrieb:
> Spricht was dagegen, wie schon vorgeschlagen, die Eingänge gezielt
> abzufragen?

Durch Kapazitäten kann es passieren, dass der HIGH-Pegel
zum Abfragezeitpunkt noch nicht erreicht ist.
Softwaremässig muss man da etwas machen.
Das macht die Software langsamer.

Du kannst auch nicht mal eben mit dem Voltmeter prüfen
ob der Schalter oder Taster offen ist.

Bei einem niederohmigen Pullup z.B. 1K kannst Du Dir eine
LED mit einem Vorwiderstand z.B. 4K7 parallel zum Schalter
oder Taster erlauben was auch hilfreich sein kann.

LG
old.

von MaWin (Gast)


Lesenswert?

Sören schrieb:
> bin ich immer noch nicht schlauer.

Ts ts.

Die 1M2 sind schon richtig, wenn auch der leakage Strom von Schalter und 
Zuleitung so gering wäre.

Eine dreckige Platine lässt aber mehr als 1uA fliessen.

Also nimmt man meist zur Sicherheit einen 10 mal höheren Strom bzw. 10 
mal kleineren pull up. Die 90k des internen pull up passen schon.

Man muss sie ja nur zur Auswertezeit einschalten, ausserhalb der Zeit 
können die Eingänge sogar auf low Ausgang geschaltet werden und brauchen 
0 uA.

von oldeurope O. (Gast)


Lesenswert?

MaWin schrieb:
> können die Eingänge sogar auf low Ausgang geschaltet

Wie?
Bisher kenne ich das so, dass man im setup festlegen
muss ob INPUT_PULLUP oder OUTPUT.

LG
old.

von Joachim B. (jar)


Lesenswert?

CO2 ist ihm N. schrieb:
> MaWin schrieb:
>> können die Eingänge sogar auf low Ausgang geschaltet
>
> Wie?
> Bisher kenne ich das so, dass man im setup festlegen
> muss ob INPUT_PULLUP oder OUTPUT.
>
> LG
> old.

kann doch jederzeit umprogrammiert werden, nicht nur im setup, also im 
setup Ausgang low, und kurz vor der Tasterabfrage auf high setzen, 
danach wieder auf low.

Das hat mit dem setup sowenig zu tun wie Äpfel und Birnen, obwohl beides 
Obst ist.

von oldeurope O. (Gast)


Lesenswert?

Joachim B. schrieb:
> kurz vor der Tasterabfrage auf high setzen

nö, auf INPUT_PULLUP.
Ob das geht?

LG
old.

Beitrag #5036080 wurde von einem Moderator gelöscht.
von Joachim B. (jar)


Lesenswert?

CO2 ist ihm N. schrieb:
> nö, auf INPUT_PULLUP.
> Ob das geht?

quark lese den Thread und verwirre nicht die Leute!

Es ging um externen pullup mit definierten Strömen die niederohmiger 
sind als die internen pullups und um Strom zu sparen durch einen 2ten 
Port gespeist werden, nicht den Inputport der abfragt!

[Beleidigungen entfernt - Mod.]

: Bearbeitet durch Moderator
von oldeurope O. (Gast)


Lesenswert?

MaWin schrieb:
> Die 90k des internen pull up passen schon.
>
> Man muss sie ja nur zur Auswertezeit einschalten

Darauf bezieht sich meine Frage.

LG
old.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
> MaWin schrieb:
>> Die 90k des internen pull up passen schon.
>>
>> Man muss sie ja nur zur Auswertezeit einschalten
>
> Darauf bezieht sich meine Frage.

Dann eben zweistufig einschalten: erst den Pullup, Controller wieder
schlafen legen, ein paar Millisekunden später abfragen und Pullup
wieder ausschalten.

Immer noch besser, als ihn die ganze Zeit lang Strom ziehen lassen.

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:
> erst den Pullup

Noch habe ich keine Ahnung wie man den internen
Pullup in der void loop() ein- und ausschalten kann.
https://playground.arduino.cc/Deutsch/Eingang


OT: Warum wurde Beitrag #5036080 (nicht von mir verfasst) gelöscht?
Wenn überhaupt hätte es Beitrag #5036086, definitiv unter der 
Gürtellinie,
erwischen müssen.

LG
old.

von Stefan F. (Gast)


Lesenswert?

> Noch habe ich keine Ahnung wie man den internen
> Pullup in der void loop() ein- und ausschalten kann.

Das ist eine dumme Frage: Antwort: natürlich genau so, wie in der 
setup() Routine.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
> Noch habe ich keine Ahnung wie man den internen
> Pullup in der void loop() ein- und ausschalten kann.

Steht doch dort: der Unterschied ist eben, ob du das Ding als INPUT
oder INPUT_PULLUP festlegst.

Ich würde das allerdings in einem Timer-Interrupt machen, habe aber
keine Ahnung, wie man sowas im Arduino-Framework anzettelt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Das ist eine dumme Frage

Es gibt keine dummen Fragen, sondern nur dumme Antworten. ;-)  (War
deine allerdings nicht.)

von S. R. (svenska)


Lesenswert?

Jörg W. schrieb:
> Es gibt keine dummen Fragen, sondern nur dumme Antworten. ;-)

Es gibt allerdings Fragen, die mehr über den Fragesteller aussagen, als 
derselbige glaubt. ;-)

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:
> Steht doch dort

Dann schreibe doch mal bitte einen Beispielsketch.
Schalter an Eingang D2 schaltet den Pullup an Eingang
D12 zu und weg.
Danke.


LG
old.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
> Dann schreibe doch mal bitte einen Beispielsketch dafür.

Warum ich?

Du hast doch hier den Arduino überhaupt ins Spiel gebracht.  Der TE
hat ja offenbar keinen.

Ich finde es wirklich gut, dass du deinen Horizont erweiterst: LTspice,
jetzt auch Controllerprogrammierung.  Aber wenn deine Frage deutlich
von dem abweicht, worums im Thread geht, dann besser einen separaten
Thread öffnen.  Das Problem des TEs war es halt nicht, wie man das in
einer Arduino-Umgebung zum Laufen bekommt, sondern wie man es "bare
metal" implementiert.

von MaWin (Gast)


Lesenswert?

Jörg W. schrieb:
> Stefan U. schrieb:
> Das ist eine dumme Frage
>
> Es gibt keine dummen Fragen, sondern nur dumme Antworten. ;-)  (War
> deine allerdings nicht.)

Natürlich gibt es dumme Fragen, der Spruch wird also auch die ewige 
Wiederholung nicht wahrer.

Z.B. diejenigen, die man an einer Weggabelung einem der beiden Wärter 
stellen muss, bei denen man weiss dass einer immer lügt und der andere 
immer die Wahrheit sagt, bloss man weiss nicht welcher, um den richtigen 
Weg erfragen zu können, oder eben bei dummen Fragen trotzdem nichts zu 
wissen.

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:
> Warum ich?

Weil ich den Eindruck habe, dass Du das kannst.

Jörg W. schrieb:
> Aber wenn deine Frage deutlich
> von dem abweicht, worums im Thread geht

Der Beitrag von MaWin lässt die Frage halt aufkommen.

Jörg W. schrieb:
> LTspice

Bezüglich LTspice ist man in diesem Forum um Welten hilfsbereiter.

LG
old.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
>> Warum ich?
>
> Weil ich den Eindruck habe, dass Du das kannst.

Sorry: ich kann zwar Controller hoch und runter programmieren, aber
habe noch nie einen Arduino oder dessen IDE in der Hand gehabt.

Ich müsste mich dafür also genauso einlesen wie du.  Der wesentliche
Hinweis, dass man die Konfiguration eines Pins keineswegs nur während
der Initialisierung (setup) vornehmen kann, sondern auch im laufenden
Betrieb (loop) ändern, wurde dir ja nun mehr als einmal genannt.

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:
> noch nie einen Arduino oder dessen IDE in der Hand gehabt

Mach Dir nichts draus. Die ONled braucht schon mehr Strom
als alle INPUT_PULLUPs zusammen. Daher ist das eh nur
von akademischem Interesse.

Jörg W. schrieb:
> Immer noch besser, als ihn die ganze Zeit lang Strom ziehen lassen.

[ironie] ganz sicher. [/ironie]

LG
old.

von Joachim B. (jar)


Lesenswert?

CO2 ist ihm N. schrieb:
> Mach Dir nichts draus. Die ONled braucht schon mehr Strom
> als alle INPUT_PULLUPs zusammen.

nicht bei mir, die ONled ist das erste was ich runterwerfe oder ihren 
Rv.

Jörg W. schrieb:
> Sorry: ich kann zwar Controller hoch und runter programmieren, aber
> habe noch nie einen Arduino

da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du 
musst nicht mal die Arduino Schreibweise bemühen.

entweder
PORTB |= (1<<4);

oder
digitalWrite(12, HIGH); // 12 für D12 auf dem ATmega328p PB4

für den internen pullup

DDR auf out, Port auf high setzt den pullup.

Arduino_sprech
pinMode(pin, mode)
Parameters

pin: the number of the pin whose mode you wish to set

mode: INPUT, OUTPUT, or INPUT_PULLUP. (see the digital pins page for a 
more complete description of the functionality.)

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Joachim B. schrieb:
>> Sorry: ich kann zwar Controller hoch und runter programmieren, aber
>> habe noch nie einen Arduino
>
> da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du
> musst nicht mal die Arduino Schreibweise bemühen.

Richtig, aber Darius wollte ja gern, dass ich ihm mit einem Sketch
demonstriere, wie das aussehen soll.  Das kann ich nicht, denn dann
müsste ich mir ja zumindest die Arduino-IDE mal irgendwo installieren
um zu sehen, dass das, was ich poste, auch funktioniert.

Außerdem ist es natürlich nicht Sinn eines Arduino-Sketches, kreuz
und quer wild auf der Hardware herumzuhacken.  Wenn da eine
Abstraktionsschicht dazwischen ist, dann sollte man diese auch
benutzen bzw. nur in begründeten Fällen die Abstraktion beiseite
schieben.

von Joachim B. (jar)


Lesenswert?

Jörg W. schrieb:
> dann sollte man diese auch
> benutzen bzw. nur in begründeten Fällen die Abstraktion beiseite
> schieben.

stimmt! und unterschreibe ich, manchmal übernehme ich meine AVR Studio 
Routinen direkt ist erprobt und stört die IDE nicht, manchmal aus 
Faulheit nutze ich den Arduinoweg und wenn der zu lahm ist gibt es ja 
digitalWriteFast
https://github.com/NicksonYap/digitalWriteFast

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:
> denn dann
> müsste ich mir ja zumindest die Arduino-IDE mal irgendwo installieren
> um zu sehen, dass das, was ich poste, auch funktioniert.

Das ist sehr lobenswert.
Bei dem Vorschlag von "jar" raucht der Atmega bei Tastendruck ab.

LG
old.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
> Bei dem Vorschlag von "jar" raucht der Atmega bei Tastendruck ab.

Nein.  Erstens begrenzen die FETs im Ausgang den Strom sowieso,
zweitens hast du die ganze Zeit nur nicht verstanden, dass es bei
diesem Vorschlag darum ging, einen externen (und niederohmigeren
als den internen) Pullup vorübergehend zum Eingang zuzuschalten,
indem man ihn an einen weiteren (als Ausgang konfigurierten) Pin
des Controllers hängt.

von oldeurope O. (Gast)


Lesenswert?

Jörg W. schrieb:

Jörg W. schrieb:
> Erstens

https://www.rugged-circuits.com/10-ways-to-destroy-an-arduino/

Hallo Moderator,
zum Glück gibt es im www noch Leute die ehrlich sind.
Dieses Forum ist in Sachen mikrocontroller absoluter Müll.




LG
old.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

CO2 ist ihm N. schrieb:
> zum Glück gibt es im www noch Leute die ehrlich sind.

Du meinst, die ihre eigene Lösung promoten (Ruggeduino, wobei der
Link auf eine „Sorry!“-Seite zeigt).

> Dieses Forum ist in Sachen mikrocontroller absoluter Müll.

Du musst es ja wissen.

Ich habe erstens nicht gesagt, dass man einen Kurzschluss eines
Ausgangs nach GND nun unbedingt machen sollte (jenseits der Specs ist
man damit natürlich auf jeden Fall), sondern nur, dass das keineswegs
der sofortige Tod des Kandidaten sein muss, wie du es hingestellt hast.

Zweitens hat das jedoch keiner vorgeschlagen.

Aber Darius, du musst dich hier nicht weiter bewegen, wenn du denkst,
dass du hier schlecht beraten wirst.  Ich würde mich mit dir gewiss
nicht um eine Röhrenschaltung rumstreiten, aber ein gewisses Maß an
Erfahrungen im Umgang mit Mikrocontrollern darfst du mir mittlerweile
ruhig zugestehen.  Ich mach' das seit 17 Jahren hobbymäßig und seit
12 Jahren beruflich.

von Joachim B. (jar)


Lesenswert?

CO2 ist ihm N. schrieb:
> Bei dem Vorschlag von "jar" raucht der Atmega bei Tastendruck ab.

das ist mindestens so falsch wie die angebliche Beleidigung, aber macht 
mal ihr -Klicker

von oldeurope O. (Gast)


Lesenswert?

Joachim B. schrieb:
> CO2 ist ihm N. schrieb:
>> Mach Dir nichts draus. Die ONled braucht schon mehr Strom
>> als alle INPUT_PULLUPs zusammen.
>
> nicht bei mir, die ONled ist das erste was ich runterwerfe oder ihren
> Rv.

Das soll man so natürlch nicht tun und das weiß der User
"jar" sehr genau:

Joachim B. schrieb:
>> aber wozu ist R5 da wo er ist.
>
> Die Grundlast damit die Spannung auch abgeleitet wird

MaWin schrieb:
> Z.B. diejenigen, die man an einer Weggabelung einem der beiden Wärter
> stellen muss, bei denen man weiss dass einer immer lügt und der andere
> immer die Wahrheit sagt, bloss man weiss nicht welcher

Wunderschönes Gleichnis.
Mit der Zeit kennt man hier die Wärter und man erkennt auch ob
eine Antwort gut(gemeint) ist.

LG
old.

von Joachim B. (jar)


Lesenswert?

CO2 ist ihm N. schrieb:
> Das soll man so natürlch nicht tun und das weiß der User
> "jar" sehr genau:

es reicht!
lerne richtig zitieren und dann könnte man dich sogar ernst nehmen

aber so machst du alles nur schlimmer, das bringt dich auch nicht voran.

Links richtig einfügen,

rechte Maustaste auf die Beitragsüberschrift die du zitieren willst, 
z.B. deiner vor meinem:
Beitrag "Re: Dimensionierung Pull-Up"

einfügen und abschicken fertig!

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Sören schrieb:

> Das ist natürlich ein anderer Aspekt, den man sich anschauen kann.
> Wenn nichts zu tun ist, beträgt die typische Stromaufnahme der Schaltung
> laut Datenblättern weniger als 10uA.

Sprich: du willst das Device normalerweise im Tiefschlaf (PowerOff) 
halten. Verständlicher Wunsch, aber das hättest du dann auch explizit so 
beschreiben müssen. Damit wäre nämlich schonmal mindestens die Hälfte 
der Thread-Länge weggefallen...

> Da spielt der Strom durch einen
> Pull-Up Widerstand eine große Rolle.

Ja klar, im "deep sleep" zählt jedes µA der peripheren Beschaltung.

> Die gestellten Fragen hätte ich aber gerne unabhängig davon beantwortet.
> Vielleicht anders formuliert: Wie groß darf der Pull-Up maximal sein?

Die Antwort darauf ist ganz einfach. Der Pullup muß klein genug sein, um 
den Pin sicher auf den logischen H-Pegel zu ziehen. Die Schaltschwelle 
für H-Pegel kann man dem DB des (ungenannten) Devices entnehmen, genauso 
auch dessen Eingangswiderstand (oder, in Absenz: dessen maximalen 
Leckstrom).

Das Problem ist nur: es hilft dir in der Praxis exakt garnix, diesen 
Wert zu ermitteln, denn der hat nur in der Theorie irgendeine Bedeutung. 
In der Praxis wird es hingegen immer Störungen geben, und deren Einfluss 
wird  den praktisch möglichen Minimalwert für den Pullup gleich um 
mehrere Größenordnungen nach unten korrigieren...

Da du offensichtlich nicht in der Lage bist, die Störungen zu 
quantifizieren, bleibt dir letztlich nur das Mittel der Vollidioten: 
Trial&Error.

Sprich: Pullup ausprobieren und so lange reduzieren, bis nix ungewolltes 
mehr passiert. Mit ein wenig Glück ist er dann immerhin noch groß genug, 
um wenigstens die gewünschte Funktion sichern zu können. Wenn nicht, 
wirst du nicht darum herumkommen, dich mit der Theorie und Technik 
analoger Filter zu beschäftigen...

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.