On ne détaille ici que le LM629N.
Son fonctionnement est illustré par la figure suivante (extrait
de la datasheet de National) :

On voit donc que le LM629 (ici indiqué 628,
mais le principe reste le même pour un LM628 ou 629), permet de
:
- Récupérer les informations du codeur incrémental
(INCREMENTAL ENCODER) qui permet de surveiller
le moteur (sur 3 entrées IN,A,B)
- Transformer ces informations en une information de position
réelle (là où on est)(POSITION
FEEDBACK PROCESSOR)
- Générer d'un autre coté, une consigne
de position (là où on devrait être)(COMMAND
POSITION SEQUENCER)
- Vient ensuite l'élément qui effectue la différence
entre la consigne de position et la position réelle,
qui représente l'erreur de position
- On 'filtre' cette erreur par un filtre PID
(vu précédemment) (DIGITAL
PID FILTER).
- Il ressort de ce filtre une commande pour le moteur (c'est à
dire une valeur de tension à lui appliquer).
- Dans le cas du LM628, cette tension est convertie en une
valeur analogique, puis passée par un amplificateur permettant
de fournir le courant que va demander le moteur lorsqu'on lui impose
cette tension (étage de puissance)
- Dans le cas du LM629, on ressort une information identique
mais sous forme d'une PWM (Pulse Width Modulation -
Modulation de Largeur d'Impulsion). C'est à dire qu'on ne sort
qu'une information logique (0 ou 1). Cette information logique va
être découpée en périodes. Pour
chaque période, cette information sera à 1 pendant une
certaine durée et à 0 pendant le reste du temps. Plus
la durée du '1' sera longue et plus on va apporter d'énergie
au moteur. Si la durée de la période est assez faible
(aux alentours du dixième de milliseconde), c'est à
dire très inférieure à la constante électrique
du moteur, alors tout se passe comme si on lui avait appliqué
une tension continue équivalente.
Cette technique qui consiste à "hacher" le
signal a un avantage : l'amplificateur de puissance qu'il est nécessaire
de mettre derrière est plus simple et génère
beaucoup moins de pertes d'énergie (Rendement proche de 100%).
- Il y a ensuite une interface permettant de commander le LM (HOST
INTERFACE) via un microcontrôleur ou tout autre processeur.
Son brochage est le suivant :

