Zvukový výstup pomocí PWM (2014)

PWMTone

Jelikož základní a nižší řady procesorů STM32 nemají regulérní zvukový výstup, je nutné zvukový signál generovat „ručně“. Nejjednodušším způsobem pro získání zvuku je využití interních časovačů procesoru.

Zvuk lze vytvořit pomocí obdélníkových pulzů (nejlépe se střídou 50%), kde délka pulzu odpovídá frekvenci výstupního tónu. Se střídou 50% je zvuk nejintenzivnější. Pomocí střídy lze tedy ovlivnit hlasitost výstupních tónu.

Pro vytvoření obdélníkového pulzu o dané frekvenci je nutné přenastavit časování vnitřního časovače. Toto je potřeba udělat pro každý samostatný tón. Oproti střídě, kterou lze nastavit pro každý kanál časovače zvlášť, toto nastavení ovlivní celý časovač. Zbývající kanály proto nelze rozumně využít pro jiné účely.

Vytvořená knihovna zapouzdřuje veškerá nutná nastavení a navíc umožňuje přehrávat nadefinované melodie. U melodie lze volit jednotlivé tóny, jejich trvání a hlasitost. Aby však bylo zadávání melodie jednodušší, je možné provést import z textového řetězce ve formátu, kterým se definovala vyzvánění v telefonech Nokia.

Ukázka využití knihovny pro generování zvukového výstupu je dostupná na stránce

Kliknutím na název zobrazíte zdrojový kód
LibPWMTone.h - header file
Download
LibPWMTone.c - source code
Download

Go back to STM32