Hallo, ich brauche eigentlich nur ein simplen schnellen SPI Master der an einen Slave übermittelt. Ich habe den von Lothar Miller aus http://www.lothar-miller.de/s9y/archives/51-Konfigurierbarer-SPI-Master.html genommen jedoch ist die Übertragungsrate bis die Bits übertragen sind zu langsam. Ich habe ein 16 bit SPI Slave und würde gerne diesem in max. in 20 Takten die Daten übergeben. Zum SPI: CPHA ist 0 CPOL ist 1. Ich würde gerne das die SPI-Taktfrequenz bzw. SCLK gleich dem CLK ist. Das ist jedoch bei dem Code nicht möglich. Habe es schon versucht zuändern, aber dann macht es nur mist :-( Wäre um jeden rat dankbar oder kennt jemand einen anderen SPI Master?
@ Marc K. (marc1234) >http://www.lothar-miller.de/s9y/archives/51-Konfig... Die Schaltung kann nur CLK/2, ist halt sehr flexibel konfigurierbar. mit CLK = SCLKm gibt es so einige Probleme, wenn man es zu lax angeht. >genommen jedoch ist die Übertragungsrate bis die Bits übertragen sind zu >langsam. Ich habe ein 16 bit SPI Slave und würde gerne diesem in max. in >20 Takten die Daten übergeben. Geht schon. Muss man halt entweder alles selber stricken oder den Taktteiler rauswerfen, das ist aber eher komplex in der Schaltung. Vorschlag: Selber komplett neu machen, ohne Konfiguration etc. Macht die Sache deutlich einfacher. >Wäre um jeden rat dankbar oder kennt jemand einen anderen SPI Master? ISt ein einfaches Schiebegrgister, Zähler und bissel Logik. Siehe oben.
So wie ich SPI kennengelernt habe, sollten an der Datenleitung MOSI die Daten schon anliegen haben, wenn SCLK auf high geht. Anders hat es bei mir nicht sehr sauber funktioniert. Deshalb habe ich das SPI-Protokoll auf 4 Takte verteilt. Das läuft sehr stabil. Wie das in einem Takt gehen soll, dass weiss ich nicht. Ich würde es auch einmal mit einer PLL versuchen.
PittyJ schrieb: > Anders hat es bei mir nicht sehr sauber funktioniert. Dann hast du den falschen SPI-Mode verwendet. > Wie das in einem Takt gehen soll, dass weiss ich nicht. Sieh dir dort das Bild mit den Schieberegistern an: da ist nur 1 Takt. http://www.lothar-miller.de/s9y/categories/17-SPI Und das geht garantiert,denn genau so hat Motorola das SPI-Protokoll aufgebaut und spezifiziert: KISS = Keep it Simple and Stupid Es gibt theoretisch 2 Vorgänge beim SPI: 1. Daten auf den Bus geben zur einen Flanke des SPI-Clocks 2. Daten übernehmen mit der anderen Flanke des SCLKs Aaaaaber! Letzlich sind das nur Flipflops, und Flipflops können bedenkenlos zum Schieberegister hintereinander geschaltet werden (74hc595 und Co.), wenn es zu keiner Race-Condition kommt. Wenn also der Takt nicht langsamer durch die Schaltung wandert als die Daten. Und aus diesem Grund gibt es "normalerweise" nur 1 Flanke, bei der was passiert, und einfach die Daten vom Vorgänger übernommen werden. Wenn das alle Flipflops gleichzeitig machen, dann ist eine Aufteilung in 2 oder gar mehr Phasen nicht nötig. Dass dadurch das Design insgesamt (insbesondere zusammen mit dem SS#) nicht schöner und einfacher wird, das bleibt hier mal aussen vor...
Lothar Miller schrieb: > Und aus diesem Grund gibt es "normalerweise" nur 1 Flanke, bei der was > passiert, und einfach die Daten vom Vorgänger übernommen werden Kann man damit Setup und Holdzeiten unter allen Umständen einhalten? Und klappt das auch weiter hinten in der Flipflop Kette? MfG Klaus
Klaus schrieb: > Kann man damit Setup und Holdzeiten unter allen Umständen einhalten? Aus diesem Grund war das "normalerweise" in Anführungszeichen gesetzt. Was ist schon normal? Oft ist zwar genau die Hold-Zeit 0ns oder kann auch gern mal undokumentiert 0ns sein. Und genau das ist der Knackpunkt, warum ich den SPI in 2 Phasen aufteile: es steht nicht unbedingt explizit im Datenblatt, und wenn der Layouter den Takt mal ungünstig verlegt, dann krachts... Die Setupzeit ist beim "Eine-aktive-Flanke"-SPI komplett unkritisch, weil ja schon mit der jetzigen aktiven Taktflanke (z.B. steigend) die Daten für die nächste aktive Flanke (wieder steigend) ausgegeben werden, und damit ein ganzer Taktzyklus Setupzeit zur Verfügung steht. > Und klappt das auch weiter hinten in der Flipflop Kette? Die Position an sich ist egal. Interessant sind immer nur 2 Flipflops: das ausgebende und das empfangende.
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.