Forum: Mikrocontroller und Digitale Elektronik Einplatinen-PC mit 2 i2c Schnittstellen gesucht


von I2C (Gast)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach einem RaspberryPi-ähnlichem 
Einplatinencomputer, der 2 I2C-Schnittstellen hat.
Hintergrund: ich möchte mich damit zwischen zwei Geräte hängen die mit 
i2c kommunizieren, diese sollen nichts davon mitbekommen (und können 
auch nicht verändert werden). Das hiesst, dass der Computer beiden 
Geräten die jeweilige Gegenstelle vorgaukelt.

Das RaspberryPi hat nur einen i2c
cubieboard hat wohl mehrere, aber nur einen einzelnen auf den 
GPIO-Steckerleisten geführt

kennt ihr grad einen, der sowas könnte?

Danke

von Info (Gast)


Lesenswert?


von Martin (Gast)


Lesenswert?

I2C schrieb:
>
> Das RaspberryPi hat nur einen i2c
> cubieboard hat wohl mehrere, aber nur einen einzelnen auf den
> GPIO-Steckerleisten geführt
>

Nein, der Raspberry Pi hat zwei davon,
Neben dem 'P1' GPIO - Steckverbinder ist noch 'P5'.
Auf dem ist der zweite I2C.
Den Steckverbinder solltest du aber von unten einlöten, sonst wird es zu 
eng, die Stecker drauf zu bekommen.

von tom (Gast)


Lesenswert?

schau doch mal die diversen arduinos oder cookieboard von coocox.org an, 
ob du da etwas passendes findest.

von CC (Gast)


Lesenswert?

Der BeagleBone (Black) hat IIRC auch mindestens zwei...

von I2C (Gast)


Lesenswert?

Hmm, das BeagleBoard kannte ich noch gar nicht und das hat tatsächlich 2 
i2c. Sehr schönes Ding! Danke für die Tipps.

von Uwe Bonnes (Gast)


Lesenswert?

Wenn der Einplatinencomputer nicht auch noch Slave spielen solle, dann 
ist Bitbanging auch eine Option.

von Reinhard Kern (Gast)


Lesenswert?

I2C schrieb:
> Das hiesst, dass der Computer beiden
> Geräten die jeweilige Gegenstelle vorgaukelt.

Muss das sein? Es genügt doch, wenn du auf den Leitungen mithörst.

Gruss Reinhard

von PittyJ (Gast)


Lesenswert?

Zur Not könnte man auch mit GPIO Bit-Bangen.
Normale 100 KHz-Kommunikation bekommt man damit auch hin.

von pilepale (Gast)


Lesenswert?

>Muss das sein? Es genügt doch, wenn du auf den Leitungen mithörst

Na, der wills halt kopliziert machen.

von Jobst Q. (joquis)


Lesenswert?

Reinhard Kern schrieb:
> Muss das sein? Es genügt doch, wenn du auf den Leitungen mithörst.

Es reicht,wenn klar ist, was der Slave gesendet hat und was der Master. 
Wenn die Richtung mitprotokolliert werden soll wirds etwas 
komplizierter.

von I2C (Gast)


Lesenswert?

Es geht darum, in einem älteren Auto, welches einen CD-Wechsler hat (der 
notabene keinem Standard entspricht zu dem entsprechende Geräte gibt) 
einen HD-Player zu installieren, ohne den CD-wechsler ausser Betrieb zu 
nehmen.
Lustigerweise entspricht das Protokoll dem I2C. Mithören habe ich mit 
einem AVR geschafft.
Deshalb möchte ich mich quasi in die Mitte hängen. Mit der Taste 
"shuffle" würde ich dann die Quelle umschalten (von CD-wechsler zu 
externem Eingang (das das Autoradio nicht hat) oder eben Harddisk) und 
das entsrechende Audiosignal umschalten. Nur mithören würde auch gehen, 
aber dann zeigt das Autoradio weiterhin das was vom CD-Wechsler ankommt 
an und zusätzlich spielt der CD-Wechsler dann Shuffle wenn ich die 
Quelle umschalte...
Deshalb möchte ich mich direkt dazwischen hängen und ggf. die Daten die 
angezeigt werden selbst senden.
Zum Bitbanging: hätte ich mit einem AVR auch so gemacht. Nun könnt ihr 
mir nochmals helfen: da das Ding (ob Raspberry oder was auch immer) ein 
komplettes OS drauf hat, frage ich mich ob das noch funktioniert?! Wie 
echtzeitfähig sind die Dinger? Wie gesagt, wenn ich die Kommunikation 
mit einem AVR machen würde, hätte ich meine Bedenken. Kann da jemand 
auskunft geben ob das problemlos möglich ist?

von Jobst Q. (joquis)


Lesenswert?

Etwas verwirrend. Welche Daten werden über I2C übertragen ? Audio-Daten 
?? Oder nur die Steuerung uns Anzeige des CD-Wechslers ?

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Ich würde das ganze tatsächlich mit einem AVR oder PIC mit zwei 
I2C-Schnittstellen realisieren.

1.: Wenn Du den Zündschlüssel umdrehst, willst Du, dass das ganze sofort 
funktioniert. Ein RaspPi wird aber erstmal eine halbe oder ganze Minute 
lang booten, bis er bereit ist. Für mich wäre das ein KO-Kriterium.

2.: Das Auto ist eine sehr unfreundliche Umgebung. Beim Anlassen kannst 
Du Spitzen von bis zu 40V auf der 12V-Versorgung haben. In einer 
Automotive-Umgebung kommt es darauf an, wirksame Schutzschaltungen gegen 
Störungen von außen einzubauen, um die Zuverlässigkeit sicherzustellen 
und die eigene Schaltung vor Beschädigungen zu schützen. Ein PIC ist 
hier ganz einfach robuster als ein hochintegrierter ARM, und 
leistungsmäßig sollte er völlig ausreichen.

3.: Linux ist kein Echtzeitsystem. Jedenfalls kein wirklich gutes. Ein 
FreeRTOS oder so wäre die bessere Wahl hier.

Ein PIC18F25K22 hat 4 in Hardware realisierte I2C-Schnittstellen und 
kann mit 5V betrieben werden. Wenn Du mehr Leistung haben möchtest und 
3.3V Betriebs- und Signalspannung ok sind, dann wäre zB ein 
PIC32MX150F128B was für Dich. Das ist ein 32 Bit 50 MHz PIC mit 2 
I2C-Ports und 128k Flash und 32k RAM und kostet bei Reíchelt 3.50€.

Bei den AVRs kenne ich keinen mit zwei I2C-Hardwareeinheiten, daher 
würde meine Wahl in diesem Falle auf PIC fallen.

fchk

von I2C (Gast)


Lesenswert?

Zu deinen Bedenken:
1. ich würde das so machen, dass das System so arbeitet wie bisher, bis 
der OS läuft (Radio mit CD wechsler direkt verbunden). Sobald der PC 
läuft schaltet er sich dazwischen. Wenn ich einen kompletten PC im Auto 
habe, muss der immer erst booten. Wobei das Booten optimiert werden kann 
(bzw. über Hibernate o.ä.)
2. Das krieg ich hin. So wild ist das auch wieder nicht. Das Problem 
habe ich mit jeder Elektronik die im Auto ist.
3. Da habe ich keine Erfahrungen. Deshalb meine Frage weiter oben dazu. 
Bitbanging wird deshalb wohl ausfallen, aber ein i2c müsste doch schon 
gehen? Da es sich ohne hin nur um die Steuerdaten handelt, kommt es 
nicht auf jede Millisekunde an...

von Frank K. (fchk)


Lesenswert?

I2C schrieb:

> 1. ich würde das so machen, dass das System so arbeitet wie bisher, bis
> der OS läuft (Radio mit CD wechsler direkt verbunden). Sobald der PC
> läuft schaltet er sich dazwischen. Wenn ich einen kompletten PC im Auto
> habe, muss der immer erst booten. Wobei das Booten optimiert werden kann
> (bzw. über Hibernate o.ä.)

Kann man so machen, aber das wäre dann nochmal etwas, was die 
Komplexität erhöht. Ein PIC ist sofort da, einfach zu beschalten, hat 
kein Filesystem, was beschädigt werden kann, und ist aus, wenn er aus 
sein soll. So macht das auch die Zubehörindustrie, und so machen es auch 
die Hersteller selber. Wobei die dann natürlich AEC100 
Automotive-qualifizierte Teile verbaut, die von -40 bis +85 oder bis 
+125°C funktionieren, die Boards mit Schutzlack versiegeln, etc etc.

Das ist der Weg, den man in diesem Fall geht.

fchk

von Max G. (l0wside) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Ein PIC ist sofort da, einfach zu beschalten, hat
> kein Filesystem, was beschädigt werden kann, und ist aus, wenn er aus
> sein soll. So macht das auch die Zubehörindustrie, und so machen es auch
> die Hersteller selber.

[ ] Du hast Ahnung von dieser Industrie.

Max

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
Noch kein Account? Hier anmelden.