¿De dónde crecen las "piernas"?
Varias máquinas herramientas controladas por software ahora están disponibles y han ganado popularidad. Estos son láser y fresas y grabadores. Y también impresoras 3D. Todas estas máquinas tienen un nodo común: un motor paso a paso.
Y este motor necesita un controlador.

El principio del funcionamiento del motor no es el tema de este artículo. Consideraremos solo el conductor. Todo lo que necesitamos saber en este contexto es qué señales de control necesitamos generar para controlar el motor paso a paso. Resulta que estos son los pulsos rectangulares más comunes.
Existen varias soluciones de controladores de varias compañías. En nuestro artículo, consideraremos la solución de controlador L9110 más asequible y su análogo HG7881. Esta solución se usa a menudo en Arduino
Teoría y práctica
Decidí usar el chip L9110 en mi proyecto.
Hoja de datos bastante fácil de buscar en Google . Leer Todo esta muy claro. Características, pinout, tabla de verdad ... En todos los aspectos, el controlador parece ser adecuado. El voltaje de conmutación es de 12 voltios, la corriente de salida es de 800 mA. - Solo lo suficiente.
¿Y qué es realmente?
Sin demora en la "caja larga" hice una pizarra, escribí y lancé un programa de prueba ...
Lo primero que noté en mi dispositivo es que el chip del controlador está muy caliente. Atencion Ralentí Sin carga ¿Cuáles son estos milagros de circuitos?
¿Quizás mi chip está defectuoso?
La idea surgió para considerar este dispositivo con más detalle. Y no uno, sino un montón.
Apenas dicho que hecho.
Es bueno que tuviera un socket SO-8 en existencia y una placa de simulación.
Bueno, y un controlador basado en STM32.
Se montó el soporte y se realizaron mediciones.

Sí, por cierto, además de directamente, el nodo de alimentación en el chip integrado lógico O exclusivo.
En una hoja de datos se describe .
Como estoy estudiando el efecto de calentar el microcircuito, es mejor no limitarme a los lógicos y ceros, sino a eliminar los voltajes reales.
Como resultado de las mediciones, se obtuvo una placa:

Considere las líneas 2 y 3. ¿Qué vemos aquí?
- La caída de voltaje en los transistores de salida, cuando hay una carga, es de aproximadamente uno y medio voltios, lo que a una corriente de 0,33 amperios produce 0,5 vatios por canal.
- En inactivo, el microcircuito consume 0.05 A, que a un voltaje de 12 V produce 0.6 vatios por canal.
En otras palabras, independientemente de la carga, consume alrededor de 0,5 vatios por canal. Ahora está claro por qué me quemé los dedos sobre ella.
El calentamiento fuerte es, por supuesto, un inconveniente. ¿Pero tal vez el chip realiza bien su función? Aquí, un osciloscopio de prefijo de 4 haces recientemente conectado fue útil. No esperaba que necesitara las 4 vigas tan pronto. Para las pruebas, escribí un programa simple en stm32, que he estado usando durante mucho tiempo en varios proyectos. El programa simplemente genera 2 señales rectangulares con una diferencia de frecuencia triple.
Como es mejor ver una vez que leer muchas veces, aplico un escaneo de las señales de control.

Nada muy complicado Solo los pulsos rectangulares cambiaron con una diferencia de frecuencia de 3 veces.
La parte superior de la pantalla - señales de entrada - la inferior - salida.
Es evidente de inmediato que con diferentes valores de las señales en las entradas, los valores en las salidas son bastante claros, se establecen sin demoras y con bordes afilados.
Si las señales en las entradas coinciden, entonces el frente es suave. similar a la descarga del condensador.
Mirando a través de la documentación, no vi nada que presagiara tal comportamiento.
¿Quizás configuré la frecuencia de entrada demasiado alta? No hay límite en la hoja de datos.
Ya sabiendo que este controlador tiene casi un 100% análogo del HG7881, recurrí
a su documentación .
Ella arrojó más luz sobre esta misteriosa situación. Resulta que la lógica del controlador es un poco más amplia. Dos unidades en la entrada están frenando (es decir, en la salida ambas señales deben estar bajas). Y dos ceros en la entrada son contactos "colgantes". La brecha
Por lo tanto, dos ceros en la entrada deberían "suspender" las salidas. Entonces, el comportamiento del condensador de descarga es bastante predecible. Sin embargo, dos unidades en las entradas deben ser un cero confiable en la salida. Pero, de hecho, esto no es así.
Podría culpar este defecto al "fabricante chino". Sin embargo, probé honestamente el chip soldado de la placa Arduino. En qué, ni un chip. De varios tableros. Es decir, la probabilidad de matrimonio se reduce considerablemente.
Conclusión
El alcance del microcircuito L9110 es más estrecho que el declarado, y la eficiencia es baja.
La dispersión de 0.5-0.6 vatios en una tecla es demasiado. No es casualidad que esta solución sea la más barata (10 centavos por chip. En aliexpress).
Los siguientes artículos analizarán controladores alternativos de motores paso a paso.