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.