Brochage du LM629N (attention, diffère
en fonction de la version)
On retrouve l'ensemble des fonctions citées au-dessus.
- L'alimentation (GND 14, Vdd 28)
- Un signal permettant de remettre le LM629 à 0 (Reset
27)
- Un signal d'horloge (CLK 26)
- L'interface bus standard permettant de commander le LM
- 8 bits de données (Entrées/Sorties)(D7
4 -> D0 11)
- Un signal validant le composant (Entrée active à
l'état bas) (ChipSelect 12)
- Un signal validant une lecture (Entrée active à
l'état bas) (Read 13)
- Un signal validant une écriture (Entrée active
à l'état bas) (Write 15)
- Un signal permettant de choisir un registre de commande ou de
données (Entrée) (PortSelect - 16)
- Un signal d'interruption (Sortie active à l'état
haut) (HI 17) qu'il n'est pas obligatoire d'utiliser
- Les 3 entrées venant du codeur : IN 1, A 2,
B 3
- Les 2 sorties commandant le moteur (via l'interface de puissance)
(PWM SIGN 18, PWM MAG 19)
Alimentation
Le LM629 s'alimente en 5V, il consomme un peu plus de 50mA en moyenne.
Reset
Le signal Reset doit être à 1. Pour réinitialiser
le composant, il sera nécessaire de le passer à 0.
Horloge
Le signal horloge doit recevoir un signal logique périodique.
En fonction de la version du LM, cette horloge pourra aller jusqu'à
6MHz ou 8MHz. Il ne suffit pas d'un simple quartz, il
faut un signal d'horloge (il existe des oscillateurs intégrés
en boitier DIP14, sinon il faut en réaliser un grâce
à un quartz et une ou 2 portes inverseuses par exemple).Ce
signal d'horloge doit être assez propre. Il faudra minimiser
la longueur des fils ou des pistes reliant l'horloge au LM.
Bus de données
- Sur un BUS processeur, qui doit fournir :
- Un Chip Select à 0 à pour chaque accès
au LM629.
- Un signal Read à 0 à chaque lecture.
- Un signal Write à 0 à chaque écriture.
- Un bit d'adresse permettant de choisir le registre.
- Sur un microcontrôlleur, ou tout autre élément
capable de générer des états logiques. Il faudra
donc commencer par "recréer" le fonctionnement du
bus en ayant par exemple quelques routines permettant de :
- Générer un cycle d'écriture (avec possibilité
de mettre PS à 1 ou à 0)
- Générer un cycle de lecture (avec possibilité
de mettre PS à 1 ou à 0)
Il faudra dans les 2 cas (surtout dans le premier), respecter les
timings du LM629, notamment le temps d'accès qui est de 120ns
minimum.
Le signal d'interruption peut être relié, mais ce
n'est pas indispensable (tout dépend de l'application).
Codeur Incrémental
Le codeur doit être relié aux entrées A,
B et éventuellement IN. Un codeur génère
des impulsions à chaque passage d'un trou devant le capteur
optique. Il est nécessaire d'avoir une information supplémentaire
pour connaître le sens du déplacement. On utilise alors
2 signaux qui permettent de connaître, à la fois le nombre
d'impulsions et le sens de déplacement (2 signaux en quadrature).
Le LM se charge de "décoder" ces signaux et
d'incrémenter/décrémenter un compteur
pour avoir une valeur absolue de "position".
En fonction du nombre de points (nombre d'impulsions) par tour et
de la vitesse de rotation du codeur, la "fréquence"
de ces impulsions peut atteindre des valeurs assez élevées
(les codeurs HP sont limités à 100kHz). De plus
les entrées sont assez sensibles. Il faut donc minimiser la
longueur des connexions entre le codeur et le LM. La documentation
du codeur peut aussi indiquer des éléments permettant
de diminuer la sensibilité.
Dans tous les cas, il ne faut ni altérer ces signaux, ni les
"ralentir" (ne pas rajouter de portes logiques entre le
codeur et le LM par exemple).

Câblage d'un codeur incrémental.
L'exemple montre ici le câblage d'un codeur HP
HEDS-5540. Ce codeur nécessite d'être alimenté.
Il est conseillé de rajouter un condensateur de découplage
(quelques centaines de nF) au plus près de l'alimentation du
codeur. On peut aussi rajouter 2 résistances de pull-up (2,7
kohms) au plus près du codeur (tout dépend du
codeur, voir sa datasheet). Les sorties de ce codeur sont
en collecteur ouvert et l'impédance de la ligne est assez élevée
(elle peut plus facilement être parasitée), les résistances
permettent donc de diminuer cette impédance et le risque de
parasites sans déteriorier les signaux.
L'entrée IN du LM629 permet de recevoir
un signal supplémentaire. Ce signal doit passer à 0,
une fois par révolution du codeur pour indiquer une position
de référence. Ce signal n'est pas obligatoire
et ne doit pas être câblé au codeur, si
le codeur ne génère pas ce signal ou ne le génère
pas de cette façon (2 impulsions par tour, etc). Lorsqu'il
n'est pas utilisé (pas câblé au codeur), il est
IMPERATIF de mettre un pull-up sur cette ligne (quelques kohms)
PWM de sortie
Ici, peu de commentaires. Le signal PWM (8 bits) et celui de sens
(1 bit) doivent être reliés à une interface de
puissance. L'interface de puissance sera ensuite reliée au
moteur. Par la suite il conviendra de se soucier du sens d'alimentation
du moteur ...
Liste des commandes
Pages écrites par Bat : manu_bat_manu@yahoo.fr
Relecture, améliorations par Coco : coco_corp@yahoo.fr
Voir ausi : Club
de Robotique E.S.E.O.
|