mikrocontroller.net

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


Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ? :(

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

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

Ralf

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.