I2C Anfängerfrage Datenübertragung

I2C-Controller mit FIFO sind mir nicht bekannt, wäre auch nicht wirklich 
praktikabel.

I2C arbeitet paketorientiert (Start, Adresse, Datenbytes 0 .. n, Stop).
D.h. wenn Du nen SW-Puffer einrichtest, sollte der ein ganzes Paket 
fassen können.
Ansonsten nützt Dir der Puffer nichts, da dann doch der Master wieder 
auf den Slave warten muß (SCL-stretching).


Peter
Gast
wie Peter schon sagte, ist es genaugenommen kein FIFO, sondern einfach 
ein Speicher, dessen Inhalt versendet wird.

Wenn du Pakete versenden willst, die größer als die 4 Byte sind (davon 
geh ich jetzt mal aus), dann kannst du erst manuell die Start-Condition 
erzeugen (gibt´s in der Regel irgendein Flag, das man setzen muss) und 
danach wird der Inhalt der 4 Register (oder ggf auch weniger, wenn 
entsprechend konfiguriert) versendet.
Danach folgen dann deine Daten in 4Byte großen Paketen.
Am Ende der Übertragung stzt du eine Stop-Condition.

Du sendest also eine Start-Condition und dann teilst du dein Telegramm 
in 4Byte große Häppchen auf und versendest die einfach nacheinander. 
Wenn du damit fertig bist, kommt noch die Stopp-Condition

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.