Hallo Zusammen, Wenn ein Telegramm über spi gesendet wird, muss das ganze Telegeram auf einmal gesendet werden: also die bytes nacheinander ohne Pause, oder am besten den Slave kurze Zeit geben, das er sicher dieses Byte empfangen und gespeichert hat, bevor das nächste Byte gesendet wird?
das steht im Datenblatt des IC. SPI ist ja eigentlich ein Schieberegister. Ich wüsste nicht wozu da Pausen kommen sollten sofern sie nicht vom IC benötigt werden für zB. A/D Wandlung.
Ein Teleram besteht aus 10 Bytes. Der Master kann dann die 10 Bytes ohne Pausen senden, Die SPI Schnittstelle hat auch Fifo-Speicher und sie sendet 4 Bytes sofort. Die Spi-SChnittstelle des Slaves hat kein Fifo-Speicher und kann auch nicht sofort das Byte vom Spi Buffer holen (andere Interrupts haben höhere Priorität).
Martin schrieb: > Wenn ein Telegramm über spi gesendet wird, muss das ganze Telegeram auf > einmal gesendet werden: also die bytes nacheinander ohne Pause, oder am > besten den Slave kurze Zeit geben, das er sicher dieses Byte empfangen > und gespeichert hat, bevor das nächste Byte gesendet wird? Kommt schwerstens auf den Slave an -> Datenblatt. Wenn die Gegenstelle ein selbst programmierter µC ist dann brauct man öfters eine Pause. Die meisten Hardware SPI Slaves eher nicht. Gibt übrigens auch Mischformen: Der ADS1298 von TI braucht bis 4 MHz SPI Takt keine Pause zwischen Kommando Bytes, darüber muss man kurz warten (maximal verträgt er 10 MHz IIRC).
Die Kommunikation ist zwischen zwei pics, dann muss der Master doch Pausen tun. Danke.
Martin schrieb: > Die Spi-SChnittstelle des Slaves hat kein > Fifo-Speicher und kann auch nicht sofort das Byte vom Spi Buffer holen > (andere Interrupts haben höhere Priorität). Hat der Slave denn DMA? Damit wäre man dann auch fein raus. Ansonsten: Pause zwischen Bytes oder langsamen SPI Takt verwenden.
Martin schrieb: > Die Kommunikation ist zwischen zwei pics, dann muss der Master doch > Pausen tun. Dafür ist SPI mit seinen gekoppelten Schieberegistern und der daraus resultierenden unbedingten Synchronität zwischen Master und Slave ein extrem ungünstig gewähltes Interface. Ich hätte das mit einer seriellen Schnitte gemacht... Jim M. schrieb: > Hat der Slave denn DMA? Damit wäre man dann auch fein raus. Auch nicht, weil der Master vermutlich so designt ist, dass er im selben Telegramm schon wieder eine "Antwort" erwartet. SPI funktioniert nur dann gut und schnell, wenn der Master seine Anforderung "jetzt" schickt und dafür gleichzeitig die Antwort auf die "vorherige" Anforderung bekommt. So wie z.B. beim AD-Wandler AD7490: dort wird im selben SPI Transfer der nächste zu wandelnde Kanal gesendet und die Daten der vorigen Anforderung empfangen.
:
Bearbeitet durch Moderator
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.