Forum: Mikrocontroller und Digitale Elektronik STM32 SPI: keine kontinuierliche Ausgabe (ohne Pause)?


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

Was hast du denn da gemessen? Digital sieht das nicht aus.

von Falk B. (falk)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

Stefan ⛄ F. schrieb:
> Was hast du denn da gemessen?

Mit mieser Masseverbindung, wenn's dumm kommt ohne Tastkopf.

von Daniel (Gast)


Lesenswert?

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
von Martin B. (ratazong)


Lesenswert?

<< 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

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Zwischen den einzelnen Blöcken/Bytes muss natürlich ggf. noch die 
zugehörige Slave-Select-Leitung deaktiviert und wieder aktiviert werden.

von Martin B. (ratazong)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.