Alimentation pilot�e par micro-contr�leur
ArticleCategory: [Choose a category, do not translate
this]
Hardware
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido
Socher
en to fr Iznogood
AboutTheAuthor:[A small biography about the author]
Guido aime Linux non seulement parce qu'il est amusant d'en d�couvrir
les grandes possibilit�s mais aussi � cause des personnes
impliqu�es dans sa conception.
Abstract:[Here you write a little summary]
Cet article est le quatri�me volet de la s�rie sur les micro-contr�leurs
AT90S4433 de LinuxFocus. Je vous sugg�re de lire
les articles pr�c�dents sur la programmation des micro-contr�leurs Atmel pour ce
qui concerne :
- Comment installer et utiliser l'environnement de d�veloppement d'AVR
pour Linux et comment fabriquer le programmateur :
Mars 2002,
Programmer le micro-contr�leur AVR avec GCC
- Comment cr�er votre propre circuit imprim� :
Mai 2002, Un panneau de contr�le
LCD pour votre serveur Linux
- Comment construire le bo�tier de votre alimentation :
Septembre 2002,
Compteur de Fr�quence 1Hz-100Mhz avec afficheur LCD et interface RS232
Un des �l�ments les plus importants de votre laboratoire personnel est une
bonne alimentation fiable. Dans cet article, nous allons construire cette
alimentation. Et elle sera r�gul�e par micro-contr�leur. Elle poss�de un afficheur LCD
et vous pouvez lui envoyer des commandes depuis votre machine Linux par une interface RS232.
Elle est �galement tr�s robuste.
Cet article montre aussi la versatilit� des micro-contr�leurs. Ce
n'est pas, malgr� tout, le circuit le plus simple.
Si vous cherchez une simple alimentation � courant continu,
jetez un coup d'oeil �
"une simple alimentation � courant continu". L'alimentation simple est
suffisante pour les autres
exp�rimentations �lectroniques pr�sent�es dans
LinuxFocus. Cela n'a n�anmoins rien � voir
avec Linux et les logiciels en g�n�ral.
M�me si vous avez seulement construit l'unit� "alimentation
simple � courant continu", cette lecture vous permettra de d�couvrir de nombreux aspects
int�ressants des micro-contr�leurs.
ArticleIllustration:[This is the title picture for your
article]
ArticleBody:[The article body]
Introduction
Cette alimentation pilot�e par micro-contr�leur ne poss�de pas le
circuit le plus simple mais je peux vous assurer que vous ne regretterez pas
le temps pass� � la construire. Elle est tr�s robuste et fiable. Elle
est aussi techniquement tr�s int�ressante car vous apprendrez comment g�n�rer
une tension analogique avec un micro-contr�leur sans
convertisseur num�rique-analogique.
Il vous faut de nombreux composants pour la r�alisation de cette alimentation,
mais ils sont tous bon march�. Elle ne co�te vraiment pas cher.
Ce dont vous avez besoin
Lisez la liste des composants pour
savoir ce qu'il vous faut. Vous pouvez aussi voir les
composants et leurs valeurs dans le sch�ma ci-dessous.
Il existe trois variantes de notre alimentation. A l'exception du
transformateur et d'une r�sistance, les diff�rences ne concernent que le
logiciel. Tous les autres composants sont identiques pour les 3 options :
- 0-16V Imax=2.2A
acheter un transformateur de 15V 2.5A
- 0-24V Imax=2.2A
acheter un transformateur de 24V 2.5A
- 0-30V Imax=3A
acheter un transformateur de 30V 3A
Note : Dans les trois cas, il vous faut �videmment un transformateur additionnel
9V, 100mA pour l'alimentation de la carte principale.
Sch�ma et circuit
J'ai utilis� eagle pour Linux
pour concevoir le sch�ma et le circuit. Les fichiers eagle sont aussi
inclus dans le paquetage tar.gz avec le logiciel. Vous pouvez le t�l�charger
� la fin de l'article.
Le circuit est divis� en deux parties. Une partie principale et une
partie qui doit �tre � proximit� des transistors de puissance. Vous voyez
ci-dessous deux sch�mas ind�pendants pour les deux blocs mais ils doivent
ensuite �tre connect�s par des fils.
Le sch�ma principal (cliquez dessus pour une image plus grande) :
Le sch�ma pour la partie puissance (cliquez dessus pour une image
plus grande) :
Comment connecter les boutons poussoirs � une matrice (cliquez dessus
pour avoir une image plus grande) :
Le circuit principal, vue de dessus (cliquez dessus pour une image plus
grande) :
Le circuit est sp�cialement con�u pour les �lectroniciens amateurs. Seule
la couche bleue est destin�e � �tre grav�e sous forme de circuit imprim�. Les
lignes rouges sont des fils. Une carte simple face est plus facile et demande
moins de pr�cision dans sa conception. Vous pouvez disposer
les fils (en rouge) de mani�re � ce qu'ils soient le plus courts possible.
Je n'ai pas r�ussi � le faire avec eagle.
Les quelques composants de la partie puissance de l'alimentation peuvent �tre mont�s sur
des cartes prototypes standard (ces cartes avec de nombreux trous). La
carte principale et la partie puissance sont connect�es par des fils (JP2 et
JP3). Vous noterez que le fil de masse de la partie principale se connecte �
la sortie de courant. C'est correct et c'est la raison pour laquelle nous
avons besoin de deux transformateurs (un pour la partie puissance et
l'autre pour la partie logique du micro-contr�leur et des amplificateurs).
Comment �a marche
En regardant le sch�ma principal, vous pouvez constater qu'il est constitu�
deux blocs logiques. L'un est marqu� comme � contr�le de courant � et l'autre
comme � contr�le de tension �. Ce sont deux boucles de contr�le ind�pendantes. Une boucle
contr�le la tension de sortie pendant que l'autre surveille la chute de
tension de la r�sistance de 0.275 Ohm dans la partie puissance. La
perte de tension est �quivalente au courant. Les deux blocs de contr�le sont
� combin�s � via les diodes D2 et D3. Ces diodes forment une porte OR
analogique. C'est-�-dire que si le courant est trop �lev�, la partie
de contr�le de courant abaisse la tension jusqu'� ce qu'elle soit au-dessous de
la limite (courant suffisamment bas) et la partie de contr�le de tension est
charg�e de r�guler la tension en sortie.
Ce OU (OR) logique fonctionne car le transistor T3 est connect� par R19 au +5V.
S'il n'y avait pas d'amplificateurs op�rationnels connect�s derri�re D2 et D3
vous obtiendriez le maximum de puissance de sortie. Les amplificateurs
op�rationnels dans la boucle contr�lent la sortie en enlevant le +5V de T3
(il en d�tourne autant que n�cessaire vers la masse).
La boucle de contr�le de tension asservit la tension de sortie en fonction
du niveau obtenu sur la broche 5 de IC6B. En d'autres termes, la
tension sur la broche 5 est �quivalente � la sortie multipli�e par le facteur
d'amplification qui est d�termin� par les r�sistances R15, R10 et R16. La m�me
chose se produit pour le courant sauf qu'il s'agit de la tension sur la r�sistance R30
et qu'elle est �quivalente au courant de sortie maximum.
De mani�re � obtenir le courant maximum ou � r�guler la sortie de
l'alimentation, nous devons seulement fournir les tensions appropri�es sur les
deux points (broche 5 d'IC6B et r�sistance R30). C'est ce que fait le
micro-contr�leur... mais comment peut-il g�n�rer et r�guler une tension de
r�f�rence ? Regardez l'image suivante :
Ce que vous voyez sur l'image est la mani�re dont un signal par impulsion peut
�tre transform� en un signal continu. Il suffit
de le faire fonctionner au travers d'un filtre passe-bas avec une
fr�quence de coupure cent fois (ou plus) inf�rieure � la fr�quence du signal.
Comme notre micro-contr�leur fonctionne � 4 MHz, il n'est pas difficile de
concevoir un tel filtre passe-bas. M�me si nous mettons en place la g�n�ration du
signal par logiciel, nous obtiendrons encore quelques kHz et le filtre sera
encore tr�s petit.
La diff�rence dans l'image entre les deux sch�mas est appel�e modulation
par impulsion. En changeant la longueur de l'impulsion, nous pouvons
modifier la tension derri�re le filtre.
C'est bien, non ? Nous pouvons g�n�rer une tension exacte � partir d'un signal
num�rique !
Le micro-contr�leur AT90S4433 poss�de deux compteurs internes. L'un est de
16 bits et l'autre de 8 bits. Le compteur 16 bits peut utiliser la
modulation � largeur d'impulsion (PWM) qui existe d�j� mat�riellement
dans le circuit AT90S4433 avec une r�solution de 10 bits. Le compteur 8 bits
n'a pas cette facult� mais nous pouvons la mettre en place par logiciel. Il est encore
suffisamment rapide. Nous utilisons le compteur 16 bits pour la r�gulation de
tension, ce qui nous donne 10 bits = 1023 pas de r�solution pour le contr�le
de tension. Le courant de sortie est contr�l� par le compteur 8 bits, ce qui
nous donne 255 pas pour contr�ler 1-3000 mA. Cela signifie que nous avons une
pr�cision de pr�s de 12 mA (ou moins). C'est encore suffisant pour le contr�le
du courant.
Toutes les autres parties du circuit concernent l'alimentation et la
tension de r�f�rence (le 7805 est notre point de r�f�rence) et permettent de s'assurer
que l'alimentation ne devient pas instable lors de la mise sous tension ou hors
tension.
Le logiciel
Le logiciel pour le micro-contr�leur utilise beaucoup d'aspects que vous
connaissez d�j� depuis les premiers articles (uart pour RS232, afficheur LCD,
compteur en mode interruption). Vous pouvez y jeter un coup d'oeil ici :
linuxdcp.c.
Le plus int�ressant, est probablement le logiciel PWM (Pulse Width
Modulation). La variable ipwm_phase g�re, avec ipwm_h, le PWM pour
le courant. Nous lan�ons simplement le compteur 8 bits en mode interruption et
� chaque fois qu'il g�n�re un d�passement, la fonction
� SIGNAL(SIG_OVERFLOW0) � est appel�e. Nous contr�lons ici ipwm_phase pour
voir si nous devons g�n�rer un 1 ou un z�ro sur la sortie et nous red�marrons
le compteur de temps. Facile.
Le logiciel n'est pas du tout compliqu� mais pour le comprendre
exactement, vous devez lire la documentation technique du 4433
(voyez les r�f�rences).
Le 4433 est un micro-contr�leur 8 bits et ses capacit�s math�matiques sont
tr�s limit�es. Les fonctions divXbyY et multiXbyY g�rent les maths
24 bits, dont nous avons besoin pour calculer avec pr�cision la largeur de l'impulsion
� partir d'une tension donn�e, fournie par l'utilisateur.
Notre alimentation poss�de 7 boutons. 6 boutons sont disponibles pour
changer les niveaux de tension et de courant et un bouton sert � la
mise en � pause �. En utilisant le bouton � pause �, vous pouvez
temporairement d�sactiver l'alimentation et encore changer les limites de
tension et de courant. L'�tat des boutons est � pulled � (relach�)
dans la boucle principale du programme. La variable ignorebutton est utilis�e
pour �viter les rebonds des boutons. Lorsque vous pressez un bouton avec le doigt, il
rebondit un peu. En tant qu'�tre humain, nous ne le remarquez pas mais le
micro-contr�leur est si rapide qu'il verra un bouton press�, relach�,
press�... Le compteur ignorebutton attend un peu apr�s la pression sur le bouton
pour �viter ce rebond.
Cr�er le circuit imprim�
Le circuit principal :
|
Le bo�tier pour l'alimentation. Du bois pour les cot�s, des feuilles
de m�tal pour le fond, le dessus et la face avant :
|
La face avant :
|
Le paquetage logiciel contient un fichier postscript (linuxDCpower.ps) pour
le circuit imprim�. Je trouve personnellement que les pastilles sont toujours
un peu trop petites. C'est la raison pour laquelle je recommande fortement de
les �largir un peu avec un marqueur avant de graver le circuit. Le processus
pour r�aliser un circuit � la maison est d�crit dans :
Mai 2002, Un panneau de contr�le LCD
pour votre serveur Linux.
Comment construire un boitier �conomique mais esth�tique pour votre
alimentation est d�crit dans l'article � Septembre 2002, Compteur de
Fr�quence 1Hz-100Mhz avec afficheur LCD et interface RS232 �. Vous pouvez
voir le bo�tier et la face avant que j'ai r�alis�s sur la droite. Cliquez sur
les images pour des images plus grandes.
Tester
Comme pour tout circuit que vous soudez, il est raisonnable de ne pas connecter
directement les �l�ments � l'alimentation mais de proc�der par �tapes. Cela
permet de d�tecter les erreurs faites pendant la construction du
circuit.
- Assemblez le circuit principal mais sans mettre les composants dans
leurs supports.
- Prenez une batterie de 9V et connectez le plus � la broche 2 et le
moins � la broche 1 du connecteur marqu� AC_POWER sur le sch�ma.
Utilisez un voltm�tre et v�rifiez que vous avez du +5V sur le max232 entre les
broches 8 et 16 et sur les broches 7 et 8 du micro-contr�leur. Sur les
amplificateurs op�rationnels, vous devez avoir presque 9V sur la broche d'alimentation
positive.
- Branchez maintenant la batterie 9V (broche 1 au plus et broche 2
au moins) et v�rifiez que vous avez -9V sur les broches d'alimentation
n�gatives des amplificateurs op�rationnels.
- Si tous les tests sont pass�s jusque l�, alors
l'alimentation de la carte principale fonctionne et il n'est plus risqu�
d'ins�rer le max 232 et le micro-contr�leur dans leurs supports.
- Utilisez encore la batterie de 9V et connectez-la de mani�re �
ce que le +5V fonctionne (voir ci-dessus). Connectez le c�ble du
programmateur au port parall�le et au connecteur pour programmer le circuit.
D�compressez le logiciel (pour le t�l�chargement, voyez le chapitre des
r�f�rences), � cd � dans le r�pertoire qui est cr�� et tapez :
make avr_led_lcd_test.hex
make testload
make ttydevinit
Le logiciel de test doit maintenant �tre charg� dans la carte. Sur
l'afficheur du LCD, vous devez voir � hello �, la LED rouge doit clignoter et
si vous connectez votre ordinateur � la rs232, vous devriez voir s'afficher � ok �
(initialisez la ligne RS232 avec ttydevinit, puis tapez
cat /dev/ttyS0 ou cat /dev/ttyS1 pour COM2).
- Assemblez maintenant la partie alimentation mais ne connectez pas encore
le transformateur principal. Connectez plut�t la batterie de 9V aux c�bles o�
le transformateur sera connect�. Quel que soit le sens de connection de la
batterie, le condensateur de 4700uF doit toujours �tre charg� autour de 9V. Contr�lez-le
avec un voltm�tre.
- Lorsque la derni�re �tape de test est pass�e, faites un contr�le
final des fils et connectez ensuite tous les transformateurs et alimentez
le tout. Sans amplificateurs op�rationnels dans leurs supports, vous devriez
obtenir la valeur maximum de tension de sortie. Mesurez-la en faisant
attention de ne pas cr�er de court circuit sinon vous grilleriez les
transistors puisqu'il n'y a pas encore de limitation de courant.
- D�branchez, ins�rez les amplificateurs
op�rationnels et reconnectez le c�ble du programmateur, mettez sous tension et
tapez :
make
make load
- L'alimentation doit �tre maintenant pleinement fonctionnelle. Notez
que pendant que le c�ble du programmateur est encore connect�, la sortie est
toujours d�sactiv�e. D�branchez-le pour avoir la bonne tension et le bon courant
en sortie.
Et voici notre propre alimentation
Vous avez vu que nous avions trois options disponibles en fonction du
transformateur utilis�. Le logiciel est par d�faut pour une
tension de sortie de 16V, 2.2A. Pour le modifier, �ditez le
fichier linuxdcp.c
et recherchez :
MAX_U, IMINSTEP, MAX_I, et dans la fonction set_i, vous devez changer la
calibration si vous avez une sortie de 3A maximum. Le code est bien comment�
et vous verrez ce que vous devez changer.
Enfin, voici quelques images de l'alimentation telle que je l'ai
fabriqu�e. Cela repr�sente du travail mais c'est vraiment une alimentation
tr�s bonne et tr�s robuste. Le temps investi est rentable car une alimentation
de laboratoire est r�ellement une des choses les plus utilis�es.
![[front view]](../../common/images/article251/dcpower-final_frontview_th.jpg)
Utilisation de l'alimentation
La mani�re d'utiliser l'alimentation est � peu pr�s �vidente. Vous avez 4
boutons pour d�finir la tension de sortie. 2 boutons pour augmenter/diminuer
de 1V et 2 boutons pour augmenter/diminuer de 0.1V. La limitation de courant
peut �tre aussi d�finie par deux boutons. Mais ici, l'�chelonnage n'est
pas lin�aire. Pour des valeurs plus petites, vous pouvez incr�menter ou
d�cr�menter par pas de 50mA. Pour des valeurs sup�rieures � 200mA, vous avez
des pas de 100mA et de 200mA au-dessus de 1A. De cette mani�re, il est facile
de parcourir l'�chelle compl�te avec seulement deux boutons.
Le bouton attente peut �tre utilis� pour d�sactiver temporairement
l'alimentation sans avoir besoin de red�finir les valeurs lors du retour sous
tension.
La LED rouge s'allumera lorsque vous atteindrez la limite du courant et
elle clignotera en mode attente.
L'alimentation peut aussi �tre totalement contr�l�e par des commandes
ASCII via la ligne s�rie RS232. Les commandes suivantes sont disponibles :
u=X d�finit la tension (i.e. u=105 fixe la
tension � 10.5V)
i=Xmax d�termine le courant maximum (i.e. i=500 d�finit la limite de
courant � 500mA)
s=1 ou s=0 met en mode attente
u=? ou i=? ou s=? affiche les valeurs actuelles. Par exemple :
u: 50 s:0 i: 100 l:0
u: signifie tension = 50 = 5V, s:0 signifie mode attente d�sactiv�, i: 100
repr�sente 100mA et l:0 signifie que la limite de courant n'a pas �t� atteinte.
En utilisant ce langage de commande ASCII, vous pouvez aussi �crire une
interface de commande graphique pour l'alimentation. Pour utiliser la ligne
RS232, vous devez d'abord l'initialiser par la commande ttydevinit,
qui est incluse dans le paquetage logiciel. Tout ceci est d�crit dans l'article de
Septembre 2002, Compteur de fr�quence.
Comme vous l'avez vu dans le sch�ma au-dessus, nous utilisons deux
transformateurs et le plan de masse de la logique de contr�le est connect� �
la sortie positive. Les deux transformateurs s�parent les tensions et il n'y a
normalement pas de probl�me avec ce proc�d�. Nous devons �tablir les
connexions de cette mani�re pour avoir la bonne polarit� sur la boucle de retour
des amplificateurs op�rationnels.
Un mot d'avertissement : Cette installation signifie aussi que la ligne de
terre de la ligne RS232 est connect�e � la sortie positive ! En d'autres termes,
vous ne pouvez pas utiliser la ligne RS232 si vous utilisez l'alimentation
avec des �l�ments qui sont connect�s par ailleurs � la masse de votre
ordinateur. Il pourrait �tre judicieux de mettre une �tiquette sur le
bo�tier de l'alimentation indiquant � la ligne de masse de la connexion RS232
est connect�e � la sortie positive �.
Si vous voulez vous assurer qu'il n'y a pas de possibilit�s de court circuit avec les
fils de masse de la RS232, utilisez alors une batterie de portable ou v�rifiez
que le circuit aliment� ne poss�de pas d'autres connexions ou n'utilise pas
l'interface de commande RS232. Ne soyez pas trop inquiets de cette mise en garde.
Si vous ne d�passez pas 250mA sur l'alimentation, la LED rouge vous
indiquera que vous avez fait une erreur et qu'il n'y pas de danger pour votre
ordinateur m�me si vous avez fait quelque chose de stupide.
S�curit�
Ce circuit contient un transformateur qui est connect� � l'alimentation
principale (230V ou 110V en fonction de votre pays). Veuillez vous assurez
d'une bonne isolation. Si vous n'avez jamais travaill� avec des
alimentations alors demandez � des personnes exp�riment�es de contr�ler votre
circuit pour ce qui concerne l'isolation et la s�curit� avant de brancher
pour la premi�re fois.
Ajustement
Le logiciel pour l'alimentation est d�j� calibr�. Dans la plupart des cas,
il n'y aura rien � modifier.
Le mat�riel concern� par la calibration d�pend seulement des 7805,
R15, R10, R16 et R38, R30, R26. Seuls ces composants influencent la tension et
les niveaux de courant. Si vous voulez faire un ajustement plus fin, vous
pouvez soit changer ces r�sistances, soit modifier le logiciel. Notez qu'un
c�ble de programmateur connect� influence la sortie. Avant de faire
des mesures, vous devez d�connecter le c�ble. Dans le logiciel, vous pouvez
faire des modifications dans les fonctions set_u et set_i. Ceci est comment�
dans le code de linuxdcp.c
R�f�rences