Académique Documents
Professionnel Documents
Culture Documents
Pour commencer un nouveau projet à partir d’un projet existant, depuis le volet Project Explorer,
copier le projet puis coller le projet. Renommer ensuite le fichier .ioc avec le même nom,
exactement, que le projet. Supprimer le dossier debug et le fichier .launch. Compiler.
Cette partie amène à mettre en œuvre la sortie analogique avec le DMA, en passant par l’outil
de configuration CubeMX.
L’application visée est de générer un signal sinusoïdal sur la sortie DAC (PA_4), avec 1 fréquence
variable, ce qui permet de générer des notes de musique.
Le convertisseur numérique analogique est un convertisseur 12 bits. Il est connecté en sortie à la
prise BNC X3 et à un amplificateur audio. Un cavalier permet de relier ou non le haut-parleur à
l’amplificateur.
Il est aussi possible de copier une table avec des valeurs pré-calculées (look-up table) en
mémoire programme :
const uint16_t sinus12bit[360]= {2048,2050,...};
On ajoute un canal DMA pour libérer la CPU de l’envoi du tableau de valeur case par case au
DAC. Pour cela on ajoute le canal 5 du DMA 1 (DMA1_Stream5), c’est celui qui est réservé à la
sortie DAC1.
Pour que le signal se répète une fois le tableau terminé, on choisit le mode Circular.
Remarque : le débogueur utilise pour la fonction Serial Wire le timer 6, dont l’interruption est
aussi associée aux erreurs du DAC. Pour travailler avec ce DAC, on gagne en clarté à mettre le
débogueur sur le timer 10 et désactiver l’interruption du timer 6.
Une fois ces configurations terminées, on génère le projet (Project > Generate Code).
3. Le programme
Q3.1 Stopper (Halt) l’exécution du programme et regarder la sortie analogique. Que conclure sur
le fonctionnement du DMA et de la CPU ?
Q3.2 Quelle est la période d’échantillonnage ? Quelle est la période de lancement de
l’interruption du DMA ?
}
/* USER CODE END 4 */
4.3. Personnalisation du programme
Ajouter le code nécessaire avec le buffer (2 tableau pour chaque demi-buffer) et son
remplissage.
5. Bibliographie
https://www.st.com/resource/en/datasheet/stm32f746ng.pdf
https://www.st.com/resource/en/reference_manual/rm0385-stm32f75xxx-and-
stm32f74xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
• AN3126 Audio and waveform generation using the DAC in STM32 products (avec
notamment un paragraphe Using the DAC to implement an audio player)
• AN4031 Using the STM32F2, STM32F4 and STM32F7 Series DMA controller
6. Evaluation
Q1.1 Principe du DMA
Q1.2 Périphériques pouvant exploiter le DMA ?
Q1.3 Principe d’un convertisseur numérique analogique,
Q3.1 Stop exécution. Que conclure sur le fonctionnement du DMA et de la CPU ?
Q3.2 Quelle est la période d’échantillonnage ?
Quelle est la période de lancement de l’interruption du DMA ?
Q4.1 Principe du double buffer.
Q4.2 Donner le code commenté