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