Suche Software I2C Slave

Gast #354920
Lesenswert?
• ▲
▼
Kein Problem.

Ich befürchte aber, ich habe mich missverständlich ausgedrcükt, tut mir
Leid. Was ich suche, ist ein "Software-I2C Slave" oder wie nennt man,
damit das deutlicher wird. Also ein I2C Slave, der nur normale Portpins
benutzt und nicht auf ein Hardwareinterface zurückgreift.

Sorry...vielleicht kann mir aber ja trotzdem jemand helfen.
Gast #354924
Lesenswert?
• ▲
▼
Also externe Interrupts muss man glaub ich auf jeden Fall benutzen.
Angenommen so eine Kommunikation wird mal zwischendurch abgewürgt,
würde der Controller ja sonst auch die ganze Zeit hängen bleiben.

Ich weiß nicht, wie das bei den ATMEGA Controllern ist, aber bei die
MSP430 können auf jeden Portpin einen Interrupt erzeugen.

Mein Problem ist halt zur Zeit nur, dass der Controller, den ich
verwende, kein Hardware I2C hat.
#354925
Lesenswert?
• ▲
▼
>Also externe Interrupts muss man glaub ich auf jeden Fall benutzen.
>Angenommen so eine Kommunikation wird mal zwischendurch abgewürgt,
>würde der Controller ja sonst auch die ganze Zeit hängen bleiben.

Den ext Interrupt benötigt man eigentlich nur, um die ganze Prozedur zu
starten.

Und anschließend könnte man durch einen Timer o.ä. die einzelnen
I2C-Bits abfragen und ggf auch BITS an den Master senden.

Ein Fehler in der Kommunikation könnte somit korrigiert werden.

>Ich weiß nicht, wie das bei den ATMEGA Controllern ist, aber bei die
>MSP430 können auf jeden Portpin einen Interrupt erzeugen.

Bei den Atmegas sind nur wenige Pins in der Lage einen ext Interrupt
auszulösen.
Gast #354926
Lesenswert?
• ▲
▼
Achso, du würdtest das mit einem Timer machen. Ich hätte jetzt (auch mit
einem Interrupt) das SCL Signal ausgewertet. Beim Lesen mit der
steigenden Taktflanke das Signal einlesen und beim Schreiben mit der
fallenden Taktflanke das nächste Bit rausschieben.
#354927
Lesenswert?
• ▲
▼
>Achso, du würdtest das mit einem Timer machen. Ich hätte jetzt (auch
>mit einem Interrupt) das SCL Signal ausgewertet.

Vielleicht sollte man auch beides miteinander kombinieren?


> Beim Lesen mit der steigenden Taktflanke das Signal einlesen und
>beim Schreiben mit der fallenden Taktflanke das nächste Bit
>rausschieben.

Es kann sein, dass der Slave im Schreibmodus, das Bit vor dem SCL schon
gesetzt haben muss?
Bin ich mir aber auch nicht ganz sicher.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.