Forum: Mikrocontroller und Digitale Elektronik STM32 SPI DMA Jitter


von Detlef _. (detlef_a)


Lesenswert?

Hi,

Ich verwende ein STM32F767 Nucleo-144 board mit einem STM32F767ZIT6 
Prozessor.

Mit CubeIDE konfiguriere ich SPI1 als I2S input und pumpe die Daten über 
den DMA2/Stream0 in einen kleinen 8x16Bit circular buffer. Die clock vom 
SPI1 ist ~ 3MHz. Ich habe die HAL_I2S_RxHalfCpltCallback() und 
HAL_I2S_RxCpltCallback() Routinen aufgesetzt. In beiden Routinen toggle 
ich einen GPIO und bekomme ein ~23.8kHz Rechteck signal. Das geht alles 
wunderbar.

Aber: Das Rechteck Signal hat zwei verschiedene Arten von Jitter. 
Erstens einen konstanten jitter ~ 100ns, der von der unterschiedlich 
langen Reaktionszeit des uC auf den Interrupt stammt.

Zweitens ist manchmal für Bruchteile von Sekunden das Tastverhältnis des 
Rechtecks um ~ 330ns geändert. 330ns ist der Kehrwert der 3MHz clock.

Wie werde ich den 330ns Jitter los, woher kommt der? Ich habe den 
HAL_DMA_IRQHandler() bis auf die Knochen abgespeckt. Ich habe auch die 
Interrupt Prioritäten ohne Erfolg geändert.

THX
Cheers
Detlef

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.