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.
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
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
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
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
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).
@ 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
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
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
Eine eigene Frage?
Dieser Thread ist über 23 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.