Cours:TPS 2103 tp ampliAudio

De troyesGEII
Révision datée du 11 mars 2019 à 12:19 par Bjacquot (discussion | contributions) (Mode PWM Timer4)
Aller à : navigation, rechercher

Retour à la liste des Tps

Éléments de correction


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

Todo.jpg 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.



Arduino Leonardo

Entrées

touches multiplexées ? uart ? mcp23008 i2c ?

Sortie

MLI timer 10 bits (ou 8), ftimer par pll 64MHz