|
LinuxFocus article number 379
http://linuxfocus.org
|
|
|
|
|
par Guido Socher (homepage)
L´auteur:
Guido adore Linux parce qu'il est un vraiment bon système pour développer
votre propre matériel.
Traduit en Français par:
Jean-Etienne Poirrier (homepage)
|
Une alimentation numérique CC
Résumé:
Une alimentation électrique en courant continu (CC) fiable est un
périphérique important pour une passion comme l'électronique. Une alimentation
électrique stabilisée électroniquement peut facilement coûter plus de 150
Euros.
En utilisant un plan basé sur un microcontrôleur intelligent, nous pouvons
construire une alimentation électrique qui a plus de fonctionnalités et qui
est beaucoup moins chère.
Les lecteurs, pour qui tout ceci serait nouveau, devraient d'abord lire Programmer le microcontrôleur AVR
avec GCC, libc 1.0.4.
Ne vous inquiétez pas si le circuit imprimé semble trop compliqué pour votre
laboratoire à la maison. Toutes les pièces et des PCB pré-imprimés seront,
encore une fois, disponibles sur
shop.tuxgraphics.org.
_________________ _________________ _________________
|
Introduction
En 2002, j'ai écrit un article pour linuxfocus.org sur une alimentation
électrique se basant sur un microcontrôleur (article251 du numéro de
novembre 2002). L'article a reçu beaucoup d'intérêt, comme j'ai pu le
remarquer des courriels que j'ai reçu à son sujet. Le plan de cette
alimentation électrique était cependant difficile pour les fans, dont
l'électronique reste une passion, dû à la complexité du circuit.
Ainsi, voici maintenant un nouveau plan, moins complexe, mais qui possède
plus de fonctionnalités.
- Seulement des composants pas chers et standards sont utilisés
- Seulement une source de courant est nécessaire (pas de
tension négative pour des amplificateurs opérationnels)
- L'affichage montre les valeurs prédéfinies et actuelles de la tension
et du courant en même temps.
- Vous pouvez complètement contrôler l'alimentation électrique via votre
ordinateur ou vous pouvez l'utiliser seule.
- Elle est très petite et très puissante.
Comment a-t-il été possible d'enlever des composants et d'ajouter plus
de fonctionnalités ? Le truc est de déplacer les fonctionnalités qui étaient
précédemment basées sur des composants analogiques (comme les amplificateurs
opérationnels) dans le microcontrôleur. En d'autres termes, la complexité du
logiciel et des algorithmes est plus élevée mais la complexité du matériel
est réduite. Cela réduit la complexité de l'ensemble pour vous puisque le
logiciel peut être juste copié. Le fait que l'Atmega8 puisse faire beaucoup
plus que le microcontrôleur AT90S4433, maintenant dépassé, a aidé également.
Dans cet article, vous apprendrez aussi de nouvelles choses sur l'Atmega8.
Vous avez vu comment utiliser le convertisseur analogique-digital. Nous
allons ajouter un convertisseur digital-analogique très rapide qui pourra
être utile pour beaucoup d'autres circuits.
Dans cet article, nous allons discuter du plan matériel et électrique. Il y
aura ensuite deux articles supplémentaires où j'expliquerai le logiciel.
Nous allons aussi ajouter plus de fonctionnalités. Cependant, les ajouter ne
nécessitera que des changements logiciels.
L'idée de base du plan électrique
Je pourrais bien sûr juste vous donner le diagramme du circuit et quelques
instructions sur la manière de le construire. Cela fonctionnera probablement
mais vous ne saurez pas comment cela fonctionne. La plupart des kit
d'électronique de hobby sont comme çà.
L'idée du magasin en ligne
shop.tuxgraphics.org est cependant de fournir de la bonne documentation
gratuite accompagnant les kits de développement. Dans la documentation (par
exemple, cet article), nous expliquons réellement comment les choses
fonctionnent et pourquoi elles ont été conçues de cette manière. Je trouve
beaucoup plus amusant de construire quelque chose que je comprends et
j'espère que vous l'appréciez aussi.
Commençons par l'alimentation électrique stabilisée électroniquement la plus
simple possible. Elle consiste en 2 parties de base : un transistor et une
référence de tension générée avec une diode Z.
La tension de sortie de ce circuit est Uref - 0.7V. Les 0.7V sont
approximativement la chute de tension que vous avez entre B et E sur le
transistor. La diode Z et la résistance génèrent une tension de référence
qui est stable, même si l'entrée fluctue et est bruitée. Le transistor est
nécessaire pour gérer des courants plus élevés que la diode Z et la
résistance seuls ne peuvent fournir. Dans cette configuration, le transistor
amplifie juste le courant. Le courant que la résistance et la diode Z
doivent fournir est le courant de sortie divisé par hfe (hfe est un nombre
que vous pouvez trouver en regardant dans la feuille de spécifications du
transistor).
Quels sont les problèmes avec ce circuit ?
- Le transistor va mourir lorsqu'il y aura un court-circuit dans la
sortie
- Il ne fournit qu'une tension de sortie fixe
Ce sont des limitations assez importantes qui rendent ce circuit
inutilisable mais ce circuit est toujours le bloc de construction de base de
toutes les alimentations électriques régulées électroniquement.
Pour surmonter ces problèmes, vous avez besoin d'une certaine « intelligence »
qui va réguler le courant sur la sortie et une tension de référence
variable. C'est tout (... et cela rend le circuit beaucoup plus complexe).
Pendant les dernières décennies, les gens ont utilisé des amplificateurs
opérationnels pour fournir cette intelligence. Les amplificateurs
opérationnels peuvent, au fond, être utilisés comme des calculateurs
analogiques pour additionner, soustraire, multiplier ou faire des « ou »
logiques sur des tensions et des courants.
De nos jours, les microcontrôleurs sont si rapides que tout cela peut être
réalisé facilement par logiciel. La beauté est que vous obtenez également un
voltmètre et un ampèremètre gratuitement, comme effet secondaire. La boucle
de contôle dans les microcontrôleur doit connaître les valeurs de tension et
de courant, d'une façon ou d'une autre. Vous n'avez qu'à l'afficher. Ce dont
vous avez besoin de la part du microcontrôleur, c'est :
- un convertisseur A-D pour mesurer la tension
- un convertisseur D-A pour envoyer les commandes à notre transistor de
puissance (qui fournit la tension de référence)
Le problème est que le convertisseur D-A a besoin d'être très rapide. S'il y
a un court-circuit détecté dans la sortie, alors il doit immédiatement
réduire la tension à la base du transistor sinon il mourra. Rapide signifie
en quelques millisecondes (aussi rapide qu'un amplificateur
opérationnel).
L'Atmega8 possède un convertisseur A-D qui est plus que rapide mais il
n'a pas, à première vue, de convertisseur D-A. Il est possible d'utiliser
une modulation en largeur d'impulsion et un filtre passe-bas
analogique pour obtenir un convertisseur D-A mais elle reste beaucoup trop
lente pour implémenter la protection contre les court-circuits dans le
logiciel. Comment construire un convertisseur D-A rapide ?
L'échelle R-2R
Il y a de nombreuses manières de construire un convertisseur
digital-analogique mais nous en avons besoin d'un, rapide, pas cher et qui
peut facilement s'interfacer avec notre microcontrôleur. Il existe un
convertisseur D-A connu sour le nom « d'échelle R-2R ». Il consiste en des
résistances et des interrupteurs seulement. Il y a deux types de résistances. Une
avec R et une avec deux fois la valeur de R.
La figure ci-dessus montre un convertisseur D-A R2R 3 bits. La logique de
contrôle déplace les interrupteurs entre GND et Vcc. Un « 1 » numérique connecte
l'interrupteur à Vcc et un « zéro » numérique à GND. Que fait ce circuit ? Il fournit
des tensions par pas de Vcc/8. En général, la tension de sortie est Z *
(Vcc/(Zmax+1)) où Z est le nombre numérique. Dans le cas du convertisseur A-D
3 bits, c'est 0-7.
La résistance interne du circuit est vue comme la sortie de R.
Au lieu d'utiliser des interrupteurs séparés, nous pouvons connecter l'échelle
R-2R aux lignes de sortie du microcontrôleur. Une broche de sortie de l'Atmega8
peut fournir environ 10mA mais, à ce courant, vous notez déjà une chute de
tension. Nous souhaiterions utiliser la gamme totale de sortie 0-5V de
manière à ce que la charge sur la sortie soit moindre qu'1 mA. En d'autres
termes, nous construisons une échelle R-2R avec des résistances de 5K et
10K.
Le convertisseur A-D de l'Atmega8 a une résolution de 10 bits. Pour utiliser
complètement cette résolution, nous avons également besoin de 10 bits pour
le convertisseur D-A. En d'autres termes, nous avons besoin de trouver 10
broches de sortie qui ne sont pas utilisées par rien d'autre. C'est un petit
défi puisque nous souhaitons également avoir un clavier, un affichage LCD et
une interface sérielle I2C vers le PC mais l'Atmega8 est assez bon. Tout
entre dedans.
Un plan plus détaillé
Ainsi, voici un plan plus détaillé du circuit ci-dessus.
Je ne veux pas vous décourager mais c'est malheureusement toujours un
circuit qui n'est pas utilisable. Cependant, il est très intéressant pour
comprendre l'idée qui se trouve derrière le circuit final.
Mais qu'est-ce qui ne va pas avec ce circuit ? Il y a principalement deux
choses :
- Le DAC (digital to analog converter, convertisseur digital vers
analogique) ne peut pas fournir le courrant pour conduire le transistor de
puissance.
- Le microcontrôlleur opère à 5V ; donc, la sortie maximum du DAC est
5V, ce qui signifie que la tension de sortie maximale derrière le
transistor de puissance sera 5 - 0.7 = 4.3V.
Pour résoudre cela, nous devons ajouter des amplificateurs pour le courant
et la tension.
Le circuit final
Lorsqu'on ajoute des amplificateurs, nous devons garder à l'esprit qu'ils
doivent fonctionner avec des signaux larges. La plupart des plans
d'amplificateurs (par exemple, pour l'audio) sont fait avec la supposition
que les signaux seront petits comparés à la tension fournie. Donc, oubliez
tous les livres classiques sur la création de transistor amplificateurs.
Nous pourrions utiliser les amplificateurs opérationnels mais ces derniers
requièrent qu'on fournisse des tensions positive et négatives
supplémentaires, ce que nous cherchons à éviter.
L'amplificateur nous impose également la condition supplémentaire de
partir d'une tension fournie de zéro jusqu'à un état stable sans générer
de pic de sortie. En d'autres termes, il ne doit y avoir aucune
oscillation courte ou pic de sortie lorsque vous allumer l'alimentation
électrique.
Que faire ? Eh bien, ce n'est pas une tâche facile du tout et elle requièrt
une petite expérience. Je vais parcourir avec vous le circuit final et
effectuer les calculs nécessaires.
Nous partons avec le transistor de puissance. Selon la feuille de
spécifications, le BD245B a un hfe=20 à 3A de sortie. Il va ainsi tirer
environ 15mA sur la Base. Pour amplifier le courant (réduire le courant
nécessaire pour conduire le circuit), nous utilisons une configuration
connue sous le nom de « Darlington transistor ». Pour cela, nous plaçons un
BD137 devant. Il a une valeur hfe de 50-100. Cela réduira le courrant
nécessaire à moins de 3mA (150mA / 50). 3 mA, c'est gérable avec des petits
transistors de signal comme le BC547/BC557. Il existe aussi des transistors
pour petite tension qui sont très bons pour construire des amplificateurs de
tension.
Pour une sortie de 30V, nous devons au-moins amplifier les 5V du DAC d'un
facteur de 6. Pour cela, nous combinons un transistor PNP et un NPN comme
montré ci-dessous. L'amplification de tension de ce circuit est :
Vampl = (R10 + R11) / R11
L'alimentation devrait être disponible en 2 versions : maximum 30V de sortie
et maximum 22V de sortie. Une combinaison de 1K et 5.6K donne un facteur de
6.6, ce qui est bon pour la version 30V. Pour la version 22V, nous utilisons
1K et 4.7K.
La résistance interne du circuit comme vu sur la base du BC547 est :
Rin = hfe1 * S1 * R11 * R9 = 100 * 50 * 1K * 47K = 235 MOhm
- hfe est approximativement 100 à 200 pour un transistor BC547
- S est la pente de la courbe d'amplification d'un transistor et est
approximativement de 50 [unit = 1/Ohm]
C'est plus que suffisamment haut pour la connection à notre DAC qui a une
résistance interne de 5K.
La résistance équivalente de notre résistance de sortie est :
Rout = (R10 + R11) / (S1 + S2 * R9 * R11) = approximativement 2 Ohm
C'est suffisamment bas pour conduire le BD137 suivant.
R9 lie la base de BC557 à l'émetteur, ce qui signifie « off » pour le
transistor jusqu'à ce que le DAC et BC547 arrivent. R11 et R10 lient la base
du BD137 initialement à la terre qui coupe la sortie de l'étage Darlington.
En d'autres mots, chaque composant dans cet étage d'amplification est
éteint, initialement. Cela signifie que nous n'obtiendrons aucune
oscillation, ni pics de sortie de ces transistors à la mise sous tension.
Maintenant que vous avez vu comment un tel circuit est conçu, nous devons
ajouter quelques diodes de protection et des capacités pour stabiliser le
circuit et ce sera fini.
Le cicuit final est grand comme :
[PNG]
[PDF]
Les valeurs entre crochets droits sont pour la version de 30V.
Le diagramme du circuit et le fichier de conception de la platine (format pcb)
sont aussi inclus dans le paquet tar.gz qui vous pourrez télécharger à la
fin de cet article.
Le connecteur nommé « Raw DC in » (= CONN6) possède 3 broches. La broche 1 est le
« plus », la 2 est le « moins » (= GND) et la broche 3 devrait être connectée à la
broche de la terre. En d'autres termes, la « terre » n'est ni directement
connectée à GND ni à « plus » non plus.
Les limites
D'expériences précédents, nous savons que la plupart des lecteurs
souhaiteraient « modifier » un peu le circuit. Voici une liste des limitations
du matériel et de la manière de les surmonter :
78L05: la tension maximale d'entré est de 30V, le ZD8.2 étend cette limite à
environ 38V. En utilisant une diode Z différente, vous pouvez étendre
cela un peu. Cela n'ira pas au-delà de 45V.
La tension maximale de sortie devrait être au moins 2V plus basse que
la tension d'entrée.
BD245B: 10A 80W, Les 80W sont cependant à une température de 25°C. En
d'autres termes, ajoutez une marge de sécurité et calculez avec 60W :
(tension maximale de sortie * courant maximal < 60W
Vous pouvez ajouter un second BD245B pour aller jusqu'à 120W. Pour
s'assurer que le courant se distribue de manière égale, ajoutez une
résistance de 0.22 Ohms dans la ligne d'Emetteur de chaque BD245B.
Le même circuit et la même carte peuvent être utilisé. Montez les
transistors sur un refroidisseur en aluminium propre et connectez-les
avec de courts fils à la carte.
Shunt de mesure du courant :
Il y a une résistance de 0.5 ou 0.55 Ohm avec 6W. Cela est suffisant
pour environ 3A de sortie (Iout^2 * 0.55 <= 6W). Utilisez une
résistance plus puissante pour des courants plus élevés.
Les sources de courant
Vous pouvez soit utiliser un transformateur, un redresseur et de grands
condensateurs ou vous pouvez essayer d'obtenir une alimentation électrique
32/24V d'ordinateur portable. Je me suis dirigé vers la seconde option. Ces
« briques » d'alimentation électrique pour ordinateur portable sont parfois
vendues très bon marché (fin de stock) et quelques unes fournissent 70W à
24V ou même 32V DC.
La plupart des gens iront probablement vers la solution du transformateur
parce qu'ils sont très faciles à obtenir.
version 22V 2.5A : vous avez besoin d'un transformateur 18V 2.5A, un
redresseur et un condensateur de 3000µF (raison :
18 * 1.4 = 2.5V, au moins 1000µF par ampère)
version 30V 2A : vous avez besoin d'un transformateur 24V 2A, redresseur et
un condensateur de 2200µF (raison : 24 * 1.4 = 33.6V, au
moins 1000µF par ampère)
Cela ne fait pas de tort d'acheter un transformateur qui peut fournir plus
d'ampères.
Vérifiez que votre circuit possède une isolation correcte. Soyez sûr qu'il n'est
pas possible de toucher aucune partie qui pourrait transporter
110V/230V, même quand la boîte est ouverte. Connectez toutes les parties
métalliques du chassis à la terre (pas au GND du circuit).
Les tests
Quand vous avez soudé tout ensemble, ne connectez pas encore le microcontrôleur
au secteur. Effectuez, d'arbord, quelques tests de base.
Test 1 : Connectez une alimentation électrique (au-moins 15V) à l'entrée de
courant du circuit et vérifiez que vous obtenez 5V DC derrière le régulateur
de tension.
Test 2 : Mesurez la tension de sortie. Elle devrait être de 0V.
Test 3 : Connectez les broches 7 et 26 sur le microcontrôleur avec un fil (le
microcontrôleur n'étant pas raccordé au secteur). Vous devriez
obtenir, en sortie, quelques volts de moins que ce qui est utilisé en entrée
DC. Enlevez le fil et la sortie devrait retourner à zéro. Assurez-vous de ne
pas provoquer de court-circuit sur la sortie.
Insérez le microcontrôleur et chargez le logiciel de test LCD en lançant les
commandes suivantes dans le répertoire du paquet digitaldcpower.tar.gz
décompressé :
make lcdtest
make lcdtestload
Vous devriez voir « ok works » sur l'affichage.
Maintenant, vous pouvez charger le logiciel final comme décrit ci-dessus.
Le logiciel
Pour les curieux, j'ai inclus une description assez longue de chaque fichier
.c dans le fichier README du paquet digitaldcpower.tar.gz. Le code contient
également de nombreux commentaires. Sinon, j'ai l'intention d'écrire
d'autres articles qui expliqueront juste la partie logiciel. Cet article est
déjà assez long et vous devez construire le matériel, tout d'abord.
J'ajouterai aussi graduellement plus de fonctionnalités avec les prochains
articles :
- Vous serez capables de stocker les paramètres (limite de tension et de
courant) de manière à ce que l'alimentation électrique s'allume avec les
mêmes paramètres au prochain allumage
- Vous serez capables de contrôler l'alimentation électrique à partir de
votre PC sous Linux via le connecteur rs232.
Maintenant, vous voulez savoir comment utiliser le logiciel et comment le
charger.
Décompressez le paquet digitaldcpower.tar.gz et entrez (« cd ») dans le
répertoire qui est créé.
Editez le fichier hardware_settings.h et ajustez-le en fonction du matériel.
Ici, vous pouvez aussi effectuer les calibrations du voltmètre et de
l'ampèremètre. Le fichier est bien commenté.
gedit hardware_settings.h
Connectez le câble de programmation et allumez le circuit. Ensuite, exécutez
:
make wrfuse4mhz
Cela va positionner la fréquence d'horloge du microcontrôleur à 4MHz. Le
logiciel est conçu pour cette fréquence.
make
Cela va compiler le logiciel.
make load
Cela va charger le logiciel
Quelques photos et idées
Voici quelques photos de l'alimentation électrique que j'ai construite. Les
photos sont parfois meilleures qu'une longue description, spécialement
lorsqu'il s'agit de matériel et de parties mécaniques.
Vous pouvez construire un boîtier simple mais ayant l'air professionnel à
partir d'une feuille d'aluminium et deux planches en bois.
Pliez simplement l'aluminium deux fois. Cela est facile à faire, même sans
équipement professionnel.
Les deux circuits imprimés. Le plus petit est pour le clavier.
Marquez les positions des boutons poussoirs sur le boîtier avant de souder
les boutons sur la carte. Cela rend plus facile le perçage des trous à la
bonne position
Le circuit. Très petit, riches en fonctionnalités et puissant.
L'alimentation électrique finale.
Amusez-vous ! ... Et il y aura d'autant plus d'amusement que ce matériel
pourra faire beaucoup plus ...
Références/Téléchargement
- Page de téléchargement de cet article
(les mises à jour et corrections y seront également disponibles).
- Programmer le microcontrôleur AVR avec GCC, libc 1.0.4 : article 352 de novembre 2004
- Feuille de spécifications pour l'Atmega8 : allez sur
http://www.atmel.com/ et sélectionnez products->Microcontrollers
->AVR-8 bit RISC->Documentation->datasheets
(copie locale, pdf,
2479982 bytes)
- section électronique de
Tuxgraphics, une collection de tous les articles dans cette
série.
- magasin en
ligne Tuxgraphics, section microcontrôleurs, vous pouvez y commander
touts les composants (transistors, composants passifs, affichage LCD, PCB,
microcontrôleur, ...).
2005-07-08, generated by lfparser_pdf version 2.51