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
SHT75, Schnittstelle änlich TWI aber weicht vom Standard ab.
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
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?
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
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.
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....
Das hier ist auch eine gute Seite: http://www.i2c-bus.org/de/i2c-primer/ da sind auch Oszi Bilder zu sehen
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...?
>Jo, ist hatl kein I2C standart wie gesagt...
Sei still!. Hab gerade mal geschaut, sieht gut aus, da werd ich mal
nachlesen...
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
> 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"
>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 ;)
...Und dar kein Eingang mehr -> keine Verbindung zu Ground ->hebt derden pull-up Widerstand dann das Signal auf high! Ah...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.