Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

haschenk

RCLine User

  • »haschenk« ist der Autor dieses Themas

Beruf: Dipl. Ing.

  • Nachricht senden

1

Samstag, 18. Dezember 2010, 17:46

I2C - Arduino und ITG-3200

Hallo,

für den Betrieb des ITG-3200 über I2C an Arduinos gibt es das Problem, daß die "normalen" Arduinos mit 5 V laufen, der ITG-3200 aber mit 3,3 V.

Das eigentliche Problem sind nicht die unterschiedlichen Betriebsspannungen (die man leicht zur Verfügung stellen kann), sondern die bidirektionalen SDA- und SCL- Leitungen von I2C.

Eine Lösung wären die 3,3 V - "Pro"-Versionen von Arduino, aber dann handelt man sich Betrieb mit nur 8 MHz-Takt ein.

Kennt jemand eine Lösung für das SDA/SCL-Pegel-Problem oder weiß, wo man was darüber nachlesen kann ?


Gruß,
Helmut

2

Samstag, 18. Dezember 2010, 17:48

Klick

Stichwort für eine weite Suche wäre "Levelshifter".

Ansonsten eben diskret mittels FETs aufbauen, hin und rückrichtung getrennt. I2C Verlangt ja sowieso Open-Collector bzw. Open-Drain Ein/Ausgänge.

gruß cyblord

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cyblord« (18. Dezember 2010, 17:53)


3

Samstag, 18. Dezember 2010, 18:38

Hallo,

ein ähnliches Problem gibt es bei den AVR-USB Projekten. Es wird dort mit 2 R und 2 Z-Dioden gelöst. Sicherlich ist der H-Pegel auf der 5 V-Seite nicht mehr Din-gerecht, aber es funktioniert.

http://hobbyelektronik.org/w/index.php?title=SNES-Joypad

Gruß Sven

haschenk

RCLine User

  • »haschenk« ist der Autor dieses Themas

Beruf: Dipl. Ing.

  • Nachricht senden

4

Sonntag, 19. Dezember 2010, 16:59

Hallo cyblord und Sven,

danke für eure Hinweise.
Ich habe die Spur aufgenommen und bin auch schon fündig geworden.
Die Geschichte wird auch noch etwas erleichtert dadurch, daß der ITG-3200 immer als slave arbeitet.


Gruß,
Helmut

5

Sonntag, 19. Dezember 2010, 22:10

Hallo Helmut,
bei cyblords link findest du unten den link zur Philips Applicationnote... soweit ich weis DIE AN für I2C Levelshift Probleme... :)
Olli

haschenk

RCLine User

  • »haschenk« ist der Autor dieses Themas

Beruf: Dipl. Ing.

  • Nachricht senden

6

Montag, 20. Dezember 2010, 19:13

Hallo Olli,

ja, die ANs 97055 und 10441, sowie die I2C-Specification von Philips/NXP gehören zu meinen Fundstellen.

Im Arduino-Forum gibt´s auch einen thread zu Arduino+ITG 3200 unter Verwendung der "WIRE"-library, der aber schwerpunktmäßig die Software behandelt.
Die Jungs dort verwenden 4 Varianten zum I2C-Bus: Mit und ohne diskrete pull-ups (vermutlich werden die pull-ups vom MEGA328 verwendet); mit und ohne Pegelwandler. Es scheint jede Variante zu funktionieren...
Mir ist der ITG 3200 aber zu teuer, als dass ich ihn außerhalb der specs betreibe, daher mach ich Pegelwandler rein.

Gruß,
Helmut