Pilote de moteur pas à pas. Test de la puce L9110

D'où viennent les «jambes»


Diverses machines-outils contrôlées par logiciel sont maintenant disponibles et ont gagné en popularité. Ce sont des fraises et graveurs laser et fraisage. Et aussi des imprimantes 3D. Toutes ces machines ont un nœud commun - un moteur pas à pas.

Et ce moteur a besoin d'un pilote.



Le principe de fonctionnement du moteur ne fait pas l'objet de cet article. Nous ne considérerons que le conducteur. Dans ce contexte, tout ce que nous devons savoir, c'est quels signaux de commande nous devons générer pour contrôler le moteur pas à pas. Il s'avère que ce sont les impulsions rectangulaires les plus courantes.

Il existe un certain nombre de solutions de pilotes de différentes sociétés. Dans notre article, nous considérerons la solution de pilote L9110 la plus abordable et son analogique HG7881. Cette solution est souvent utilisée en Arduino

Théorie et pratique


J'ai décidé d'utiliser la puce L9110 dans mon projet.

Fiche technique assez facilement googlé . Lisez. Tout est très clair. Caractéristiques, brochage, table de vérité ... A tous égards, le conducteur semble convenir. La tension de commutation est de 12 volts, le courant de sortie est de 800 mA. - juste assez.

Et qu'est-ce que c'est vraiment?



Sans tarder dans la "boîte longue" j'ai fait une planche, écrit et lancé un programme de test ...
La première chose que j'ai remarquée sur mon appareil est que la puce du pilote est très chaude. Attention! Ralenti. Pas de charge. Quels sont ces miracles de circuits?
Peut-être que ma puce est défectueuse?

L'idée est venue de considérer cet appareil plus en détail. Et pas un, mais un tas.
Aussitôt dit, aussitôt fait.
C'est bien d'avoir une prise SO-8 en stock et une carte de simulation.
Eh bien, et un contrôleur basé sur STM32.

Le stand a été assemblé et des mesures ont été effectuées.



Oui, d'ailleurs, en plus directement, le nœud de puissance dans la puce intégrée logique OU exclusif. Dans une fiche technique, il est décrit .

Puisque j'étudie l'effet du chauffage du microcircuit, il vaut mieux ne pas se limiter aux logiques et aux zéros, mais supprimer les tensions réelles.

À la suite des mesures, une plaque a été obtenue:



Considérez les lignes 2 et 3. Que voyons-nous ici?

  1. La chute de tension au niveau des transistors de sortie, lorsqu'il y a une charge, est d'environ un vol et demi, ce qui à un courant de 0,33 ampère donne 0,5 watts par canal.
  2. Au ralenti, le microcircuit consomme 0,05 A, ce qui à une tension de 12 V donne 0,6 watts par canal.

En d'autres termes, quelle que soit la charge, il consomme environ 0,5 watts par canal. Maintenant, c'est clair pourquoi j'ai brûlé mes doigts autour d'elle.

Un fort chauffage est, bien sûr, un inconvénient. Mais peut-être que la puce remplit bien sa fonction? Ici, un oscilloscope à préfixe à 4 faisceaux récemment attaché a été utile. Je ne m'attendais pas à ce que j'aie besoin des 4 faisceaux si tôt. Pour les tests, j'ai écrit un programme simple sur stm32, que j'utilise depuis longtemps dans divers projets. Le programme génère simplement 2 signaux rectangulaires avec une différence de fréquence triple.

Puisqu'il vaut mieux voir une fois que lire plusieurs fois, j'applique un balayage des signaux de contrôle.



Rien de bien compliqué. Juste des impulsions rectangulaires décalées avec une différence de fréquence de 3 fois.

La partie supérieure de l'écran - signaux d'entrée - la sortie inférieure.

Il est immédiatement évident qu'avec des valeurs différentes des signaux aux entrées, les valeurs aux sorties sont assez claires, elles sont réglées sans délai et avec des arêtes vives.

Si les signaux aux entrées coïncident, le front est doux. similaire à la décharge du condensateur.
En parcourant la documentation, je n'ai rien vu qui laissait présager un tel comportement.
J'ai peut-être réglé la fréquence d'entrée trop haut? Il n'y a pas de limite dans la fiche technique.
Sachant déjà que ce pilote possède un analogue presque 100% du HG7881, je me suis tourné vers sa documentation .

Elle a jeté plus de lumière sur cette situation mystérieuse. Il s'avère que la logique du pilote est un peu plus large. Deux unités à l'entrée freinent (c'est-à-dire qu'à la sortie, les deux signaux doivent être faibles.) Et deux zéros à l'entrée sont des contacts «suspendus». L'écart.

Donc, deux zéros à l'entrée devraient «suspendre» les sorties. Ensuite, le comportement du condensateur de décharge est tout à fait prévisible. Cependant, deux unités aux entrées - devraient être un zéro fiable à la sortie. Mais en fait, ce n'est pas le cas.

Je pourrais imputer ce défaut au "fabricant chinois". Cependant, j'ai testé la puce honnêtement soudée de la carte Arduino. À quoi - pas une puce. De plusieurs planches. Autrement dit, la probabilité de mariage est considérablement réduite.

Conclusion


La portée du microcircuit L9110 est plus étroite que celle déclarée et l'efficacité est faible.
La diffusion de 0,5-0,6 watts sur une touche est un peu trop. Ce n'est pas un hasard si cette solution est la moins chère (10 centimes par puce. Sur aliexpress).

Les articles suivants discuteront des pilotes de moteur pas à pas alternatifs.

Source: https://habr.com/ru/post/fr473198/


All Articles