Forum: Mikrocontroller und Digitale Elektronik Gundlagen IIC Slave - Mehrere Bytes empfangen


von Bernhard (Gast)


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

von Joerg X. (Gast)


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 ? :(

von Bernhard (Gast)


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

von Ralf (Gast)


Lesenswert?

Dann guckst du mal auf der Philips Homepage, die haben I2C erfunden, und 
haben eine wirklich gute allgemeine Doku.

Ralf

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


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 !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.