I²C Bus für Verbindung Rasperry pi und ATMEGA

#3857495
Lesenswert?

Hallo,

ich benötige mal etwas Hilfe bei einem Projekt. Die Idee ist, einen 
Raspberry pi mit dem 7“ Touchscreen von Pollin als Bedienkonsole 
einzusetzen. Über diese sollen dann ATMEGA 8 o.ä. angesteuert werden, 
die die einzelnen Funktionen (z.B. Servoansteuerung, Lichteffekte) 
auslösen.

Der pi soll mit den ATMEGA über einen I²C Bus verbunden werden. Der Bus 
soll als Linie aufgebaut werden, wobei die max. Länge ca. 1m beträgt und 
es zum Schluss nicht mehr als 10 Teilnehmer sein werden. Zum einfachen 
Aufbau will ich handelsübliche Netzwerkkabel zur Verbindung einsetzen. 
Die Datenmenge auf dem Bus wird sehr gering sein, da ich pro 
angeschlossenen „Station“ eigentlich nur ein Byte Daten übertragen muss. 
Da dabei auch nichts zeitkritisch ist, kann die Taktrate sehr niedrig 
sein (10kHz).

Ich will für den pi und den Touchscreen eine Art Bedienpult bauen und 
dort auch eine kleine Platine unterbringen, die die Stromversorgung  der 
einzelnen Teile (12V für den Touchscreen, 5V für den pi und einen 
USB-Hub) und die Pegelanpassung des I²C Buses trägt. Für Letztere möchte 
ich einen PCA9515 Repeater verwenden. Beiliegend die Schaltung, die mir 
vorschwebt. Und dazu habe ich zwei Fragen.

1) Ich werde aus dem Datenblatt des PCA9515 nicht ganz schlau, was die 
Dimensionierung der Pull-up Widerstände für den Bus betrifft. Kann mir 
jemand sagen, ob ich die Widerstände R2…R5 richtig dimensioniert habe?

2) Die angeschlossenen „Stationen“ mit den ATMEGA sollen jeweils eigene 
Spannungsversorgungen erhalten. GND will ich im gesamten System 
verbinden. Kann es dabei zu Problemen kommen, weil ja die 5V 
„Busspannung“ von der Versorgung des pi kommen? Oder ist es nötig, den 
Bus galvanisch zu trennen? Allerdings habe ich da nicht wirklich eine 
einfache und zuverlässige Lösung gefunden…

Es wäre nett, wenn mir jemand weiter helfen könnte.
Angehängte Dateien:
#3857667
Lesenswert?

Julian S. schrieb:
> 5V-Busspannung solltest du tunlichst vermeiden

Den PCA9515 will ich ja verwenden, um die 3,3V Busspannung des pi auf 
die 5V Busspannung der ATMAGA anzupassen. Oder habe ich da einen 
Denkfehler?

Das der pi schon interne Pull-us's für den Bus hat, muss ich überlesen 
haben.

Oliver R. schrieb:
> Wo die Versorgung für den PCA9515 herkommt ist egal

Im Datenblatt ist die Vcc von der 3,3V Seite genommen worden. Aber wenn 
das egal ist, komme ich wahrscheinlich besser, wenn ich den PCA9515 
gleich mit 5V versorge. Dann hängt er versorgungsmäßig nicht am pi. Oder 
kann das schiefgehen?
#3857811
Lesenswert?

Julian S. schrieb:
> Es würde aber auch
> einfach ein Fet genügen, da braucht es nicht extra einen IC.

Nein. Bei I²C sind beide Leitungen bidirektional, da ist schon etwas 
mehr Aufwand nötig.

Und auf der Slave-seitigen (5v-seitigen) Seite des PCA9515 müssen 
natürlich wieder pullups angebracht werden, diesmal gegen 5V.

Siehe hier: http://www.nxp.com/documents/data_sheet/PCA9515.pdf
Bild4 rechte Seite.

Und die würd ich gerade so klein bemessen dass der maximale Strom nicht 
größer wird als der schwächste Slave am Bus ihn noch treiben kann. 2k 
wäre ne gesunde Zahl, der Atmega kann 25mA locker versenken, wenn die 
Leitung länger wird oder die Taktrate höher kann man evtl sogar noch 
weiter runtergehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren