Forum: Mikrocontroller und Digitale Elektronik "I2C Bridge"


von Stefan Heindel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo! Für ein AVR-Assembler Projekt bräuchte ich eine Art I2C Bridge. 
Also ich habe an einem Port 3 Datenleitungen anliegen, deren Protokoll 
dem von I2C sehr sehr ähnelt. An anderen 3 Pins habe ich die Fortführung 
des Busses sitzen, der AVR soll sich also praktisch wie ein Stück 
"Leitung" verhalten. Am Anfang wollte ich Relais zum umschalten nehmen, 
aber die Lösung habe ich dann wieder verworfen. War mir zu unelegant.
Normalerweise wäre das ja kein Problem. Einfach die Portzustände 
auslesen und weitergeben. Das Problem ist jedoch dass der Bus ja 
bidirektional arbeitet und dass der Slave seine "acks" auch auf den Bus 
legt in dem er ihn auf Masse zieht. Das Problem ist dass man ja nun 
nicht weiß, von welcher Seite man die Portzustände lesen soll...
Ich habe mir schon ein Verfahren ausgedacht und gecodet wo der AVR auf 
jeder seite schaut ob ein Low anliegt, und es dann auf der anderen Seite 
wieder ausgibt.
Meine Frage: Habe ich nur einen Denk/Tippfehler oder ist sowas 
prinzipiell gar nicht möglich?!

Thx, Stefan

P.S. Hatte auch schon mal probiert, den Datensatz im AVR zu speichern 
und dann erst weiterzuschicken.... das funktionierte zwar, die andere 
Lösung wäre für mein Problem aber sehr viel besser geeignet.

von Peter D. (peda)


Lesenswert?

Wenn es der Standard 100kHz I2C-Bus ist, hast du keine Chance.

Du hast nur 4µs, um den Takt durchzureichen, von der anderen Seite das 
ACK zu empfange und wieder zurück zu senden.

Beim 4MHz Quarz sind das nur 16 Takte und allein einen Interrupt 
anzuspringen und wieder zu verlassen kostet schon 12...14 Takte.

Der I2C-Bus ist ja auch kein Durchreichebus, sondern alle hängen 
parallel dran.


Peter

von Stefan Heindel (Gast)


Lesenswert?

Oh, sorry da hab ich es dann nicht genau genug erklärt.. Also  so 
schnell ist dieser Bus nicht... die kürzesten schalt-intervalle sind um 
die 100µs, bei 8 MHz takt denk ich mal dürft das net so das Problem 
sein....
im Endeffekt ist es auch kein "richtiger" Bus, sondern es hängt nur ein 
Anzeige-Display auf der einen Seite und auf der anderen Seite nur eine 
sende-einheit dran, die das display ansteuert.
Mit dem I2C-Bus ähnlich mein ich das der Bus im Idle-Zustand HIGH ist, 
er bidirektional ist und das man eine bestimmte Addresse benötigt, um 
das Display anzusprechen....

Danke nochmal!!! Cheeco

von Daniel (Gast)


Lesenswert?

Hallo
Ich entwickle gerade ein Bussystem, das auch dem I2C Protokoll ähnlich 
ist. Dafürhabe ich eine Art "Router" auf einem 8515 Programmiert, der 
Packages von einem Port in den Ram Speichert und es an einem Anderen 
wieder Ausgibt. Es funktioniert problemlos Bidirektional. Mein code ist 
sogar Multi-Thread fähig, dadurch sind beide Schnittstellen unabhängig 
voneinander.

Falls du interesse daran hast kannst du dich einfach bei mir melden

mfg Daniel

von Stefan Heindel (Gast)


Lesenswert?

Danke, an alle, ich habe aber gemerkt dass es doch der falsche Ansatz 
ist, nochmal ein extra Programmteil zu schreiben. Denn erstens muss ich 
den mit jedem Autoradio testen (Es geht um die Anzeige in den Opel 
Corsas/Astras/Tigras), und zweitens pfeift mein 4433 platzmäßig aus dem 
letzen loch. Deswegen werde ich das jetzt doch mit zusätzlicher Hardware 
machen.
Also, um es anders zu sagen, ich suche ein IC, dass 3 (analoge) schalter 
(an/aus, nicht um) hat, wo ich den AVR bei Bedarf "überbrücken" kann. 
Die gesuchten Chips sollten bei Reichelt/conrad erhältlich sein und 
nicht allzu teuer sein.

Also, es soll ein bidirektionaler Bus (3-Adern) - ähnlich I2C- an-und 
abgekoppelt werden..

Danke für eure Ideen!

Stefan

von thkaiser (Gast)


Lesenswert?

Schau Dir mal den 4053 an. Der hat zwar 3x "um", aber entsprechend 
beschaltet müßte es gehen. (analoger 3-Kanal 2-Fach Multiplexer, 
bidirektional, bei Reichelt 18 Cent).

von edi (Gast)


Lesenswert?

4066

von Markus Burrer (Gast)


Lesenswert?

@ Stefan: Hast Du ein Protokoll für den Bus? Hab nämlich auch nen Astra 
und mich würde das evt auch interessieren. Gibt es da eine Beschreibung 
des ganzen irgendwo im Netz?

Gruß
Markus

von Stefan Heindel (Gast)


Lesenswert?

Ja, habe das Signal selbst gehackt. Aber von Eelke Visser (einer aus den 
Niederlanden) gibts infos zu dem Protokoll. Werde in Zukunft 
Bordcomputer mit (fast) allen Schikanen verkaufen, sie laufen bei mir 
schon sehr gut und zuverlässig. Sind für Corsa/Tigra/Astra geeignet. Für 
mehr infos schaust du mal auf www.opel-problemforum.com . Da suchst du 
mal nach "Display protocol" oder "individuelles TID/MID". Da wirst du 
fündig

von Lars Wolf (Gast)


Lesenswert?

Hallo Stefan,
habe gerade mal auf der Opel Page geschaut. Man findet auch was unter
dem Link, aber wenn man dann auf die Hompage geht wo es den Comp. geben
soll ist nichts da!
Kann man sich mal deinen Bordcomputer anschauen?
Was für Funktionen hat er denn.
Mfg Lars

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.