hallo, wann wird eigentlich der interupt für "spi" aufgerufen. welche situation muss erfüllt sein? mfg
@ 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
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
@ 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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.