Forum: Mikrocontroller und Digitale Elektronik Hilft Pullup Signal auf Ground zuziehen?


von Jonas Biensack (Gast)


Lesenswert?

Es gibt ja eigentlich keine doofen Fragen, aber andererseits muss ja 
auch mal einer anfangen damit ;)
Ich versuche ein bidirektionales Signal (von einem Sensor) mit  meinen 
avr (atxmega128a1)  zu lesen und zu schreiben.
Nach dem Schreiben eines Kontrollbytes (sieht gut aus auf dem oszi) 
sollte der Sensor damit antworten, dass er die Datenleitung auf Ground 
zieht. Laut Datenblatt sollte man die Datenleitung mit 10k gegen VDD als 
pull-up Widerstand legen. Hilft das dem Sensor nun die Datenleitung auf 
Ground zu ziehen???
Oder sollte nicht besser dann ein (interner) pull-down Widerstand 
aktiviert werden?

Gruß Jonas

von Oliver J. (skriptkiddy)


Lesenswert?

Welcher Sensor?
Welche Schnittstelle?

von Jonas Biensack (Gast)


Lesenswert?

SHT75, Schnittstelle änlich TWI aber weicht vom Standard ab.

von Paul E. (paul_e)


Lesenswert?

Hallo Jonas,
dein Sensor kommuniziert bestimmt mit I²C und dort brauchst du den 
Pullup Widerstand. http://de.wikipedia.org/wiki/I%C2%B2C
Der Bus muss im Idle Zustand immer high sein. Laut Spezifikation ist der 
Pullup Wiederstand 10 kOhm oder 4kOhm je nach Geschwindigkeit.
Der interne Pullup des Controller ist meines erachtens dafür ungeignet.
Gruß
eac

von Jonas Biensack (Gast)


Lesenswert?

Anders gefragt: Wenn ein Pin als Eingang konfiguriert ist, ist ein 
einfacher diesen Pin auf low zu ziehen wenn ich einen pullup gegen vdd 
hab, oder dann schwerer?

von Paul E. (paul_e)


Lesenswert?

Naja eigentlich schwerer. Aber wenn du den Pullup nicht hättest würde 
der Bus nach dem der Sensor fertig ist auch nicht alleine wieder auf 
high gehen.
Gruß eac

von M. D. (wpmd)


Lesenswert?

Die Leitung auf GND zu ziehen sollte der Sensor schon schaffe.
Der Pullup ist vielmehr dafpr da, dass die Datenleitung auch dann auf 
einem festen Potential liegt, wenn diese eben nicht durch den Sensor auf 
GND gezogen wird.

von Jonas Biensack (Gast)


Lesenswert?

Hallo Paul, das hab ich auch schon alles gelesen, aber versuch es gerade 
nachzuvollziehen und da ist mir halt die Sache mit dem pull-up 
Widerstand aufgefallen....

von Paul E. (paul_e)


Lesenswert?

Das hier ist auch eine gute Seite:

http://www.i2c-bus.org/de/i2c-primer/

da sind auch Oszi Bilder zu sehen

von Jonas Biensack (Gast)


Lesenswert?

Jo, ist hatl kein I2C standart wie gesagt...

von Jonas Biensack (Gast)


Lesenswert?

was mich halt nur wundert, ist folgendes: Man dürfte davon ausgehen dass 
die Ausgangstreiber der Pins (des angeschlossenen) Mikrocontrollers mehr 
Leistung haben als der Datapin des Sensor, also man eher einen Pull-down 
als Unterstützung für den den Datapin einsetzen sollte...?

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Hier ist beschrieben, wie man das macht.

MfG Spess

von Jonas Biensack (Gast)


Lesenswert?

>Jo, ist hatl kein I2C standart wie gesagt...

Sei still!. Hab gerade mal geschaut, sieht gut aus, da werd ich mal 
nachlesen...

von Paul E. (paul_e)


Lesenswert?

Also ich hab hier einen SHT21 von Sensirion dessen Kommunikation fast 
100% der I²C Spezifikation entspricht.
Du solltest mit dem µController weder pullup noch pulldown verwenden. 
Wenn du den Pulldown anmachen würdest wäre deine Leitung definitiv auf 
0, aber wie willst du dann erkennen ob dein Sensor den Befehl empfangen 
hat? Wenn die Leitung high bleibt dann ist was bei der Übertragung 
schief gegangen (Not ACK), wenn die Leitung low ist signalisiert der 
Sensor ok ich hab den Befehl erhalten (ACK).
Der Sensor sollte auch in der Lage sein die Leitung ohne Probleme auf 
null zu ziehen wenn du den Pullup Widerstand nach Spezifikation gewählt 
hast und den Pullup des µControllers ausgemacht hast.
Gruß eac

von Uwe (Gast)


Lesenswert?

> Man dürfte davon ausgehen dass die Ausgangstreiber der Pins (des
> angeschlossenen) Mikrocontrollers mehr Leistung haben als der Datapin
> des Sensor, also man eher einen Pull-down als Unterstützung für den den
> Datapin einsetzen sollte

Der Sensor und der µC SOLLEN BEIDE nur GND auf ihren Ausgang Schalten 
können, denn es könnte Passieren das Beide gleichzeitig was auf den Bus 
legen. Wenn beide VCC und GND auf den Bus legen könnten und der eine VCC 
und der Andere GND auf den Bus legt was passiert dann ? Wenn beide GND 
auf den bus legen ist das OK da kann nichts passieren. Aber da keiner 
VCC auf den Bus legen kann braucht man es halt von woanders her und zwar 
so hochohmig das die Treiber der Beiden den Strom verkraften der durch 
diesen sogenannten Pullup fließt. Such mal nach "Open Collector"

von Jonas Biensack (Gast)


Lesenswert?

>Der Sensor und der µC SOLLEN BEIDE nur GND auf ihren Ausgang Schalten
>können, denn es könnte Passieren das Beide gleichzeitig was auf den Bus
>legen. Wenn beide VCC und GND auf den Bus legen könnten und der eine VCC
>und der Andere GND auf den Bus legt was passiert dann ? Wenn beide GND
>auf den bus legen ist das OK da kann nichts passieren. Aber da keiner
>VCC auf den Bus legen kann braucht man es halt von woanders her und zwar
>so hochohmig das die Treiber der Beiden den Strom verkraften der durch
>diesen sogenannten Pullup fließt. Such mal nach "Open Collector"

Ok. Also, der Datapin from Mikrocontroller wird als Eingang beschaltet, 
will er ein Datenbit (Datenbit low) übertragen. Dabei ist SCK high. Will 
er dagegen ein Datenbit (Datenbit high) übertragen schaltet er den 
Datenpin als Ausgang?!

P.S. DANKE für die Erklärung soweit ;)

von Route_66 (Gast)


Lesenswert?

Genau andersrum!

von Jonas Biensack (Gast)


Lesenswert?

...Und dar kein Eingang mehr -> keine Verbindung zu Ground ->hebt derden 
pull-up Widerstand dann das Signal auf high!

Ah...

von Jonas Biensack (Gast)


Lesenswert?

eh...

von Jonas Biensack (Gast)


Lesenswert?

Ja natürlich...! Jetzt ist der Groschen eh... Cent gefallen :)

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.