Cours:TPS 2103 tp powerfuses : Différence entre versions
m (→{{Bleu|Mode d'économie d'énergie}}) |
m (→{{Bleu|Mode d'économie d'énergie}}) |
||
| Ligne 84 : | Ligne 84 : | ||
{{Cours:tabSleepMode}} | {{Cours:tabSleepMode}} | ||
| − | '''Remarque''' : Les | + | '''Remarque''' : |
| − | + | *Les TIMERs utilisent (sauf cas particulier) l'horloge {{Rouge|CLKio}} | |
| + | *Le registre {{Rouge|PRR}} permet une gestion plus fine de l'économie d'énergie | ||
={{Rouge|Servo moteur}}= | ={{Rouge|Servo moteur}}= | ||
Version du 8 mai 2016 à 16:56
Nous utiliserons un atmega328p en format DIP, que nous placerons sur une plaque à essais(le µcontrôleur présent sur les cartes arduino).
Sommaire
Câblage
Alimentation
Il faut bien évidemment alimenter notre composant.
On prendra une alimentation 5V continue, sur laquelle vous relierez un ampèremètre qui nous permettra de faire des mesures de consommation.
Pensez à relier tous les GND, ainsi que la broche AVCC (tension pour le convertisseur analogique-numérique).
Programmation
Nous utiliserons un programmateur olimex avr-isp mkii, qu'il convient de relier correctement au µcontrôleur.
La figure ci-contre d'une part, et celle en début de document d'autre part, sont suffisante pour réaliser le câblage.
Attention, le connecteur ISP tel que représenté est une vue du connecteur mâle normalement soudé sur la carte électronique à programmer. Il faut de servir du bossage sur le connecteur qui indique le côté de la broche n°1.
On ne connectera pas le VCC/VTG du connecteur de programmation, le µcontrôleur étant déjà relié à une alimentation.
Vérification
Vérifions que le µcontrôleur est bien connecté en exécutant l'instruction suivante qui permet de tester la communication avec le programmateur :
avrdude -c avrisp2 -P usb -p m328p
Remarque : si cela ne fonctionne pas, il peut être nécessaire d'ajouter un Quartz entre les broches XTAL1-XTAL2
Source d'horloge
Dans cette partie, nous allons modifier la configuration du µcontrôleur au travers de ces fusibles.
L'objectif est de comparer différentes horloges et d'étudier les conséquences en terme de consommation.
Attention, modifier les fusibles n'est pas sans conséquences, et une mauvaise manipulation peut entraîner un blocage irrémédiable du µcontrôleur. En cas de doute, faire vérifier votre configuration !
Signal périodique à 1kHz
Nous souhaitons générer un signal à 1kHz, en utilisant le module adapté : un timer.
L'objectif n'étant pas ici de consacrer notre temps à la configuration de ce timer, vous pouvez utiliser cette page de calcul libreoffice. Il va sans dire que le timer sera :
- configuré en mode CTC
- Fcomparaison = 2.Fsortie (Fréquence de comparaison et Fréquence du signal de sortie)
- la sortie sera directement pilotée par le timer (configuration du module de sortie avec bits COMxxx)
Choisissez un timer, branchez un oscilloscope et observez signal et consommation pour :
- Oscillateur interne 1MHz
- Oscillateur interne 8MHz
- Oscillateur interne 128kHz
- Oscillateur externe 16MHz (Quartz)
La sélection de l'horloge s'effectue grâce aux fusibles.
La description est donnée partie 9 (page 27 et suivantes) de la datasheet atmel de l'atmega328p.
Comparer les résultats pour les différentes horloges
Mode d'économie d'énergie
Passez à la suite si vous avez passé plus de 30 minutes sur la question précédente !
On souhaite aller un peu plus loin dans la gestion de la consommation.
A l'aide de la datasheet pages 39 et suivantes (partie 10), passez le µcontrôleur en mode d'économie d'énergie
Pour configurer ce mode d'économie d'énergie, vous utiliserez les fonctions du fichier avr/sleep.h,
dont :
- sleep_enable() : autorise l'entrée dans un mode d'économie d'énergie
- set_sleep_mode(mode) : mode à utiliser tel qu'indiqué dans le tableau ci-dessous
- sleep_mode() : passe le µcontrôleur dans le mode configuré
| Sleep Mode | valeur programme c |
|---|---|
| idle | SLEEP_MODE_IDLE |
| ADC Noise Reduction | SLEEP_MODE_ADC |
| Standby | SLEEP_MODE_STANDBY |
| Power-Down | SLEEP_MODE_PWR_DOWN |
Remarque :
- Les TIMERs utilisent (sauf cas particulier) l'horloge CLKio
- Le registre PRR permet une gestion plus fine de l'économie d'énergie
Servo moteur
MLI
faire tourner le servo entre ses valeurs extrêmes.
Potentiomètre
changer la valeur de MLI en fct de la position du potentiomètre
Consommation
activer le mode économie d'énergie
Monostable
1bp et 1 led
non configurable
- minimiser consommation
- mode redéclenchable ou non redéclenchable (on peut ajouter un interrupteur pour le choix du mode)
durée modifiable
ajouter un potentiomètre pour modifier le temps de déclenchement.
