www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik interrupt für die "spi-daten"


Autor: roboterheld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, wann wird eigentlich der interupt für "spi" aufgerufen. welche 
situation muss erfüllt sein?

mfg

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  roboterheld (Gast)

>hallo, wann wird eigentlich der interupt für "spi" aufgerufen. welche
>situation muss erfüllt sein?

Meistens wenn die Übertragung eines Bytes abgeschlossen ist.

MFG
Falk

Autor: roboterheld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn der master sendet werden ja die daten vom spi-interrupt als 
abgeschlossen empfangen gemeldet. da die datenrate sehr hoch ist, möchte 
ich mal wissen, wie der datentransfer kontrolliert von statten geht.
nach dem motto : byte raus vom master, slave empfängt und der user packt 
die daten in irgendeine variable und gibt zum master das go, das nächste 
byte zu senden. wie wird das im regelfall reguliert.

mfg

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ roboterheld (Gast)

>wenn der master sendet werden ja die daten vom spi-interrupt als
>abgeschlossen empfangen gemeldet.

???
Komischer Satz.
Der Interrupt meldet (bei den meisten uCs) das Ende der Übertragung. 
Sende und Empfangen wird gleichzeitig, auf getrennten Leitungen.

> da die datenrate sehr hoch ist, möchte
>ich mal wissen, wie der datentransfer kontrolliert von statten geht.

SPI

>nach dem motto : byte raus vom master, slave empfängt und der user packt
>die daten in irgendeine variable und gibt zum master das go, das nächste
>byte zu senden. wie wird das im regelfall reguliert.

AVR-Tutorial: Schieberegister

MFG
Falk

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner wrote:

> Der Interrupt meldet (bei den meisten uCs) das Ende der Übertragung.
> Sende und Empfangen wird gleichzeitig, auf getrennten Leitungen.

Vielleicht wollte er ja darauf hinaus, dass SPI eher für
Hardware-Slaves geeignet ist denn für Controller-Slaves.  Im Prinzip
ist es ja einfach ein Schieberegister.  Da es keine flow control gibt
(anders als z. B. bei I²C), kann der Slave nicht mitteilen, dass er
die Daten noch gar nicht bereit gestellt hat -- er muss es einfach
innerhalb der vorgesehenen Zeit getan haben.

Wenn du nun für die Bereitstellung der Daten erst noch das soeben
empfangene Byte auswerten musst (damit du weißt, welche Daten es
denn sein sollen), und das vielleicht auch noch als Reaktion auf einen
SPI-Interrupt (mitsamt seiner Interruptannahme-Zeit), dann muss der
Master schon ein ganzes Weilchen ,,freiwillig'' vorher warten.

Der SPI-Interrupt hat eigentlich nur Sinn, wenn die Zeit für die
Datenübertragung (auf Grund einer geringen SPI-Taktrate im Vergleich
zur CPU-Frequenz) sehr langsam von Statten geht.  Da die Slaves in der
Regel wirklich in Hardware gegossen sind und oft sehr hohe SPI-Raten
verkraften, wird man die Benutzung dieses Interrupts nicht sehr
häufig antreffen.

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.