top of page

Jouer du son avec un STM32G0

Dernière mise à jour : 12 déc. 2023


Bien souvent, les dispositifs électroniques sont accompagnés d'un effet sonore : un "bip", un son ou encore une mélodie.


Pour plusieurs clients, nous avons déjà ajouté cette fonctionnalité de jouer du son avec un STM32G0 de ST. Il s'agit d'un microcontrôleur (microprocesseur pour des objets légers, le cerveau du dispositif) offrant un très bon rapport qualité-prix, couramment utilisé dans de nombreux produits industriels en cours de conception.


Il existe alors trois possibilités :


Le son synthétique (comme un buzzer) :

  • Avantages : Facilité de mise en œuvre et imbattable au niveau du prix.

  • Inconvénients : Les sons sont limités, ce qui est acceptable pour une alarme industrielle, mais peuvent paraître dépassés pour un produit moderne.

Le son compressé (en MP3, par exemple) :

  • Avantages : Permet de réduire l'espace de stockage nécessaire.

  • Inconvénients : Nécessite davantage d'efforts de calcul de la part du microcontrôleur, ce qui peut être problématique s'il est déjà très sollicité.

Le son non compressé (équivalent aux fichiers WAV) :

  • Avantages : Exige des efforts de calcul négligeables.

  • Inconvénients : Nécessite plus d'espace pour le stockage des sons.

La méthodologie pour les sons compressés et non compréssés est similaire.


Il faut avant tout définir la durée des sons à jouer ainsi que leur qualité. Une approche intelligente est possible. Par exemple, un triple bip peut correspondre à un seul bip répété trois fois. La qualité des sons peut varier d'un son à l'autre. Toutes ces astuces permettent de réduire la taille nécessaire pour la mémoire de stockage.


On peut alors dimensionner le matériel de manière optimale. On obtient une architecture (les blocs à prévoir sur la carte) comme celle-ci :


STM32G0 relié à une mémoire non volatile SPI et un codec audio
Architecture audio à base de STM32G0

Lors du développement logiciel, dans le cas des sons non compréssés, en utilisant des fonctions avancées telles que les DMA (Direct Memory Access, qui agissent comme des 'assistants' dans le microcontrôleur), il est possible de jouer des sons de bonne qualité tout en consommant environ 5 % de la capacité de calcul du STM32G0.


Il est également nécessaire de prévoir des développements accessoires tels qu'une application PC permettant d'organiser les sons dans un fichier destiné à la programmation de la mémoire non volatile. De plus, une adaptation du STM32CubeProgrammer est requise pour supporter cette mémoire (fichier STLDR).


En conclusion, un microcontrôleur bon marché est capable de supporter des effets sonores de qualité tout en poursuivant ses autres tâches avec quasiment la même capacité. Cela requiert un savoir-faire que Leolab est en mesure de vous fournir.

Comments


© 2023 Leolab

Leolab

09 52 75 86 66

13 boulevard de l'industrie

49000 Ecouflant, France

09 52 75 86 66

09 52 75 86 66

09 52 75 86 66

09 52 75 86 66

bottom of page