Acelere o desenvolvimento de aplicações automotivas e de IoT para motores BLDC com o controlador de motores A4964KJPTR-T
Contributed By DigiKey's North American Editors
2021-10-26
Os motores CC sem escovas (BLDC) são usados cada vez mais em muitas e variadas aplicações, desde abridores de garagem controlados por Internet das Coisas (IoT) e vidros de automóveis, até controladores de propulsão de satélites. O problema que os projetistas enfrentam com os motores BLDC é que os algoritmos de controle necessários para acioná-los são complexos e muitas vezes especializados. Isto torna difícil para o engenheiro mediano ter um em funcionamento em um período de tempo razoável.
Em geral, os desenvolvedores podem escolher entre uma solução baseada em software executado em um microcontrolador, que fornece uma solução de software flexível, mas também coloca uma carga de computação sobre o microcontrolador, ou usar um circuito integrado (CI) dedicado. Este último encapsula a função completa de controle do motor BLDC e descarrega o controle BLDC a partir do hospedeiro.
Este artigo discute as diferenças entre uma solução de software baseada em microcontroladores e uma solução de chip de hardware dedicado. Em seguida, analisa em profundidade como usar o Allegro MicroSystems A4964KJPTR-T, um acionador projetado para simplificar o controle do motor BLDC especificamente para aplicações automotivas. O artigo mostrará como interagir com o A4964KJPTR-T associado a algumas das melhores práticas para evitar comportamentos inesperados.
Uma (muito) breve introdução aos motores BLDC
Os motores BLDC fornecem torque eficiente em uma ampla gama de velocidades, são silenciosos e não sofrem com o atrito mecânico dos motores com escovas. Os motores BLDC são controlados por corrente, não por tensão, o que permite que sejam usados em uma grande variedade de aplicações, para as quais eles vêm em uma grande variedade de formas, tamanhos e pontos de custo.
Por exemplo, a TRINAMIC Motion Control oferece o QBL4208-41-04-006 que é um motor de 24 volts, 4000 rotações por minuto (RPM) que fornece torques de até 0,06 newton metros (Nm) (Figura 1). O motor é leve (300 g) e oferece várias opções a um desenvolvedor para controlar o motor, como por exemplo, através de operação sem sensores usando a força contraeletromotriz (BEMF) ou usando sensores embutidos que informam a posição.
Figura 1: O QBL4208-41-04-006 é um motor BLDC de 24 volts e 4000 RPM que pode fornecer um pouco mais de 0,06 Nm de torque na velocidade máxima. (Fonte da imagem: TRINAMIC Motion Control GmbH)
Para mais torque, os projetistas podem usar o QBL4208-41-04-025, também da TRINAMIC Motion Control (Figura 2). Este é um motor BLDC de 24 volts e 4000 RPM que pode fornecer um pouco mais de 0,25 Nm de torque.
Figura 2: O QBL4208-41-04-025 é um motor BLDC de 24 volts e 4000 RPM da TRINAMIC Motion Control, que pode fornecer um pouco mais de 0,25 Nm de torque à velocidade máxima. (Fonte da imagem: TRINAMIC Motion Control GmbH)
Os motores BLDC são acionados através de linhas trifásicas que geram um campo magnético que depois empurra contra ímãs permanentes para mover o estator e girar o motor.
Em teoria, isto parece fácil. Mas, na prática, acionar um motor BLDC é bastante complicado, deixando aos desenvolvedores a escolha entre usar uma estrutura de software para acionar o motor ou optar por uma solução de chip dedicado.
Soluções de software versus chips dedicados
Há vários fatores que os desenvolvedores devem considerar quando se trata de resolver como girar seu motor BLDC. Estes fatores se resumem basicamente em:
- Custo da lista de materiais (BOM) versus custos de mão-de-obra
- Complexidade da placa versus complexidade do software
- Tempo e custos de manutenção
Do ponto de vista de hardware, pode ser muito tentador tomar a rota do software porque uma solução de chip dedicado acrescenta algum custo adicional à BOM. Em vez de um chip dedicado, remova esse custo, gaste uma fração a mais em um microcontrolador e coloque todos os algoritmos de controle neste microcontrolador. Parece uma situação de ganho mútuo, mas as equipes muitas vezes não consideram as consequências completas desta decisão.
Sim, diminui o custo da BOM, mas depois coloca uma carga adicional sobre o microcontrolador para processar os dados de estado do BLDC e acionar continuamente o motor. Se o microcontrolador também estiver tentando testar outros sensores, conversar com um rádio e controlar outros dispositivos, os custos de desenvolvimento e manutenção do software poderão passar dos limites se não forem tomados cuidados.
Dito isso, uma solução baseada em software em um microcontrolador pode oferecer flexibilidade na medida em que uma equipe pode ajustar seus algoritmos de controle de motores. O uso de software também não significa que as coisas sempre tenham que ficar complicadas demais.
Por exemplo, normalmente seria o caso que ao mover o algoritmo de controle do motor para o microcontrolador, poderia ocupar mais memória RAM e exigir muita memória flash. Entretanto, se uma equipe utiliza um microcontrolador projetado para controle de motores, como o microcontrolador de controle de motores da Texas Instruments, o F280049CRSHSR, os algoritmos são incorporados em uma biblioteca que reside na ROM do microcontrolador. Isto significa que o único código adicional acrescentado à aplicação são as chamadas de função para acessar a biblioteca que faz todo o levantamento pesado.
Mas rodar um motor BLDC não se resume apenas ao software, ele também requer hardware. A figura 3 mostra um exemplo de aplicação utilizando um microcontrolador C2000, do qual o F280049CRSHSR é um membro da família, ilustrando tudo o que é necessário e opcional para acionar um motor BLDC. Além de um microcontrolador, também é necessário um estágio de alimentação trifásica que possa acionar as três fases do motor BLDC para que ele gire.
Figura 3: Os microcontroladores C2000 da Texas Instruments são projetados para aplicações de controle de motores. Esta imagem mostra um exemplo de aplicação com o microcontrolador no centro e o circuito necessário e opcional requisitados para acionar um motor BLDC. (Fonte da imagem: Texas Instruments)
Usar um microcontrolador para acionar o motor é definitivamente interessante, mas qual é a aparência de uma solução de hardware dedicada? Vamos dar uma olhada no chip controlador de motor A4964KJPTR-T da Allegro MicroSystems.
O controlador de motor A4964KJPTR-T da Allegro MicroSystems
O chip controlador de motor A4964KJPTR-T da Allegro MicroSystems é um acionador dedicado de motor BLDC que contém todos os inteligentes necessários para acionar um motor (Figura 4). Especificamente projetado para aplicações automotivas e para uso com MOSFETs de canal N, o chip tem partida e comutação sem sensores, portanto requer uma quantidade mínima de hardware externo. O A4964KJPTR-T também opera em uma ampla faixa de tensões, de 5,5 a 50 volts, que cobre quase todas as aplicações padrões, além de sistemas automotivos.
Talvez sua característica mais interessante, o A4964KJPTR-T pode ser fazer interface com um microcontrolador ou unidade central de controle eletrônico (ECU) através da Interface Periférica Serial (SPI) para configurar os vários registradores para operação do motor. Obviamente, o microcontrolador não precisa ser tão poderoso quanto aquele que está executando os próprios algoritmos de controle do motor.
Figura 4: O controlador de motor BLDC A4964KJPTR-T pode operar de 5,5 a 50 volts e fornece partida e comutação sem sensores. A velocidade do motor pode ser configurada através de SPI ou através de um sinal PWM dedicado. (Fonte da imagem: Allegro MicroSystems)
Alternativamente, e esta é a parte interessante, a velocidade do motor A4964KJPTR-T também pode ser acionada sem SPI, simplesmente fornecendo um sinal de modulação de largura de pulso (PWM). Existe uma memória não volátil onde podem ser armazenadas as configurações do motor que são carregadas ao ligar, permitindo apenas um sinal PWM para controlar o motor.
De uma perspectiva de configuração, o A4964KJPTR-T tem 32 registradores endereçáveis de 16 bits, mais um registrador de status. O registrador de status é exclusivo, pois os primeiros 5 bits são transmitidos durante cada operação de leitura/escrita no SPI, permitindo que o software verifique um status geral para ver se há alguma falha ou problema. Todos os registradores de status podem ser lidos durante as operações de escrita para o chip, já que nenhum dado está sendo transmitido de volta do A4964KJPTR-T.
Nos 32 registradores endereçáveis, há também dois registradores especiais. O registrador 30 é somente para escrita e o registrador 31 é somente para leitura. O registrador só de escrita permite que um desenvolvedor defina a entrada de demanda, ou a taxa de ciclo de trabalho, em que o motor será acionado com um valor entre 0 - 1023. Os dados do registrador só de leitura mudam com base nos dados solicitados que são escritos para o registrador 29, o registrador selecionado para leitura de retorno. Este registrador permite a recuperação de uma ampla gama de informações de telemetria, como por exemplo:
- Diagnóstico
- Velocidade do motor
- Corrente média de alimentação
- Tensão de alimentação
- Temperatura do chip
- Entrada de demanda
- Ciclo de trabalho de pico da ponte aplicada
- Avanço de fase aplicado
Além desses registradores especiais, os 30 restantes permitem que a aplicação específica do motor seja sintonizada e permitem que falhas sejam habilitadas ou desabilitadas, tais como limite de corrente e falhas de acionamento de porta.
Os controladores dedicados são interessantes porque resumem tudo o que precisa ser configurado para executar o motor em algumas dezenas de registradores de configuração. Isto remove drasticamente qualquer sobrecarga de software que de outra forma existiria em um microcontrolador, e talvez mais importante, pode reduzir drasticamente os custos de desenvolvimento e manutenção de software. Controlar o BLDC nada mais é do que enviar um PWM que não pode ter sobrecarga em um microcontrolador, ou habilitar o bit do motor e fornecer uma entrada de demanda baseada em SPI para girar o BLDC.
Dicas e truques para usar o A4964KJPTR-T
O A4964KJPTR-T facilita bastante para fazer a interface, mas há várias "dicas e truques" que os desenvolvedores devem ter em mente que podem simplificar e acelerar seu desenvolvimento, como por exemplo:
- O registrador de status é retornado na interface SPI durante cada escrita no chip e não está disponível como um registrador dedicado e endereçável. Isto significa que o código do controlador precisa monitorar a linha SDO do barramento SPI, enquanto escreve no chip para obter informações de status.
- As informações sobre falhas estão incluídas no registrador de status, mas uma visão geral do status do chip está disponível em cada transação SPI nos primeiros cinco bits, quando o microcontrolador está fornecendo as informações de acesso ao endereço. Estes dados podem ser usados para determinar se ocorreu algum problema.
- Há dois registradores exclusivos no mapa de memória que são somente de leitura e escrita. Isto é simples, mas tenha cuidado para não tentar ler a partir do registrador só de escrita, pois isto escreverá quaisquer dados fictícios que estejam sendo usados na sequência de leitura ao registrador.
- O chip tem alguma memória não volátil que pode ser usada para armazenar parâmetros padrões. Estes parâmetros são carregados na RAM e utilizados durante a partida. Para garantir que as inicializações do chip entrem no estado pronto da forma mais eficiente, programe valores "seguros" de partida no chip.
- Se o dispositivo final estiver funcionando em um ambiente ruidoso ou rico em radiação, não é uma má idéia projetar o código da aplicação para reafirmar os dados de configuração periodicamente. A configuração do chip é armazenada na RAM, o que significa que ele é vulnerável aos raios cósmicos, às inversões de bit e a todos aqueles eventos divertidos e raros que podem acontecer com a eletrônica.
Conclusão
As implementações de motores BLDC para aplicações automotivas, IoT, entre outras, são bastante comuns, mas acioná-los pode ser complexo. Para gerenciar a complexidade do software, os desenvolvedores podem usar um controlador dedicado para motor BLDC, como o A4964KJPTR-T, que encapsula toda a funcionalidade de controle do motor.
Enquanto o software ainda é necessário para interagir com o chip, o microcontrolador que executa o software só precisa definir as configurações e o A4964KJPTR-T se encarrega de acionar o motor. Os desenvolvedores que seguem as "dicas e truques" fornecidas descobrirão que poupam bastante tempo e sofrimento ao tentarem usar o A4964KJPTR-T.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




