Gundlagen IIC Slave - Mehrere Bytes empfangen

Gast #529474
Lesenswert?
• ▲
▼
Hallo ihr alle,

ich möchte von einem Controller (übrigens PIC18F2620) mehrere Bytes zu 
einem anderen schicken. Dabei soll der der sendende Controller der 
Master sein.
Dabei sendet der Master (bisher) die Slave-Adresse und danach alle 
Datenbytes, der Slave ist auf "interrupt on address match" eingestellt.

Nun meine Frage: Wie muss der Slave die folgenden Bytes erkennen, 
nachdem er den Adressinterrupt erhalten hat? Wird bei IIC automatisch 
mit jedem Byte ein startkondition gesendet, auf diese könnte ich einen 
Interrupt erzeugen lassen?

Ich hoffe, einer von euch erbarmt sich und hilft mir weiter, auch wenn 
hier so viele Fragen zum Thema gestellt werden.

Vielen Dank im Voraus,
Bernhard
Gast #529482
Lesenswert?
• ▲
▼
>Wie muss der Slave die folgenden Bytes erkennen, nachdem er den
>Adressinterrupt erhalten hat?
Gar nicht (s.u.)
> Wird bei IIC automatisch mit jedem Byte ein startkondition gesendet,
>auf diese könnte ich einen Interrupt erzeugen lassen?
 Es wird eine Startcondition gesendet, danach_ _ein Adressbyte und 
bis zu r Stopcondiditon sind alle Bytes für diesen einen Slave. Der 
I²C wird doch in den meisten Datenblättern gut erklärt, wozu also die 
Frage ? :(
Gast #529498
Lesenswert?
• ▲
▼
Zuerst mal danke für deine schnelle Antwort. Also bleibt mir scheinbar 
nichts anderes übrig, als nach dem Adressinterrupt den Puffer zu pollen.

>> Der I²C wird doch in den meisten Datenblättern gut erklärt
In den Datenblättern und, zumindest den 5 Erstbesten, ANs der PICs IMHO 
nicht.

Viele Grüße,
Bernhard
(Firma: Promaxx.net) #529520
Lesenswert?
• ▲
▼
Nein,
der PIC erzeugt für jeden Zustand einen Interrupt.
Für jedes Zeichen gibt es einen Start (oder auch repeated Start), ein 
Byte, ein ACK-Bit und einen Interrupt, der ausgewertet wird. In der ISR 
fragt man dann, ob Adresse oder Daten übertragen wurden und speichert 
die Daten ab.
Nix Polling !

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.