Forum: Mikrocontroller und Digitale Elektronik STM32F103 PWM DMA ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Markus (Gast)


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

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.