Sources d’alimentation d’un microcontrôleur

Dans ce post, je vais présenter les sources d’alimentations les plus courantes d’un microcontrôleur, à savoir : Les piles ou accumulateurs, les prises murales et les ports USB. En général, la source d’alimentation nécessaire dépend des besoins du microcontrôleur et du circuit qu’il pilote. Commençons par détailler les besoins d’un microcontrôleur.

La plupart des microcontrôleurs acceptent une plage de tension bien précise (noté dans la datasheet du composant). La tension appliquée pour le microcontrôleur va déterminer la fréquence maximale de l’horloge du microcontrôleur. Dans le cas d’un ATtiny48PU, la datasheet indique qu’il peut recevoir une tension de 1,8 V à 5,5 V (avec une fréquence maximale de 4 MHz entre 1,8 V et 5,5 V; 8 MHz entre 2,7 V et 5,5 V; 12 MHz entre 4,5 V et 5,5V). A noter que ce microcontrôleur a été conçu pour fonctionner avec une tension de 5 V avec une marge de plus ou moins 0,5 V. Cela signifie qu’une marge de manœuvre est possible si le circuit demande une tension d’un peu moins de 5V ou d’un peu plus de 5V. Le choix du microcontrôleur doit donc se faire en fonction des autres composants du circuit. Un exemple simple : Si un capteur de température fonctionne sous une tension de 3,3 V, alors il vaut mieux utiliser un microcontrôleur fonctionnant convenablement sous 3,3 V (Un ATmega32 ne pourrait pas fonctionner dans ce cas, un ATmega324A fonctionnerait). A l’inverse, il est possible de choisir les composants du circuit en fonction de la tension appliquée au microcontrôleur. L’objectif est d’utiliser la même tension. Si cela n’est pas possible, alors la seule solution est de créer plusieurs sources d’alimentations différentes.

La suite de l’article considère que la tension à utiliser est de 5V (ce qui est une tension « classique » dans le petit monde des microcontrôleurs).

Les piles

Théorique : 1000 mAh => 10 heures pour 100 mA; 20 heures pour 50 mA

Plusieurs choix :

– Piles 1,5 V : Si 3 piles branchées en série alors 4,5 V => Trop juste ! En tout cas déconseillé pour une tension de 5V. Si 4 piles alors 6V => Trop important; Le microcontrôleur ne tiendra pas le choc. Il faut réguler la tension avec un régulateur LDO

– Piles 9V : Bon compromis, mais il faut obligatoirement réguler la tension. Ici un régulateur plus « classique » tel qu’un LM7805 est suffisant. Ce n’est pas un LDO, mais vu la chute de tension de ce régulateur (environ 1,5 Volts), nous aurons bien 5 volts en sortie du régulateur (il faut plus de 6,5 V en entrée du régulateur pour qu’il fonctionne correctement).

Les prises murales

Pour ce cas, il faut obligatoirement un transformateur pour transformer le 220 Volt efficace en tension plus basse (aux alentours de 9V). Puis, il faut utiliser un système de redressement de la tension et un système de régulation. (pont de diodes + condensateur de filtrage + régulateur).

USB

Les ports USB offrent une alimentation déjà régulée de 5 V. Il est donc facile de récupérer l’alimentation de ce type de connectique. En effet, la connectique USB utilise 4 fils : 2 pour l’alimentation (rouge et noir) et 2 autres pour le bus de données (en général blanc et bleu). Il est toutefois possible (mais clairement pas obligatoire) d’ajouter un ou deux condensateurs pour bien lisser les éventuelles perturbations qui pourraient survenir sur l’alimentation du port USB.

Vous voilà paré pour alimenter vos microcontrôleurs !

Premiers pas avec les microcontrôleurs AVR

Pour ce retour après plus d’un an, je me suis décidé à faire un article sur mes premiers pas avec les microcontrôleurs AVR.

J’ai débuté avec l’ATtiny48PU. Ce dernier est en support PDIP 28 broches (je ne suis pas fan des composants CMS car je n’ai pas le matos pour les souder… Et encore moins pour graver les PCB avec des pistes aussi fines !). Bref, ce microcontrôleur est a mon sens très bien pour débuter pour plusieurs raisons :

  • Pas trop onéreux
  • Support du protocole SPI
  • Support du protocole TWI (ou I2C)
  • Possède plusieurs ADC (Analogique Digital Converter)
  • 4 Ko de mémoire flash
  • 64 bytes d’EEPROM
  • 256 bytes de SRAM
  • Programmation ISP (In System Programmable)
  • Etc…

Je ne vais pas faire toute la liste des trucs sympas, Atmel l’a déjà fait pour moi : http://www.atmel.com/Images/doc8008.pdf.

Après avoir fait quelques essais de programmation en assembleur (faire clignoter une LED), j’ai très vite basculé dans un univers plus connu pour moi : Le langage C. En effet, l’assembleur ne m’est pas familier et je n’ai pas le désire aujourd’hui d’apprendre ce langage.

Un point très sympa avec les microcontrôleurs est que les outils de développement sont gratuits ! Il y en a à foison sur Internet… Personnellement, je ne me suis pas embêté, j’ai pris l’outil de développement proposé directement par Atmel : http://www.atmel.com/tools/ATMELSTUDIO.aspx. Il s’agit d’Atmel Studio 6. Cet outil permet d’écrire du code en assembleur, en C ou en C++ pour tous les microcontrôleurs AVR. Pour ceux qui ont l’habitude d’utiliser Visual Studio, je recommande vraiment Atmel Studio 6 qui est en fait un Visual Studio décoré version Atmel.

Enfin, pour programmer un microcontrôleur, il faut un programmateur… Là encore, il existe une foison d’outils sur le net… Et là encore, je n’ai pas cherché midi à quatorze heure, j’utilise simplement le programmateur ISP d’Atmel : http://www.atmel.com/tools/AVRISPMKII.aspx. Honnêtement, je trouve que le coût de ce programmateur n’est pas si excessif que ça, il est automatiquement reconnu par Atmel Studio, et permet de programmer tous les AVR disposant d’une interface ISP (donc tous les AVR d’Atmel…).

Voilà, avec tout cela, je peux démarrer un premier projet très simple : Faire clignoter une LED !

Suite au prochain post…