Go Down

Topic: Baisser la consommation de courant, possible ? (Read 8112 times) previous topic - next topic

Jean-François

#15
Nov 15, 2008, 04:07 pm Last Edit: Nov 15, 2008, 07:12 pm by jfs Reason: 1
Avec un quartz de 1MHz, j'avais moins de 10mA de conso en laissant mon programme tel quel, mais l'horloge tournait 16 fois moins vite...

En modifiant mes delay() pour que mon horloge fonctionne à nouveau en concordance avec le temps réel la mesure oscille entre 9 et 10,5mA.

je me demande si en utilisant une fonction avec millis() la consommation serait moins grande qu'avec delay() ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#16
Nov 15, 2008, 07:09 pm Last Edit: Nov 15, 2008, 07:17 pm by jfs Reason: 1
Après essai, la fonction millis() me fait exactement la même consommation qu'avec delay().

Il faut que je mette une partie du µC en veille pour faire descendre la consommation.

J'aimerais atteindre les 4-5 mA.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

nrolland

Dans la doc de avr_libc tu as ici
http://www.nongnu.org/avr-libc/user-manual/group__avr__power.html
en faisant un #include <avr/power.h> accès à ces macros pour limiter la conso de courant pour le 168 (en eteignant des périphériques qui te servent pas)

power_adc_disable()
power_spi_disable()
power_twi_disable()

Si tu n'as pas besoin de communiquer par l'usb
power_usart0_disable()

sur les 3 timers je pense que tu peux en éteindre 2 sans pb (mais il faut garder celui utilisé par millis ou delay).
power_timer0_disable()
power_timer1_disable()
power_timer2_disable()

Perso j'ai jamais essayé mais fais nous un retour sur les mesures de courant observées en éteignant chacun des modules.

Nicolas

nrolland

tu as aussi ca http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html qui correspond plus a ce que tu veux faire.
Je suis un peu surpris que personne sur le forum en english ait essayé ça.

Nicolas

Jean-François

#19
Nov 16, 2008, 11:28 am Last Edit: Nov 16, 2008, 11:31 am by jfs Reason: 1
Merci pour tes réponses.

Est-ce que c'est possible de programmer ça directement depuis l'IDE Arduino ?

Je crois que Benoit Rousseau avait fait une horloge numérique qui utilise le mode interrupt(), mais j'ai pas trop compris  ::)
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

nrolland

pour l'include de <avr/power.h> j'ai en effet des soucis (arduino 11 sous linux) mais pour <avr/sleep.h> aucun pb
J'ai d'ailleurs trouvé qq chose sur le playgroud
http://www.arduino.cc/playground/Learning/ArduinoSleepCode

Nicolas

Jean-François

La librairie sleep.h, je l'ai trouvée, mais pas la power.h.
J'ai trouvé quelques choses sur le site koders, mais je sais pas si c'est la bonne librairies.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#22
Nov 16, 2008, 03:58 pm Last Edit: Nov 16, 2008, 03:58 pm by jfs Reason: 1
Voilà le résultat de mes essais avec sleep.h.


Il existe cinq modes différents :

 SLEEP_MODE_IDLE  
 SLEEP_MODE_ADC
 SLEEP_MODE_PWR_SAVE
 SLEEP_MODE_STANDBY
 SLEEP_MODE_PWR_DOWN

Le premier est le seul où l'horloge tourne et consomme autant qu'en mode normal, avec tous les autres elle ne tourne pas,

il faut vraiment que j'arrive à faire ça avec power.h  :-?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

nrolland

Tu utilises bien un atmega168 dans ta définition des board de l'arduino ?
et tu fais bien un

#include <avr/power.h>

Nicolas

Jean-François

J'utilise l'onglet "Tools" dans L'IDE Arduino 010 , et je configure sous "diecimila".

Je fais bien un #include<avr/power.h>, mais je n'avais pas cette librairies dans le Pack Arcuino 010, j'ai été chercher cette lib le net qu j'ai trouver sur un site qui s'appelle "Koders".
L'auteur de la librairies est le même que celui de sleep.h donc je pense que c'est la bonne.

Mais je n'arrive pas à trouver comment mettre mon code, pour sleep j'avais trouvé des exemples.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

nrolland

comment sais tu que tu n'as pas la lib ?
tu es allé voir dans ton .../avr/include/avr/ (sur mon linux c'est dans /usr/avr/include/avr/power.h) ?
Essaye de setter une autre board (genre NG atmega168 pour voir si ca marche la compil).

Nicolas

Jean-François

#26
Nov 16, 2008, 11:21 pm Last Edit: Nov 16, 2008, 11:23 pm by jfs Reason: 1
J'ai regardé dans tout mes dossiers et même en faisant la fonction "rechercher" je ne l'a trouve pas.

Elle devrait être dans le même dossier que celui où se trouve sleep.h ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

nrolland

Je suis au travail donc je peux pas regarder mais je viens de jeter un oeil sur les releases notes de la version 12 ils parlent de :

* Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6).  This
 provides support for newer Atmel chips, but may increase the size
 of sketches.

Peut etre qu'en passant à cette version de avr-libc tu auras la lib ?

Nicolas

nrolland

Je confirme : je viens de comparer les distributions en version 10 et 12 pour mac et tu as power.h uniquement sur la 12.

Bonne suite.

Nicolas

Jean-François

Je me suis remis à jour en installant la 012, je ferais un essai comme ça. ;)
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up