Ich beobachte gerade etwas merkwürdiges: Meine SPI (MASTER FPGA, SLAVE STM32) Verbindung inkl. NSS, läuft an sich hervorragend. Wenn ich nun das FPGA im Betrieb rekonfiguriere, fängt sich diese Verbindung nicht mehr ein und es besteht ein entsprechender bit offset (Synchronisationsfehler wie man es ohne NSS erwarten würde). Sysclk im FPGA ist 100MHz, timings siehe Anhang. (bitte nur den plot mit MISO beachten) Wieso synchronisiert der STM nicht auf das NSS Signal?
:
Bearbeitet durch User
Da gibt es min zwei ausführliche Appnotes, das ist beim H7 sehr kompliziert. Habe bisher nur den SPI Master benutzt.
J. S. schrieb: > zwei ausführliche Appnotes Ich kenne aktuell nur das AN5543 (Enhanced methods to handle SPI communication on STM32 devices): Bezüglich NSS: SPI is a synchronous interface and it demands proper synchronization between the nodes to ensure a correct data handling. The only synchronization signals featured by SPI are NSS/SS, hence the user must be vigilant of any desynchronization symptoms. Damit bin ich zu 100% einverstanden, deshalb nutze ich auch NSS :P. Hast du mir bitte den link zum entsprechend anderen Appnote?
Keine AppNote, aber eine Feature Präsentation war das Dokument: https://www.st.com/content/ccc/resource/training/technical/product_training/group0/52/17/7a/28/2b/90/41/7d/STM32H7-Peripheral-Serial_Peripheral_interface_SPI/files/STM32H7-Peripheral-Serial_Peripheral_interface_SPI.pdf/_jcr_content/translations/en.STM32H7-Peripheral-Serial_Peripheral_interface_SPI.pdf
Als Workaround eventuell NSS als GPIO konfigurieren und dann per Polling oder Interrupt den SPI resetten und neu initialisieren? Kostet natürlich etwas Rechenzeit. Ansonsten ist dein Anwendungsfall vermutlich eher eine Nische mit entsprechend wenig Leuten die dir helfen können.
Malte _. schrieb: > Als Workaround eventuell NSS als GPIO konfigurieren und dann per Polling > oder Interrupt den SPI resetten und neu initialisieren? Kostet natürlich > etwas Rechenzeit. > Ansonsten ist dein Anwendungsfall vermutlich eher eine Nische mit > entsprechend wenig Leuten die dir helfen können. Die Busauslastung ist relativ hoch, müsste dafür die SCK frequenz relativ stark erhöhen (kommt aber an die limite des STM welcher max ca. 30 MHz im slave bidirectional), damit NSS high time genügend lang würde um die Daten per ISR rauszuholen und den SPI zu reseten. Hätte auch eine gewaltige CPU Last zur Folge. Dem DMA Kontroller scheint die aktuelle Zeit für den transfer zu genügen (evtl. auch nur dank den FIFOs im SPI, aber es läuft). Der Link FPGA-> STM funktioniert scheint nach ersten Erkenntnissen (mit Einbezug des NSS) korrekt. Die Antwort MISO des STMs ignoriert NSS. Alternativ als workaround wäre ein Master/Slave Tausch möglich. Ist aber eine discouraged Lösung.
:
Bearbeitet durch User
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.