PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C-LCD bzw. Fragen dazu



RHS
18.08.2004, 14:57
Hallo Frank,

wir hatten ja schon mal eine kleine Diskussion, in der Du schriebst,
das ein Zukunft evtl. ein I2C-LCD von Dir angedacht sei.

Ich habe jetzt mein Modul von CC-Tools an der RN-Control zum
laufen bekommen (dank der Hilfe von Kent Anderson, dem Autor
der Zusatz-Lib für Bascom). Das Display läßt sich jetzt einfach
mit den LCD-Befehlen von Bascom ansprechen, obwohl es über
I2C angeschlossen ist.

Dabei gab es u.a. Probleme mit den Pull-Up Widerständen für die
SCL- bzw. SDA-Leitungen.

Meine Frage hierzu: welche Widerstände muß ich nehmen, wenn
ich SCL/SDA an Port A.0 bzw. A.1 nutzen will. Im Netz finde ich
(widersprüchliche) Aussagen zu Widerstandswerten von 4,7K bis
10K.

Welche würdest Du nehmen und wie ist das bspw. bei der RN-Control
(in Verbindung mit der Relaiskarte) gelöst?

- Reinhard -

Edit: merke gerade, das ich ja eigentlich nur die eingebauten Pull-
Up's der genutzten Ports einschalten muß. Oder ist das falsch?

Frank
18.08.2004, 19:46
Hi,

fein das es nu klappt.

also der genaue Widerstandswert ist garnicht so wichtig. Empfehlenswert ist ca. 4,7 bis 50KOhm. Ich nehme in der Regel 10 KOhm.
Der eingebaute Widerstand vom AVR ist glaube in etwa 100KOhm groß. Ist ein wenig zu hoch, aber zur Not sollte das auch klappen .
Wenn die zu hoch werden, dann kann das ganze etwas störanfällig werden.

Bedenken muss man das man ja mehrere Boards am I2C Bus anschließt. Nur eines muss diese Widerstände haben. Wenn man abe reinen etwas höheren Wert ca 10k nimmt, dann ist es auch nicht tragisch wenn mal 2 Boards einen solchen Widerstand besitzen.

Gruß Frank

Michael
18.08.2004, 19:56
Hallo RHS,

Edit: merke gerade, das ich ja eigentlich nur die eingebauten Pull-
Up's der genutzten Ports einschalten muß. Oder ist das falsch?
das wird nicht klappen, da die I2C-Geschichte von den externen Widerständen "lebt". Der Compiler muß, um einen Port zu lesen, dann nur das DDR umschalten. Den internen Widerstand einzuschalten, wäre ein Befehl mehr (pro Bit!) und würde arg auf die Geschwindigkeit drücken.
Aber dazu bräuchtest du dann eh eine neue Lib.
Gruß, Michael

Frank
18.08.2004, 20:12
Hi,

ja da hat Michael recht, hatte ich eben nicht dran gedacht. Theoretisch würde ein 100KOhm vermutlich gehen, aber der interne Widerstand kann man beim I2C Bus nicht nehmen.
Aber da du ja die RN-Control hast, brauchst du eigentlich garkeinen Widerstand! Der Widerstand ist doch schon auf dem RN-Control-Board drauf! Also keinen Widerstand mehr dran hängen, das muss gehen!

Bei den Roboternetz-Standard Boards hat immer nur das masterboard RN-Control und RNBFRA ein Widerstand. Die Relaiskarte, RN-Speak Sprachkarte oder RN-Motor haben keinen. So kann man alles unbedenklich verbinden

RHS
19.08.2004, 09:01
Hallo Frank & Michael,

ok, ich habe externe Widerstände genommen.

Ich habe auch wohl gesehen, das auf der RN-Control die Widerstände
vorhanden sind, habe aber das Display nur zu Testzwecken dran und
finde die Klemmen von Port A ganz praktisch ;-). Habe also die I2C-
Buchse nicht dafür genutzt.

Wir war nur nicht klar, warum im Netz die empfohlenen Widerstands-
werte so weit streuen, deshalb meine Frage.

Danke & Gruß: - Reinhard -

Frank
19.08.2004, 09:54
Hi RHS,

ob Klemmen oder I2C Buchse, Widerstände brauchst du nicht wenn es am RN-Control hängt, sind ja die selben Leitungen wo Widerstände schon dran sind. Aber vermutlich ist dir das auch klar, klang nur etwas mißverständlich.
Generell würde ich sagen je länger eine I2C-Leitung, desto sicherer sind etwas niedrigere Widerstände. Solange die über 1k sind, ist das noch unbedenklich.

Gruß Frank

muraad
03.09.2004, 15:32
Ich weiß nicht ob dir,euch weiterhilft. Hab neulich was gelesen wo jemand an das LCD zwei I2C-Porterweiterungen angeschlossen hat. Oder war es das worüber ihr geredet habt, dann sorry.
Gruß Muraad