Hallo!
Ich hoffe, mir kann hier jemand weiterhelfen. Kann man 2 Leiterplatten,
die sich mit einem ca. 10 cm mehrpoligen Kabel miteinander verbinden
sind per I2C verbinden?
Auf einer Erweiterungsplatine habe ich 6 Taster und ein LCD und suche
nach einer einfachen Möglichkeit sie mit der "Mutterplatine" zu
verbinden. Insgesamt sind 21 I/O notwendig.
Ist es möglich einen Expander auf die Erweiterungsplatine zu geben und
ihn per I2C anzusteuern (Leitungslänge des mehrpoligen unabgeschirmten
Kabels ca. 10cm)?
Natürlich könnte ich einen Multiplexor auf die Erweiterungsplatine
geben. 4 Leitungen für den Multiplexor vs. 6 Tastatur-Eingänge = nur 2
Leitungen gewinn. Soweit ich das sehe, kann man mit einem Multiplexor
bei den LCD-Anschlüssen gar nichts einsparen. Oder gibt es noch andere
Möglichkeiten?
Grüße
Hans
> Ich hoffe, mir kann hier jemand weiterhelfen. Kann man 2 Leiterplatten,> die sich mit einem ca. 10 cm mehrpoligen Kabel miteinander verbinden> sind per I2C verbinden?
Sind die Platinen nun verbunden oder nicht?Bei niedrigen
Übertragungsraten sind die 10cm sicherlich kein Problem.Bei sehr hohen
Frequenzen (für die I2C eh nicht gedacht ist,da wäre SPI günstiger) kann
es allerdings dann zu Problemen kommen.
Für Labor-Aufbau: einfach Probieren.
Sorry, da habe ich mich wohl etwas beim Schreiben verhedert ;-)
Ich bin gerade beim Schaltungsentwurf und kann leider nicht probieren.
Außerdem sollte der gewählte Entwurf immer funktionstüchtig sein und
nicht nur bei dem im Labor gebastelten Entwurf. Ich weiß ja nicht ob und
wie sich die Leitungskapazitäten und -induktivitäten auf der Platine
auswirken.
Vielmehr als 400kHz werde ich bei der Übertragung sicherlich nicht
benötigen, da könnte ich dann ohne weiter Probleme I2C nehmen. Aber
funktioniert dass auch bei einer Leitungslänge von 20cm + 10cm auf der
Leiterplatte, oder besser was anderes nehmen?
Grüße Hans
Ich hab über I2C folgende Platinen erfolgreich verbunden:
1 x Controller mit RTC und EEPROM an I2C
1 x Display und 4 Tasten
4 x je 8 Relais aus
4 x je 8 ADC ein
Alle an einem Bus. Leitungslänge bis 50cm kein Problem, länger hab ich
nicht getestet. Pull-Up je 3k3 pro Leitung. Geschwindigkeit allerdings
nur 100kHz (reicht völlig aus), weil die RTC nicht mehr macht.
Geht also, und Signale sind auf Oszi immer noch sauber.
Sven
Nimm einfach Flachbandkabel. Stecker auf die Platinen, Stecker ans Kabel
crimpen. fettig.
MfG
Falk
P.S. Das geht auch bei hohen Frequenzen. Siehe IDE Kabel im PC.
@Falk:
Hohe Frequenzen und 30cm Kabel quer durchs Gehäuse.....auweia.Da möchte
ich dich gerne mal im EMV-Labor sehen,wenn dein Gerät unter der Pistole
plötzlich auf rätselhafte Weise den Dienst versagt.
Und am IDE-Kabel hängt bestimmt kein schwachbrüstiger
Mikrocontrollerausgang der sogut wie keinen Strom treiben kann....
per I2C verbinden wir hier Steuerung und Display über 3m Telefonkabel in
LKW, Traktoren oder so.
100kHz Taktrate.
Es kommt schon mal zu Störungen, die man intelligent abfangen kann, aber
10cm sollten kein Problem sein.
Habt Ihr Euch schon mal angesehen, wie groß so eine Platine in einem
72cm-TV ist ? Da ist auch I2C drauf !
@Ronny
Was sind für dich "hohe Frequenzen" ? Denkst du 400 kHz I2C ist eine
"hohe Frequenz". Man kann ohne weiteres 100 Mbit/S über einen halben
Meter Flachbandkabel jagen, und das Signal sieht am Ende immer noch
blendens aus. Man muss nur ein paar Kleinigkeiten beachten.
Und was glaubst du, wieviel Strom benötigt wird, um sowas zu erreichen?
Die meisten uC haben heute Push-pull Ausgänge, die 10mA locker schaffen,
meist mehr. Und mehr braucht es dafür nicht.
MfG
Falk
P.S. Man sieht mal wieder, dass auch im High-Tec Zeitalter noch sehr
viele Legenden herumschwirren, basierend auf Unkenntnis der
physikalischen Grundlagen.
Hallo,
ich habe nun die Schaltung wie oben beschrieben aufgebaut. und schreibe
meinen Erfahrungsbericht:
*Aufbau:
Auf der Hauptplatine ca. 20cm I2C Buslänge + 20cm Flachbandkabel + 8cm
auf Erweiterungsplatine.
*Probleme:
Den I2C Baustein (PCF8575) konnte ich auf der Erweiterungsplatine nicht
ansprechen. Auch nicht mit niedrigen Signalfrequenzen (ca.50-100kHz).
Ich habe mir die Signale nicht am Oszi angesehen, aber ich vermute, dass
die Signalanstiegszeiten durch die große Kapazität der Leitung zu gering
waren.
Fehler hat mir das Statusregister des TWI keine gemeldet, jedoch hat der
Expander trotz richtiger Beschaltung verrückt gespielt. Die Ausgänge
waren nur zum Teil auf dem programmierten Zustand und teilweise haben
sie gefloatet (zwischen VSS und VDD).
*Fazit:
Vielleicht sind manche I2C-Bausteine weniger empfindlich, was die
Flankensteilheit der Signale (SDA, SCL) anbelangt, mit meinem Setup war
es mir aber unmöglich den Baustein zum Arbeiten zu bringen.
> Ich habe mir die Signale nicht am Oszi angesehen, aber ich vermute, dass> die Signalanstiegszeiten durch die große Kapazität der Leitung zu gering> waren.
Vermutungen sind immer besser als Erkenntnisse.
@Hans
Da hast du aber noch grundlegende Probleme drin. Ich habe in einem
früheren Projekt auch I2C über Flachbandkabel geführt über eine Distanz
von total ca. 50cm, z.T. sogar 1m - ohne jegliche Probleme.
Wenn die Bauteile korrekt beschaltet sind, dann floatet da gar nichts.
Poste mal dein Schema (oder den relevanten Ausschnitt davon)