Hallo :) Nach jedem Byte macht der STM32G0 eine Übertragungspause von ca 1 Clock. Bisher war es immer egal, aktuell benötige ich aber ein fortlaufenden Datenstream. Ist das mit dem SPI-Controller des STM32 möglich? Danke
Was hast du denn da gemessen? Digital sieht das nicht aus.
Daniel schrieb: > Nach jedem Byte macht der STM32G0 eine Übertragungspause von ca 1 Clock. > Bisher war es immer egal, aktuell benötige ich aber ein fortlaufenden > Datenstream. Meinst du nicht eher Datastrom? ;-) > Ist das mit dem SPI-Controller des STM32 möglich? Keine Ahnung, aber die Lücke sieht mir eher nach einem Softwareproblem aus. Wie wird dein SPI angesteuert? Per CPU oder DMA?
Stefan ⛄ F. schrieb: > Was hast du denn da gemessen? Mit mieser Masseverbindung, wenn's dumm kommt ohne Tastkopf.
Die Masse kommt über ein STLink, stellt aber hier nicht das eig Problem dar. Und angesteuert wird über DMA.
1 | response2 = HAL_SPI_Transmit_DMA(&hspi2, pData2, 4); |
[Mod: entweder [code] oder [c]. Aber auf jeden Fall klein]
:
Bearbeitet durch Moderator
<< Ist das mit dem SPI-Controller des STM32 möglich? Hallo, wie hast Du denn die SPI Schnittstelle konfiguriert? Es gibt 2 Möglichkeiten. 1) Mit automatischem CS Signal 2) um CS musst Du Dich selber kümmern bei 1) zieht er nach jedem byte CS auf Low und wieder high. Das dauert einen Takt. Sieht also so aus, wie bei Dir. Also versuche mal die Stelle zu finden, wo Du konfigurierst. Ich kenne den chip nur in der F4 Version, aber das macht, glaube ich, keinen Unterschied. Jedenfalls sollte das gehen. Martin
Zwischen den einzelnen Blöcken/Bytes muss natürlich ggf. noch die zugehörige Slave-Select-Leitung deaktiviert und wieder aktiviert werden.
Andreas S. schrieb: > Zwischen den einzelnen Blöcken/Bytes muss natürlich ggf. noch die > zugehörige Slave-Select-Leitung deaktiviert und wieder aktiviert werden. Das sieht doch eher so aus, als wenn er einen Bitmustergenerator bauen möchte, oder für Audio missbrauchen, sonst würden die Pausen nicht stören. Für Audio habe ich das mit STM32F411 schon mal gemacht, das geht mit zirkularer DMA kontinierlich.
Martin B. schrieb: > bei 1) zieht er nach jedem byte CS auf Low und wieder high. Das dauert > einen Takt. Sieht also so aus, wie bei Dir. > > Also versuche mal die Stelle zu finden, wo Du konfigurierst. Danke, das war es :)
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.