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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren