De onde crescem as “pernas”
Várias máquinas-ferramentas controladas por software estão agora disponíveis e ganharam popularidade. Estes são fresas e gravadores a laser e de moagem. E também impressoras 3D. Todas essas máquinas têm um nó comum - um motor de passo.
E esse mecanismo precisa de um motorista.

O princípio de operação do motor não é o assunto deste artigo. Vamos considerar apenas o motorista. Tudo o que precisamos saber neste contexto é quais sinais de controle precisamos gerar para controlar o motor de passo. Acontece que esses são os pulsos retangulares mais comuns.
Existem várias soluções de driver de várias empresas. Em nosso artigo, consideraremos a solução de driver L9110 mais acessível e seu HG7881 analógico.Esta solução é frequentemente usada no Arduino
Teoria e Prática
Eu decidi usar o chip L9110 no meu projeto.
Folha de dados facilmente pesquisada no Google . Leia. Tudo está muito claro. Características, pinagem, tabela verdade ... Em todos os aspectos, o motorista parece ser adequado. A tensão de comutação é de 12 volts, a corrente de saída é de 800 mA. - apenas o suficiente.
E o que realmente é?
Sem demora na "caixa longa", fiz um quadro, escrevi e lancei um programa de teste ...
A primeira coisa que notei no meu dispositivo é que o chip do driver está muito quente. Atenção! Inativo. Sem carga. Quais são esses milagres de circuitos?
Talvez meu chip esteja com defeito?
A ideia surgiu para considerar esse dispositivo em mais detalhes. E não um, mas um monte.
Mal disse o que fez.
É bom que eu tenha um soquete SO-8 em estoque e uma placa de simulação.
Bem, e um controlador baseado em STM32.
O estande foi montado e as medições foram feitas.

Sim, a propósito, além de diretamente, o nó de energia no OU lógica lógica integrada do chip.
Em uma folha de dados, é descrito .
Como estou estudando o efeito do aquecimento do microcircuito, é melhor não me limitar a zeros e lógicos, mas remover tensões reais.
Como resultado das medições, uma placa foi obtida:

Considere as linhas 2 e 3. O que vemos aqui?
- A queda de tensão nos transistores de saída, quando há uma carga, é de cerca de um volts e meio, que a uma corrente de 0,33 amperes fornece 0,5 watts por canal.
- No modo inativo, o microcircuito consome 0,05 A, que a uma tensão de 12 V fornece 0,6 watts por canal.
Em outras palavras, independentemente da carga, consome cerca de 0,5 watts por canal. Agora está claro por que eu queimei meus dedos sobre ela.
O aquecimento forte é, obviamente, uma desvantagem. Mas talvez o chip desempenhe bem sua função? Aqui, um osciloscópio de prefixo de 4 feixes recentemente conectado foi útil. Eu não esperava que eu precisasse de todas as quatro vigas tão cedo. Para testar, escrevi um programa simples no stm32, que uso há muito tempo em vários projetos. O programa simplesmente gera 2 sinais retangulares com uma diferença de frequência três vezes maior.
Como é melhor ver uma vez do que ler muitas vezes, aplico uma varredura de sinais de controle.

Nada muito complicado. Apenas pulsos retangulares mudaram com uma diferença de frequência de 3 vezes.
A parte superior da tela - sinais de entrada - a saída inferior.
É imediatamente evidente que, com valores diferentes dos sinais nas entradas, os valores nas saídas são bastante claros, definidos sem atrasos e com arestas vivas.
Se os sinais nas entradas coincidirem, a frente será suave. semelhante à descarga do capacitor.
Examinando a documentação, não vi nada que sugerisse esse comportamento.
Talvez eu defina a frequência de entrada muito alta? Não há limite na folha de dados.
Já sabendo que esse driver possui um análogo quase 100% do HG7881, consultei
sua documentação .
Ela lançou mais luz sobre essa situação misteriosa. Acontece que a lógica do motorista é um pouco mais ampla. Duas unidades na entrada estão travando (ou seja, na saída ambos os sinais devem estar baixos.) E dois zeros na entrada são contatos "travados". A lacuna.
Portanto, dois zeros na entrada devem "suspender" as saídas. Então, o comportamento do capacitor de descarga é bastante previsível. No entanto, duas unidades nas entradas - devem ser um zero confiável na saída. Mas, de fato, não é assim.
Eu poderia culpar esse defeito pelo "fabricante chinês". No entanto, testei o chip soldado honestamente na placa Arduino. Em que - não um chip. De várias placas. Ou seja, a probabilidade de casamento é bastante reduzida.
Conclusão
O escopo do microcircuito L9110 é mais estreito do que o declarado e a eficiência é baixa.
A dispersão de 0,5-0,6 watts em uma tecla é um pouco demais. Não é por acaso que esta solução é a mais barata (10 centavos por chip. No aliexpress).
Os artigos a seguir discutirão drivers de motor de passo alternativos.