- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Signalveränderung durch Pullup

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645

    Frage Signalveränderung durch Pullup

    Anzeige

    Powerstation Test
    Hallo,

    ich wollte mal kurz in die Runde fragen, was Ihr so von Signalveränderungen durch Pullups haltet.

    Ich habe jetzt viel mit einer selbstgebastelten Datenübertragungsroutine herumgespielt und gestern den Pin-Mode bei Arduino von INPUT auf INPUT_PULLUP geändert. Nun habe ich manche Eingänge auch parallel geschaltet, Somit hätte ich zweimal Pullups auf einer Leitung. Die sollen beim Arduino im 20 bis 50k-Bereich sein. Also funktionieren tut das mit den Pullups, nach meinem Minioszi geurteilt sieht es so aus, dass mit Pullup das Signal am Eingangspinn etwas stabiler zu sein scheint. Kann das möglich sein, dass ein Pullup immer einen positiven Effekt auf die Signalstabilität hat? Das Signal an sich wird dadurch ja auch etwas verändert. Theoretisch bräuchte ich keine Pullups, da Digitaleingänge ja schon einen Bereich haben, wo nur LOW und nur HIGH erkannt wird. Wenn ein Signal im LOW-oder HIGH-Bereich etwas "zappelt" macht das demnach doch nichts aus?

    Ich habe Pullups nur zu Testzwecken verwendet, weil ich Fehler in der Datenübertragung gesucht habe. Nun frage ich mich, ob ich die besser drin lasse oder nicht. Vielleicht haben die Pullups auch keinen Einfluss, weil die die Mindestsignallänge an einem Eingang nicht entscheidend beeinflussen und damit auch nicht die Datenübertragungsgeschwindigkeit. Zumindest bringen die Pullups einen definierten Zustand an einem Eingang, solange da noch kein definiertes Signal auf die Übertragungsleitung gegeben wurde.

    Danke, für's drüber Nachdenken und freundlichen Gruß!
    Moppi

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Du solltest dir wohl mal ein paar Grundlagen anlesen, was die Funktion von Pullups/Pulldowns angeht.
    Deine Frage erscheint mir vollkommen unsinnig.

    Und was bitte bedeutet "Nun habe ich manche Eingänge auch parallel geschaltet." ??? Was soll das denn?

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    .. Pullup .. Signalstabilität .. Digitaleingänge .. nur LOW und nur HIGH erkannt .. Danke, für's drüber Nachdenken ..
    Nun, Nachdenken hilft da nicht viel. Besser das Datenblatt lesen. Stichwörter sind z.B. (Bezug : Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016)
    18. I/O-Ports
    18.1. Overview
    Figure 18-1. I/O Pin Equivalent Schematic

    32. Electrical Characteristics
    32.2. Common DC Characteristics
    dazu einige Timing-Tabellen und -Diagramme im Datenblatt wie z.B.:
    18.2.4. Reading the Pin Value
    Figure 18-3. Synchronization when Reading an Externally Applied Pin value

    Und noch Einiges. So hatte ich mich jedenfalls (halbwegs) eingearbeitet.

    Und, wie Gnom67 schreibt, ein paar Grundlagen. Das Thema hatten wir ja ähnlich schon im August ?
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Moppi, dein Beitrag klingt ein wenig so, als würde ein Pullup irgendwie das Signal verbessern... wie ein Verstärker oder sowas... du scheinst da nicht die richtige Vorstellung zu haben, was ein Pullup (oder Pulldown) macht.

    Ein digitaler Eingang erkennt high oder low ab gewissen Spannungsschwellen. Beispielsweise wird bei 3,3-V-Eingängen (Low Voltage TTL) alles was unter 0,8 V ist wird als low erkannt, alles über 2,0 V als high. Dazwischen ist nicht sicher, was der Eingang erkennt. Wenn du also ein Signal mit 1,9 Volt anlegst, kann es als high oder als low erkannt werden oder auch zeitlich wechselnd mal so und mal so.

    Wenn du an einen Eingang ein Signal (Sender) anschließt, hast du drei Möglichkeiten:
    - Das Signal kommt von einem Push-Pull-Treiber - das heißt, der Ausgang des Senders liefert für high eine garantierte Spannung über 2 Volt (z. B. 3,3 V) und für low eine garantierte Spannung unter 0,8 V (z. B. 0 V (GND), indem er die Signalleitung zwischen zwei Spannungsniveaus hin und her schaltet. Das ist für den Eingang eindeutig und du benötigst keinen Pullup oder pulldown.
    - Der Sender liefert nur ein eindeutiges Signal, z. b. für low, indem die Leitung mit GND verbunden wird (z. B. bei einem Taster, der den Eingang auf GND zieht - es kann aber z. B. auch ein Open-Collector-Ausgang sein). Das Low-Signal ist somit eindeutig, wenn der Taster gedrückt ist, nämlich 0 Volt. Ist der Taster aber nicht gedrückt, liegt der Eingang ohne Verbindung einfach offen (er geht bis zum Taster und weil der keinen Kontakt hat, hängt das Ende des Kabels sozusagen in der Luft. Welche Spannung nun am Eingang liegt, kann man nicht sagen. Restladungen aus dem letzten Tastendruck, elektromagnetische Wellen aus der Umgebung, statische Aufladungen oder Kriechströme können irgendein Signal (high oder low) erzeugen. Der Eingang "floatet", wie man so schön sagt.
    Um das zu verhindern, benötigt man einen Pullup-Widerstand (relatov groß, meist 10-50 KOhm), der eben dieses Offenliegen des Eingangs verhindert und (mit sehr kleinem Strom) immer dafür sorgt, dass 3,3 V am Eingang liegen. Ist der Taster oder der Open-Collector-Ausgang offen, dann zieht der Pullp den Eingang also auf 3,3 V und somit auf ein klares Niveau (high). Drückst du jetzt den Taster, wird der Eingang mit GND (0 V) verbunden. Die 3,3 V, an denen der Pullup hängt, fallen komplett im Pullup-Widerstand ab. (Der Widerstand und die Leitung zu GND bilden sozusagen einen Spannungsteiler im Verhältnis 10 KOhm zu ~0 KOhm - die gesamte Spannung fällt am Widerstand ab. Der Eingang liegt auf 0 V.)
    - Dritte Möglichkeit: Der Sender hat bereits einen Pullup (oder Pulldown) eingebaut. Dann brauchst du am Eingang natürlich keinen mehr. Im Grunde ist es erst mal egal, ob der Pullup am einen oder am anderen Ende der Signalleitung, also am Eingang oder am Ausgang hängt.

    Pullup und Pulldown arbeiten identisch nur sozusagen umgedreht.
    - Der Pullup hält einen Eingang über einen relativ großen Widerstand auf high (3,3 V) und das Signal zieht ihn auf low (0 V / GND).
    - Der Pulldown hält einen Eingang über einen relativ großen Widerstand auf low (0 V) und das Signal zieht ihn auf high (3,3 V).
    Der Pullup-/Pulldown-Widerstand ist immer deutlich größer als der Widerstand der Signalleitung (z. B. Taster oder Transistor zu GND), damit die Spannung auch weit genug abfällt oder ansteigt.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    @Oberallgeier

    Thema im August hatte damit nichts zu tun, ich habs gerade noch mal gelesen.

    @Gnom67

    als würde ein Pullup irgendwie das Signal verbessern... wie ein Verstärker oder sowas...
    Nein, darum geht es nicht, ob der als Verstärker dient. Im Vergleich zu einem Transistoreingang sehe ich das aber so, dass ein Pullup an der Basis den Transistor vorspannt, das ist für verschiedene Zwecke üblich. Das hat auch einen Einfluss auf die Schaltgeschwindigkeit. Zugegeben weiß ich jetzt nicht, ob das bei den Arduino-Eingängen denselben Effekt hätte. Ich kenne mich eben auch nicht mit allen Sachen genau aus. Tut mir leid!

    Ein digitaler Eingang erkennt high oder low ab gewissen Spannungsschwellen.
    Also wie ich schrieb: "da Digitaleingänge ja schon einen Bereich haben, wo nur LOW und nur HIGH erkannt wird", heißt, das ab einem bestimmten Schwellenwert (der auch von der Versorgungsspannung abhängt), eben LOW oder HIGH erkannt wird. Dadurch ergeben sich 2 Bereiche, ein Oberer und ein Unterer, in denen es auch keine große Rolle spielt, ob ein Signal etwas verrauscht ist "zappelt". Von 0 bis 0.7V z.B. wird immer LOW erkannt. Und ab ca. 2.0V, bis zur Grenze der Versorgungsspannung, eben HIGH. (Muss man im Datenblatt schauen, wie die Werte genau sind, interessiert hier aber für eine allgemeine Betrachtung von Digitaleingängen nicht).

    Für den Rest Deiner Erklärung vielen Dank! Ich habe das alles gelesen, aber für mich jetzt nichts Neues entdeckt.


    Da hier sehr schnell mit Unterstellungen losgelegt wird:
    Du solltest dir wohl mal ein paar Grundlagen anlesen


    möchte ich das mal so wein wenig zurückgeben und dazu sagen:

    Man sollte erst einmal die Fragen genau lesen und zu verstehen zu versuchen.

    Wie Oberallgeier schrieb:
    Nun, Nachdenken hilft da nicht viel.


    Doch, genau das sollte man tun, wenn man Fragen verstehen möchte.


    Deshalb die Fragen nochmal auf das bezogen, was ich beobachtet habe:

    Die Pullups sorgen für ein eindeutiges Signal am Eingang. Treten Nebeneffekte dadurch auf, wie Signalverschleifung, die sich negativ auswirken?

    Wenn das keiner weiß, ist es nicht schlimm. Dann Suche ich mir das selber noch raus, damit habe ich kein Problem. Aber ich dachte, ich bin in einem Forum, wo man Fragen stellen kann, die andere aus dem FF beantworten können, weil sich bereits intensiver damit beschäftigen oder beschäftigt haben. Sprich, man hilft sich gegenseitig. Bemerkungen, dass ich irgendwas suchen soll oder Datenblätter lesen soll, kann ich nicht brauchen. Vor Internetzeiten habe ich das nur so gemacht, aber mit Internetforen geht dieser Vorgang womöglich eben schneller. Ich bin durchaus nicht so unbeholfen.

    @Obergallgeier
    Ich schaue noch mal im Datenblatt, ob ich dort was finde zur Signalverschleifung in Verbindung mit internen Kapazitäten und Pullups.

    Vielen Dank!

    MfG



    Geändert von Moppi (08.12.2020 um 13:51 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    866
    Natürlich geht das. Du baust damit eine Stromschleife und hältst dadurch induzierte Störungen von z.B. Nachbarports oder den Leiterbahnen im Verhältnis zum Nutzstrom klein. RS 485 macht auch nichts anderes.
    Geändert von Holomino (08.12.2020 um 14:08 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Zitat Zitat von Gnom67 Beitrag anzeigen
    Und was bitte bedeutet "Nun habe ich manche Eingänge auch parallel geschaltet." ??? Was soll das denn?
    Kannst Du die Bemerkung mal erläutern? Die scheint mir unsinnig zu sein.

    Aber um das aufzuhellen und ein paar Grundlagen zu liefern:
    Es geht um eine Datenübertragung von einem Gerät zu mehreren Anderen. Damit sind die Datenleitungen von einem Gerät an zwei andere Geräte dauerhaft verbunden. Da die Empfänger auf Input schalten (jetzt z.Z.mit Pullup), liegen also zwei Pullups an einer Datenleitung (laut Datenblatt stimmt das so). Damit halbiert sich der Pullup-Widerstand für die gemeinsame Datenleitung.

    Eine Eingangskapazität konnte ich noch nicht finden.

    Da die Frage offenbar nicht so schnell zu beantworten ist, werde ich die Pullups erst einmal drin lassen, bis ich mehr rausgefunden habe.

    MfG

    - - - Aktualisiert - - -

    Zitat Zitat von Holomino Beitrag anzeigen
    Natürlich geht das. Du baust damit eine Stromschleife und hältst dadurch induzierte Störungen von z.B. Nachbarports oder den Leiterbahnen im Verhältnis zum Nutzstrom klein. RS 485 macht auch nichts anderes.
    Danke, für Deine Antwort! Das "Natürlich geht das." bezieht sich auf was genau?

    - - - Aktualisiert - - -

    Also ich weiß wohl, dass I2C auch Pullups verwendet.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    866
    Auf das Zuschalten des PullUps. Fass mal mit dem nackten Finger an die Messspitze Deines Oszis und betrachte den enormen 50Hz Sinus, der durch die Umgebung in Dich induziert wird. Dann nimm einen 10kOhm Widerstand und klemm ihn zwischen Tastspitze und Masseklemme. Ist der Sinus bei aufgelegtem Finger immer noch so groß?

    Ob Tastkopf oder Input-Pin. Beide sind ähnlich hochohmig (MOhm-Bereich). Und bei beiden lassen sich induzierte Störungen aus dem Umfeld durch einen Widerstand als Abschluss dämpfen.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Danke für die Antwort! Somit hätte das mindestens einen positiven Effekt. Den ich so ein wenig im Oszi schon erkennen konnte, mir aber darüber nicht so klar war, ob das mehr am Oszi selbst liegt, oder ob das auch so auf die Eingänge dann zutrifft.

    Nun hatte mich dann noch interessiert, ob durch so eine Widerstandsbeschaltung die Datenübertragungsrate wesentlich beeinflusst würde. Weil ich will das optimieren. Wenn es auch ohne Pullups funktionierte, aber dann die Übertragung schneller wäre, würde ich die vielleicht weglassen, wie es angedacht war. Die Signalleitungen sind ja kurz.

    MfG

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    866
    Hmm, ein I2C-Bus mit 4k7-Widerstand geht mit kurzen Leitungslängen bis 400kHz.
    Wie hoch willst Du gehen?

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 10.08.2019, 20:57
  2. DS1631 + Pullup
    Von philiph im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 25.09.2006, 18:17
  3. Pullup weglassen?
    Von Amri im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 11.04.2005, 20:42
  4. Internal Pullup
    Von sebastian.heyn im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 28.01.2005, 19:13
  5. Pullup
    Von Felix G im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 11.08.2004, 19:54

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad