Dirigindo motores DC com MOSFETs e um microcontrolador?

13

Estou desenvolvendo um nano quadcopter usando um microcontrolador Atmega328, alimentado a 3,3V, e motores DC escovados muito pequenos. A corrente média usada por esses motores é de cerca de 800mA a 3,7V.

Inicialmente, para acioná-los, usei um driver de motor L293D, mas esse componente era bastante ineficiente. A corrente medida quando os motores funcionavam na potência máxima era de cerca de 500mA e, portanto, o impulso era muito menor do que deveria.

Agora, para resolver esse problema, eu substituiria esse driver de motor por 4 MOSFETs de nível lógico. Após uma longa pesquisa, encontrei este (2SK4033).

Você sabe se deve funcionar? Eu tenho que usá-lo em conjunto com um diodo? Se a resposta for "sim", e essa (MBR360RLG)?

Escolhi esses componentes também porque posso comprá-los na mesma loja online.

supergiox
fonte
2
Andy respondeu à parte do MOSFET da sua pergunta, mas ninguém mencionou uma pergunta mais fundamental: como você planeja substituir esse L293D por 4 N MOSFETs? Colocar um N MOSFET no lado superior pode causar problemas de eficiência. Um desenho esquemático pode ajudar a tornar sua ideia clara.
Laszlo Valko
O que você quer dizer com "lado alto"? Neste momento, o único esquema que tenho é o do L293D. Se puder ajudar, eu posso publicá-lo. Minha idéia é que cada motor seja acionado por um mosfet (4 no geral) e, se necessário, também por um diodo. O que poderia ser uma solução mais eficiente?
Supergiox
Cada saída L293D inclui um transistor "lado alto" (entre Vcc e a saída) e um transistor "lado baixo" (entre GND e a saída). Se você substituir o transistor "high-side" por um N MOSFET, precisará de uma fonte de alimentação que possa fornecer Vgs (pelo menos 2..3..4V) acima da tensão de saída. Ou o max. a voltagem de saída será Vcc - Vgs ... #
Laszlo Valko
O Vgs deve ser de 3,3V e a saída (Vds) deve ser de 3,7V (a mesma voltagem da bateria, única). Então, se houver esse problema, como posso fazer? Você pode sugerir outra solução?
Supergiox
2
Você tem as seguintes opções: a) use P MOSFETs para o lado superior; b) use um dobrador de tensão separado ou um circuito conversor DC-DC para fornecer 2 * Vcc para acionar as portas MOSFET do lado superior; c) use um circuito de autoinicialização para fornecer a tensão Vout + Vcc adequada para acionar as portas MOSFET do lado superior. Cada um deles tem suas desvantagens e / ou limitações.
Laszlo Valko

Respostas:

17

MOSFETs devem funcionar muito bem para este aplicativo. Aqui estão algumas coisas a considerar:

1:

Ao usar um FET para conduzir uma carga, você pode escolher uma configuração do lado alto ou do lado inferior. O lado alto coloca o FET entre o trilho de força e a carga, e o outro lado da carga é conectado ao terra. Em uma configuração do lado inferior, um condutor da carga é conectado ao trilho de energia e o FET é posicionado entre a carga e o solo:

HighVsLow

A maneira mais simples de acionar seu motor (ou outra carga) é usar um MOSFET de canal N na configuração do lado inferior. Um N-FET começa a ser conduzido quando a tensão do seu portão é maior que a sua fonte. Como a fonte está conectada ao terra, o portão pode ser acionado com a lógica normal de ligar / desligar. Há um limite que a tensão do portão deve ultrapassar ("Vth") antes que o FET seja conduzido. Alguns FET têm Vth na ordem de dezenas de volts. Você deseja um N-FET de "nível lógico" com um limite consideravelmente menor que o seu Vcc.

Existem duas desvantagens na configuração FET do lado inferior:

  • O enrolamento do motor é conectado diretamente ao trilho de potência. Quando o FET está desligado, todo o enrolamento está "quente". Você está trocando o terra, não a conexão de energia.

  • O motor não terá uma referência real ao solo. Seu potencial mais baixo será maior que o solo pela tensão direta do FET.

Nenhum deles deve ter importância no seu design. No entanto, eles podem ser problemáticos se você não os espera! Especialmente com circuitos de maior potência :)

Para superar esses problemas, você pode usar um P-FET na configuração do lado superior. O circuito de direção se torna um pouco mais complexo, no entanto. Um interruptor P-FET geralmente tem seu portão puxado para o trilho de energia. Esse trilho de força é maior que o Vcc do uC, portanto, você não pode conectar os pinos de E / S do uC diretamente ao portão. Uma solução comum é usar um N-FET menor do lado inferior para abrir a porta do P-FET do lado superior:

DualFet

R1 e R3 existem para manter os FETs desligados até que o Q2 seja acionado. Você precisará do R3 mesmo em uma configuração do lado inferior.

No seu caso, acho que um simples N-FET do lado inferior (com R3) servirá melhor.


2:

Observe R2 no último diagrama. Uma porta MOSFET atua como um capacitor, que precisa ser carregado antes que a corrente da fonte de drenagem comece a fluir. Pode haver uma corrente de irrupção significativa quando você fornece energia, portanto, é necessário limitar essa corrente para evitar danos ao driver de saída do uC. O limite parecerá apenas um curto por um instante, portanto, não há necessidade de uma grande margem de erro. Seu Atmel específico, por exemplo, pode obter 40mA. 3.3V / 35mA => 94.3 Ohm. Um resistor de 100 Ohm funcionará muito bem.

No entanto, esse resistor diminuirá os tempos de ativação e desativação do FET, o que limitará sua frequência de comutação. Além disso, prolonga a quantidade de tempo em que o FET está na região linear de operação, o que desperdiça energia. Se você estiver alternando com alta frequência, isso pode ser um problema. Um indicador é se o FET fica muito quente!

Uma solução para esse problema é usar um driver FET. Eles são efetivamente buffers que podem gerar mais corrente e, portanto, podem carregar o gate mais rapidamente, sem a necessidade de um resistor limitador. Além disso, a maioria dos drivers FET pode usar um trilho de potência mais alto do que o Vcc típico. Essa tensão de porta mais alta reduz a resistência do FET, economizando energia adicional. No seu caso, você pode alimentar o driver FET com 3,7V e controlá-lo com os 3,3V do uC.

FetDriver


3:

Por fim, convém usar um diodo Schottky para proteger contra picos de tensão causados ​​pelo motor. Faça isso sempre que mudar uma carga indutiva:

LowSideWithDiode

Um enrolamento de motor é um grande indutor, portanto, resistirá a qualquer mudança no fluxo de corrente. Imagine que a corrente está fluindo através do enrolamento e, em seguida, você desliga o FET. A indutância fará com que a corrente continue a fluir do motor à medida que os campos elétricos colapsam. Mas, não há lugar para essa corrente ir! Por isso, ele perfura o FET ou faz outra coisa igualmente destrutiva.

O Schottky, colocado paralelamente à carga, fornece um caminho seguro para a corrente percorrer. O pico de tensão atinge o máximo na tensão direta do diodo, que é de apenas 0,6V a 1A para o especificado.

A imagem anterior, uma configuração do lado inferior com o diodo flyback, é fácil, barata e bastante eficaz.


O único outro problema que vejo ao usar a solução MOSFET é que ela é inerentemente unidirecional. Seu L293D original é um driver múltiplo de meia ponte. Isso possibilita acionar um motor nas duas direções. Imagem conectando um motor entre 1Y e 2Y. O L293D pode fazer 1Y = Vdd e 2Y = GND, e o motor gira em uma direção. Ou, pode fazer 1Y = GND e 2Y = Vdd, e o motor girará para o outro lado. Muito útil.

Boa sorte e divirta-se!

bitsmack
fonte
Agradável! Preciso de um resistor entre o micro condutor e o portão? 220 Ohm é um bom valor? (3.3V / 0.02A = 170 Ohm ~ 220 Ohm)
supergiox
1
Boa pergunta. No mundo ideal, o portão não afundará nenhuma corrente. Esse é um dos benefícios dos FETs sobre os BJTs. Mas, no mundo real, o portão atua como um pequeno capacitor, que precisa carregar antes que a corrente da fonte de drenagem comece a fluir. Você quer que ele carregue rapidamente, para ativar o FET rapidamente. Quando você liga o pino da uC pela primeira vez, a capacitância do gate aparece como um curto-circuito. O ATmega328 pode fornecer 40mA por pino. O limite só será curto por um instante, então eu não me incomodaria com muita margem de erro. Digamos, 3,3V, 35mA: ~ 100 Ohm. Vou mesclar isso hoje mais tarde!
bitsmack
1
Ah, e se você estiver trocando o motor em altas frequências, essa resistência se tornará um problema. Isso diminui a carga e descarga do portão, o que diminui sua frequência de comutação. Além disso, prolonga a quantidade de tempo em que o FET está na região linear de operação, o que desperdiça energia. Se você achar que isso é um problema, use um "Driver FET" ou algum outro buffer, feito para gerar / consumir uma corrente muito maior de / para o gate. Então você pode minimizar (ou eliminar) o resister.
bitsmack
Eu acho que a frequência do switch é a frequência pwm, então deve ser de cerca de 500Hz.
Supergiox
1
Legal :) Estou com ciúmes; Eu tenho vontade de construir um helicóptero quad por algum tempo agora! Deixe-nos saber ...
bitsmack 25/03
12

Aqui está o que eu procuraria em qualquer MOSFET. Isto é da folha de dados do 2SK4033 a propósito: -

insira a descrição da imagem aqui

Você diz que 800mA é a corrente média, mas isso poderia aumentar para mais de 1A sob carga? De qualquer forma, em 1A e com uma tensão de acionamento de portão de 3,3V, o MOSFET cai cerca de 0,15V em seus terminais ao alimentar uma carga de 1A. Você pode viver com essa perda de energia (150mW) e, mais importante, quando a tensão da bateria cai abaixo de 3V, você pode viver com o desempenho perdido, pois a tensão do portão cai inevitavelmente.

Somente você pode responder a essa questão. Existem MOSFETs melhores do que isso, mas você precisa calcular as correntes de carga reais para o motor que espera ver.

EDITAR% S

Aqui está um chip que me deparei que poderia ser bastante útil no lugar dos MOSFETs. É o DRV8850 da TI. Ele contém duas meias pontes e isso significa que ele pode acionar independentemente dois dos 4 motores sem precisar dos diodos de retorno (na verdade, o FET superior está operando como um retificador síncrono e, é claro, reduz perdas). A resistência de cada FET é de 0,045 ohms e é classificada em 5A (a potência dissipada é de cerca de 1,1 watt), mas, dado que o OP deseja cerca de 1A, isso se torna muito trivial. A faixa de tensão de alimentação é de 2V a 5,5V, então novamente isso é muito adequado: -

insira a descrição da imagem aqui

Andy aka
fonte
Muito obrigado. Sim, os motores podem aumentar a corrente para um valor ligeiramente acima de 1A, mas apenas por um curto período de tempo. Uma regra prática que conheço é considerar uma corrente que é o dobro da média (1,6A). Eu acho que 150mW de perda de energia não é um grande problema.
Supergiox
O que acontece com tensões mais baixas da bateria quando a unidade do portão é mais fraca e a perda se torna maior. Estou brincando de advogado do diabo, é claro!
Andy aka
Sobre a tensão da bateria cair abaixo de 3V, não sei se entendi o que você quer dizer. Enfim, eu uso um regulador de tensão (LE33CZ) para alimentar o ATmega em 3,3V. Isso não significa que a tensão é "sempre" 3,3V? Mais uma pergunta. E o diodo?
Supergiox 14/03
1
À medida que a tensão da bateria cai para 3,4 volts, a saída do regulador também começa a cair e isso significa que a voltagem do inversor para o portão começa a cair e os fets se tornam mais ineficientes. Lide com esse cenário antes dos diodos. Os diodos são triviais em comparação.
Andy aka
1
Você precisa de um Fet para controlar cada um ou dois motores. Laszlo supõe que você precise de 2 porque originalmente usou um L293.
Andy aka
6

Como um motor DC escovado está sendo usado, você não precisa necessariamente de uma ponte H como acionamento. Apenas dois casos realmente requerem uma ponte H; precisa comutar externamente o motor (pense em motores PM sem escova, por exemplo) ou precisa inverter a rotação. Nenhuma dessas parece se aplicar aqui. O uso de uma única direção ou SQD (Single Quadrant Drive) simplificaria bastante o que você está tentando fazer.

O FET que você está pensando em usar (2SK4033) não combina muito com a tensão do inversor disponível (Andy já apontou o porquê), e entraremos em mais detalhes sobre a escolha de FETs posteriormente.

Condução de motores CC escovados com um acionamento de quadrante único (SQD)

Vth

insira a descrição da imagem aqui

VωRwindRgRpdVbVdrv

ImIdpkIdrmsIcr-ave

  • IdpkIm
  • Id-rms2Im2
  • Icr-aveIm

Critérios básicos para a escolha de um FET (tipo de ABC da escolha de um FET):

  • VDS1.5VB-max

VDS

  • Vth-maxVDrv-min3

    Vth-maxRds

  • ΔTJA

    O aumento do calor é realmente importante. É responsável por todas as perdas ... perda de condução, perda de portão e perda de comutação.

Seleção de peças de amostra com base em 3 critérios:

VB-maxVDrv-minVDSVth-maxRDS

  • VDSVth-max

Rth

PTPcondPsw

Onde

PcondRdsIm2

Psw12ImVbFPWM(τf+τr)

VgsVdsVgsVmpVds

insira a descrição da imagem aqui

QmpVmpVdrvRgVmpVdrv

QmpτVdrv2Rgτ2RgQmpVdrv2(100Ohms)(4nC)3.3V

ImRdsRds

PT0.9(33mOhm)(1.2A)2(3.3V)(1.2A)(242nSec)(20kHz)

Im

Pontas soltas

  • Coloque o circuito de acionamento e os interruptores perto do motor.

  • Embora possa ser possível ao micro acionar o FET diretamente, um driver para a proteção do micro é uma boa idéia (algo como um NC7WZ16 poderia funcionar aqui).

  • Ciss

  • Im

gsills
fonte