Cours:TPS 2103 tp ampliAudio

De troyesGEII
Aller à : navigation, rechercher

Retour à la liste des Tps

Éléments de correction

Matériel

Nous utiliserons :

  • 1 carte arduino Leonardo (atmega32u4)
  • 1 plaque à essais
  • 1 résistance
  • 1 condensateur
  • fils M-M
  • 1 oscilloscope
  • 1 sonde de tension
  • 1 ampli audio

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.

Todo.jpg Choisir le prédiviseur le plus adapté (p168) et modifier en conséquence votre programme

Test

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

Todo.jpg Calculer la valeur de OCR4C (rappel valeur maximum 255) pour obtenir une fréquence de MLI de 250kHz.

Todo.jpg Modifier le programme

Entrées

touches multiplexées ? uart ? mcp23008 i2c ?

Sortie

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