Forum: Mikrocontroller und Digitale Elektronik STM32F103 PWM DMA ?


von Markus (Gast)


Lesenswert?

Hat schon mal jemand versucht, die PWM des STM32F103 per DMA zu 
beschreiben? Ich bin auf der Suche nach einem Code-Beispiel

von Markus (Gast)


Lesenswert?

Hier gibt es zumindest schon mal eine PWM ohne DMA:
https://github.com/fejfighter/ecte350/blob/master/Examples/TIM/PWM_Output/main.c

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Markus schrieb:
> Ich bin auf der Suche nach einem Code-Beispiel

Wofür? Um WS2812-LEDs zu beschicken?

Dann hier mit DMA, lauffähig auf STM32F10x und STM32F4xx, damit auch auf 
dem STM32F103.

https://www.mikrocontroller.net/svnbrowser/wordclock24h/src/ws2812/ws2812.c?revision=78&view=markup

: Bearbeitet durch Moderator
von Markus (Gast)


Lesenswert?

>Wofür? Um WS2812-LEDs zu beschicken?

Eher um Audiosignale zu erzeugen.
Die WS2812 brauchen ja eher ein spezielles Protokoll.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Markus schrieb:
> Eher um Audiosignale zu erzeugen.

Okay, der DMA-Teil wäre derselbe. Das passt schon. Im obigen Fall wird - 
um Speicher zu sparen - während des DMA-Transfers die jeweils inaktive 
Hälfte des DMA-Buffers zyklisch nachgeladen. Wenn Du das nicht brauchst, 
weil es erstmal zu kompliziert ist, gehe einfach eine Revision (74) im 
SVN-Browser zurück. Da wird noch ein größerer DMA-Buffer komplett 
geladen und dann einmal rausgeschickt, sozusagen als One Shot.

Wenn das eher ein WAV- oder MP3-Player werden soll, ist die zyklische 
Variante auf jeden Fall für Dich interessanter.

: Bearbeitet durch Moderator
von Markus (Gast)


Lesenswert?

Danke für die Antwort.

Scheinbar gibt es eine einfach Möglichkeit, einen STM32F103 in der 
Arduino IDE zu programmieren.

Und es scheint, so dass einige Leute die DMA-PWM aus der Maple-Lib zum 
Synthesizerbau nutzen:

https://github.com/leaflabs/libmaple

von Holger (Gast)


Lesenswert?

Bei ST gibt es eine AppNote dazu. Markus wird es sicherlich finden 
können, wenn er denn will...

von Markus (Gast)


Lesenswert?

Ob der Holger wohl die ID-Nummer der App-Note posten könnte, wenn er sie 
schon hat?

von Jürgen (Gast)


Lesenswert?

Hier gibt es eine Application Note mit dem Namen

"PWM resolution enhancement through a dithering technique"

http://www.st.com/en/embedded-software/x-cube-pwm-dithr.html


Ärgerlich nur, dass man einen Account bei ST braucht, um den Code 
herunter zu laden.

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.