Utilisation des modes de gestion d'énergie sur 9S08 - Perfectionnement > Méthodologie de programmation - Articles et téléchargements
Utilisation des modes de gestion d'énergie sur 9S08 - Perfectionnement > Méthodologie de programmation - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 
Articles-et-telechargements > Perfectionnement > Méthodologie de programmation > Utilisation des modes de gestion d'énergie sur 9S08

Utilisation des modes de gestion d'énergie sur 9S08

Publié par ybourne le 24/06/2012 (4228 lectures)
environnement.jpg

Introduction :

Il existe plusieurs modes de fonctionnement sur les 9S08 :

    • Le mode RUN,
    • Le mode WAIT,
    • Les modes STOP.

 Selon le besoin de l'application, il est judicieux de jongler avec ces modes.

 Remarque :

Dans ce qui suit, le CPU prit en référence est le 9S08AC. Mais le principe reste identique pour l'ensemble de la gamme, seul la fréquence max d'utilisation peut varier d'un modèle à un autre.

  

Le mode RUN :

C'est le mode qui consomme le plus, mais qui permet d'obtenir le plus de puissance et qui laisse le CPU réceptif à toutes les IT.

 

Le mode WAIT :

Facile à mettre en œuvre, permet de réduire légèrement la consommation à tout moment. L'horloge fonctionne toujours, et la sortie de ce mode est immédiate à la première IT.

On y rentre en lançant l'instruction assembleur WAI. En C, peut se faire de la manière suivante : asm(" wai") ;

 

Les modes STOP :

 Les modes STOP3 et STOP2 sont présents sur tous les 9S08. Certains possèdent en plus un mode STOP1.

 ATTENTION : nécessite d'avoir positionné le bit STOPE dans le registre SOPT, sinon, c'est l'ILOP (ILegal OPeration) assurée !!!

On rentre en mode STOP à l'aide de l'instruction assembleur STOP. En C, peut se faire de la manière suivante : asm(" stop") ;

La principale différence entre ces deux modes de STOP est la consommation. En contre partie, "plus le mode consomme moins", "moins c'est plus facile" d'en sortir.

En effet, pour le mode STOP3, la plupart des interruptions issues des périphériques internes permettent d’en sortir. En revanche, pour le mode STOP2, seul un RESET, une IT IRQ ou une IT RTI le permet.

Dans ces 2 modes, le contenu de la RAM et l'état des IO sont conservés.

En mode STOP2, après une des IT permettant la sortie, le CPU reboote comme si il s'agissait d'un POR.

En mode STOP3, c'est comme pour le WAIT : on repart sur l'instruction suivant l'appel au STOP, après un délai nécessaire à remettre l'horloge interne en fonction.

  

Exemples d'utilisation :

L'exemple typique de l'utilisation du mode STOP2 est la télécommande. Sur un appui bouton poussoir, on quitte la veille, on démarre, on exécute un envoi de données puis on se rendort profondément. Aucun besoin de continuer l'exécution de l'application après un départ en STOP.

Pour le mode STOP3, c'est celui que l'on utilisera lorsqu'on veut réduire grandement la consommation, mais ne pas arrêter le déroulement de l'applicatif.

Pour prendre un exemple "bête" : on veut faire clignoter une LED, lui faire faire un flash toutes les secondes. Il est inutile de tourner à fond dans la boucle main() en attendant que la seconde soit écoulée. On écrira plutôt :

SOPT_SOPTE = 1 ;
SRTISC = 0x17 ;
SRTISC = 0x10 ;
for (;;)
{
  PulseLED() ;
  asm(" stop") ;
}
 

Avec une RTI qui tourne en tache de fond, générant une IT périodique toutes les secondes :

 void RTI_ISR(void)

{
  SRTISC = 0x17 ;
  SRTISC = 0x10 ;
}

Autre :

Pour finir, pour réduire la consommation d'un CPU, on peut également ajuster sa fréquence de bus. En effet, il est inutile de faire tourner le CPU à fond si l'application ne nécessite pas de rapidité (tout est relatif...).

Pas de règles pour déterminer cette FBus, il faut trouver un compromis entre la vitesse d'exécutionde l'applicatif et puissance recquise. Parfois, il est judicieux de faire tourner le CPU plus rapidement et moins longtemps que plus lentement et plus longuement (à méditer...).

Conclusion :

Ne pas hésiter à tester ces différents modes. c'est très facile, il  suffit de connecter un ampèremètre en série sur l'alim d'une carte. L'appareil faisant une moyenne, il est facile de se donner une idée du résultat.

Prendre l'habitude d'utiliser ces modes pour optimiser la consommation de votre application. c'est dans l'air du temps de faire des produits green, mais cela sert également à réduire le dimensionnement de certains composants (alim DCDC, régulateur linéaires, capacité des piles ou des accumulateurs plus petites, ...) et du coup, de réduire le prix de fabrication de la carte !

Yvan

www.ybdesign.fr

Tags: STOP   WAIT   consommation   Energie  


Article précédent Article suivant
Article précédent Conseils pour l'écriture d'un soft
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
Charly
Posté le: 24/06/2011 16:14  Mis à jour: 24/06/2011 16:15
Pilier de la communauté
Inscrit le: 23/10/2005
De: Aix les Bains (73)
Contributions: 1907
 Re: Utilisation des modes de gestion d'énergie sur ...

Merci Yvan

On va pouvoir se mettre en mode STOP ce soir en étant un peu moins idiots...

C'est cool, ca démystifie vachement le schmilblik !

Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Utilisation des modes de gestion d'énergie sur 9S08 - Perfectionnement > Méthodologie de programmation - Articles et téléchargements