Se connecter
Se connecter

ou
Créer un compte

ou

Sujet micro-contrôleur: Attaquer une bibliothèque I2S/DMA, votre aide SVP.

  • 0 réponse
  • 1 participant
  • 471 vues
  • 0 follower
1 micro-contrôleur: Attaquer une bibliothèque I2S/DMA, votre aide SVP.
Salut à tous. :bravo:

Ca fait un bout de temps que je sèche sur l'utilisation du Direct Memory Access. C'est pourtant un outil important: la plupart de mes projets Arduino tournent autour de la synthèse audio.
Jusqu'à maintenant j'ai toujours utilisé une méthode bâtarde qui consiste à faire le calcul de la synthèse audio dans un ISR qui tourne à la fréquence du DAC. Ca génère évidemment plein d'interruptions mais je n'ai jamais réussi à programmer mieux.

Avec mon passage récent à l'ESP-32 il est devenu plus que temps de progresser sur le sujet... et j'ai vraiment besoin d'aide. :oops:

L'ESP32 permet la communication I2S depuis le DMA vers un DAC externe.
Je me suis procuré un DAC stéréo 24bits et ai réussi à faire fonctionner quelques exemples qui utilisent une bibliothèque "AudioOutputI2S" pour lire des fichiers .wav ou des cartes SD...
Malheureusement les exemples sont peu parlants parce qu'ils intègrent d'autres bibliothèques qui ne m'intéressent pas, au final j'ai vraiment du mal à décortiquer tout ça.

D'après ce que je comprends, tout ce dont j'aurai besoin se trouve dans cette bibliothèque:

https://github.com/earlephilhower/ESP8266Audio/blob/master/src/AudioOutputI2S.h
https://github.com/earlephilhower/ESP8266Audio/blob/master/src/AudioOutputI2S.cpp

Je commence à me familiariser avec certaines parties du code (options de config) mais ne comprends pas comment l'utiliser. Comment organiser l'accès buffer... je suis paumé en plein milieu d'un désert inconnu, je ne sais pas si c'est un bon point de départ. :|


Bref, si quelqu'un veut bien me guider dans cette petite aventure ce serait absolument super. Evidemment n'hésitez pas à demander des précisions.

Merci d'avance. :bravo:

[ Dernière édition du message le 27/10/2019 à 22:33:45 ]