mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "I2C Bridge"


Autor: Stefan Heindel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Heindel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Heindel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Heindel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lars Wolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.