Cours:TPS 2103 tp ampliAudio : Différence entre versions
(→Fréquence de la MLI) |
m (→Test) |
||
| Ligne 44 : | Ligne 44 : | ||
==Test== | ==Test== | ||
| + | |||
| + | {{Question|Vérifier le fonctionnement du mode PWM :}} | ||
| + | *Il faudra utiliser un oscilloscope ! | ||
| + | *Incrémenter le rapport cyclique toutes les 10ms par exemple | ||
==Fréquence de la MLI== | ==Fréquence de la MLI== | ||
Version du 11 mars 2019 à 15:19
Sommaire
PWM du TIMER4 d'un atmega32u4
Configuration de la PLL de l'atmega32u4
La gestion de l'horloge de l'atmega32u4 est plus complexe que les µcontroleurs que nous utilisons habituellement.
La fréquence d'horloge du CPU est ici de 16MHz.
Cependant, il existe dans le µcontrôleur différentes horloges dont les fréquences sont gérées par un module PLL.
Ceci est documenté dans les pages 27 à 42 de la datasheet officielle.
Nous ne nous intéresserons pas à cette partie, on utilisera juste le code suivant qui permettra d'avoir une fréquence de 64MHz pour l'horloge du Timer4.
PLLCSR |= (1<<PLLE)|(1<<PINDIV);
PLLFRQ =0;
PLLFRQ |= (1<<PDIV3)|(1<<PDIV1)|(1<<PLLTM1);
Mode PWM Timer4
On va utiliser la sortie OC4A sur la broche PC7. Cela correspond dans la numérotation arduino à la broche n°13 de la carte.
Il est à noter qu'une led est déjà connectée sur cette broche : c'est une led orange sérigraphiée L sur la carte arduino Leonardo.
PWM rapide sur broche OC4A
Compléter votre programme en configurant le registre TCCR4A afin de :
- activer le mode PWM sur la sortie OC4A
- faire en sorte que la sortie soit à l'état 1 tant que la valeur du timer est inférieure à la valeur de comparaison
Prédiviseur
On souhaite avoir la fréquence de MLI la plus grand possible.
Choisir le prédiviseur le plus adapté (p168) et modifier en conséquence votre programme
Test
Vérifier le fonctionnement du mode PWM :
- Il faudra utiliser un oscilloscope !
- Incrémenter le rapport cyclique toutes les 10ms par exemple
Fréquence de la MLI
La fréquence de la MLI dépend bien évidemment de la fréquence de l'horloge du Timer (64MHz ici) de la valeur du prédiviseur (définie précédemment) mais également de la valeur maximum que peut prendre le compteur du TIMER (cf p.153 Fast PWM mode)
Comme détaillé dans le tableau 15-18 p171, la valeur maximum du Timer (notée TOP) doit être définie dans le registre OCR4C.
Calculer la valeur de OCR4C (rappel valeur maximum 255) pour obtenir une fréquence de MLI de 250kHz.
Entrées
touches multiplexées ? uart ? mcp23008 i2c ?
Sortie
MLI timer 10 bits (ou 8), ftimer par pll 64MHz