1 Comentário

Digital Power com STM32F334 - Firmware do Conversor Boost Síncrono 'Open Loop' - Parte IV

Conversor Boost Síncrono

Olá caro leitor, voltemos a explorar alguns conceitos de digital power utilizando a placa de avaliação fornecida pela STMicroelectronics voltada para conversão de energia utilizando um controlador digital de sinais. No artigo anterior explicamos a teoria envolvida e como a placa discovery poderia nos fornecer recursos para implementar um conversor boost síncrono.

Apenas para relembrarmos, consideremos a figura 1 novamente, onde temos um completo sistema do tipo buck-boost síncrono na placa de avaliação.

Conversor Boost Síncrono
Figura 1: Buck-Boost síncrono

Como explicamos no artigo anterior, do sistema inteiro, utilizaremos apenas os transistores do lado direito do esquema elétrico, ou seja, T5 e T12, enquanto que T4 e T11 servirão apenas com o propósito de desligar a alimentação do circuito quando uma função contida no firmware de halt for chamada. Sabemos ainda que o nosso conversor boost síncrono, em modo contínuo de  operação e em estado de equilíbrio, obedece a seguinte equação.

Equação 1
Equação 1

Sabemos que o modo de operação de um conversor DC-DC pode ser determinado escolhendo a frequência de chaveamento, tal que em 1 ciclo dessa o indutor L3 termine com alguma (contínuo) ou nenhma (descontínuo) energia armazenada. Se escolhemos essa frequência para o modo contínuo de operação o firmware pode se encarregar de calcular o ciclo ativo do gerador de PWM de modo a produzir a tensão de saída desejada. Em nosso sistema trabalharemos com uma tensão de entrada de 5,0 V e o conversor poderá elevar esse valor até o máximo de 15,0 V, limitado internamente por firmware.

O Firmware do Conversor Boost Síncrono

O firmware do sistema em sí é bem simples pois não opera em malha fechada, não requerendo qualquer leitura da tensão de saída para efetuar algum tipo de compensação. O firmware ainda foi desenvolvido de modo a separar completamente o sistema conversor boost síncrono do restante da aplicação, ou seja, todos os tratamentos de hardware e vetores de interrupção ficam internos, sem acesso direto do usuário, o qual poderá comandar o conversor através das funções abaixo:

A função BoostInit coloca o conversor boost síncrono digital em um estado inicial conhecido e configura todo seu hardware. Além disso o conversor permanece em estado de pausa (halt) até que o usuário chame a função BoostStart, que efetivamente dispara os PWMs e faz o firmware buscar para primeira tensão de saída desejada (é importante que a tensão de entrada passada para a função Init corresponda ao valor real da tensão de entrada no sistema boost). A tensão de saída pode ser modificada a qualquer momento pelo uso da função BoostVoltageChange e por fim o usuário pode desativar o sistema através de BoostHalt e retomar o funcionamento chamando novamente a função Start.

Além das funções algumas constantes no arquivo .h podem ser alteradas, de acordo com sistemas personalizados. A primeira delas é a frequência de chaveamento do PWM, e peço ao leitor que notem o valor elevado de 250 KHz. Se relembrarmos a série de digital power com o Arduino vamos notar que a frequência de chaveamento escolhida era muito menor e com resolução limitada em 6 bits. Pois bem, é nesse ponto em que os processadores STM32F334 se sobressaem para aplicações que envolvam digital power. Graças ao módulo HRTIM podemos gerar sinais de PWM de altíssima resolução, e com isso atingindo frequências elevadas de chaveamento. Para fins de comparação os 250 KHz gerados nessa aplicação nos fornecem mais de 14 bits de resolução (sim, sendo possível atingir frequências ainda mais elevadas da ordem de MHz sem prejudicar a granularidade do sistema). As outras constantes de configurações se referem aos limites máximos de tensão de saída e também cálculo de escala do conversor A/D para o sinal de feedback que não será usado no momento. E a constante BOOST_CTL_TYPE determina se vamos operar em malha aberta ou fechada, e como já citado, ela sera colocada em 0 pois ainda não fecharemos a malha de controle.

O modulo Boost.c também é simples e encapsula todas as funções dependentes do hardware, vamos dar uma olhada no que temos aqui:

Eis onde a "mágica ocorre". Vejam que as funções internas nada mais são que escalas ou configurações específicas do processador STM32. O módulo HRTIM foi configurado sem utilizar a biblioteca de periféricos fornecida pela ST pois desejava um modo de operação mais específico. Explico, o conversor boost que vamos utilizar é o tipo síncrono certo? Logo um dos transistores (no caso T5) da placa discovery irá funcionar como o diodo de transferência de energia do indutor para a saída, logo o HRTIM precisa gerar dois sinais complementares. É aí onde temos mais um problema, vejam que a frequência de chaveamento é elevadíssima, de forma que deve ser considerado, no projeto de qualquer conversor síncrono, um "tempo morto" onde nenhuma das chaves é acionada de forma que uma só acione quando a outra trocar completamente de estado, evitando assim o famoso problema de cruzamento de MOSFET que poderia levar o sistema à destruição. Mais uma vez o HRTIM dá conta do recado oferecendo um preciso gerador de "tempo morto" configurável (8 bits). Experimentalmente, com ajuda do osciloscópio, o tempo de 200 ns se mostrou perfeitamente adequado.

As demais funções internas configuram os GPIOs, e conversor A/D em modo de conversão única, além disso sua interrupção será configurada e habilitada pois é dentro do seu vetor de interrupção onde será executada futuramente a malha de controle digital de tempo real. Além dessa, a interrupcão gerada pelo HRTIM é habilitada para auxiliar o disparo do A/D de forma a obtermos uma estratégia de controle futuro muito similar ao modo ciclo-a-ciclo, utilizado em demasia por circuitos integrados analógicos. Por último temos as funções de usuário que nada mais são a teoria boost do artigo anterior implementadas em software.

O arquivo principal da aplicação pode ser visto abaixo:

E aqui temos a aplicação principal que, na verdade, foi baseada na mesma desenvolvida na segunda parte desta série. Logo utilizaremos o botão B1 localizado na placa, a constante BUTTON_SCAN_TIME determina de quantos em quantos milissegundos o botão será checado. Inicialmente o firmware irá configurar o Boost chamando as funcões especifícas contidas em Boost.h. Em seguida o contador Systick será configurado para gerar a base de tempo de escaneamento do botão B1. Após isso o conversor Boost síncrono é colocado em operação através da chamada da função de start e o programa entra no loop principal que é ao identificar o pressionamento do botão. Um incremento ou decremento de 0,5 V será feito na tensão de saída dependendo da direção desta, decodificado pelos estados kdimmingUp e kdimmingDown. Com isso, ao efetuar o pressionamento e segurar a tecla, poderemos ver a geração de uma onda triangular na saída do sistema entre 6,0 e 15 V teoricamente. Teoricamente? Sim veremos por quê.

Os resultados

E vamos à parte mais legal, os resultados, eis que vamos mostrar as formas de onda obtidas na saída do conversor. As primeiras são as geradas pelo HRTIM do processador:

Conversor Boost Síncrono: HRTIM waveform
Figura 2 : Formas de onda geradas pelo HRTIM

Vejam que as formas de onda do canal 1 são realmente complementares, observem a frequência de chaveamento medida pelo osciloscópio de 250 KHz. Além disso, se o leitor observar com mais atenção, na borda de cada um dos waveforms, verão o efeito do gerador de "tempo morto" em ação. Reparem que as formas de onda nunca se "cruzam", uma só estará em nível alto quando a outra estiver em nível baixo completamente. Agora vejamos a tensão de saída e entrada comparadas. 

Conversor Boost Síncrono: input x output waveform
Figura 3: Tensão de saída x tensão de entrada

Caro leitor, aqui vem a foto que acho particularmente uma das mais legais, pegar uma fonte qualquer de 5,0 V e variar sua tensão para cima ou para baixo (usando um buck) e melhor ainda, de forma digital e super flexível. No canal 1 (em amarelo) temos o sinal de entrada derivada de uma das fontes da minha Analog Discovery. Em verde, no canal 2, temos a tensão de saída em CN7 na placa discovery. Veja que a partir de uma tensão mais baixa foi possível gerar a conhecida tensão de 13,8 V, perfeita para alimentar, por exemplo, um módulo de áudio pequeno. As medidas estão mostradas nos cantos inferiores da área do osciloscópio.

E como não poderia faltar, vamos ver um vídeo da aplicação rodando? Que tal? Então segue abaixo, vejam que interessante:

Conclusão

Chegamos aqui ao fim de mais um experimento, verificamos as formas de onda geradas pelo HRTIM, os recursos usados da placa e do processador alvo. Além disso vimos o sistema conversor boost síncrono operando como um todo e os resultados foram animadores, porém veja, caro leitor, que um problema pode ter passado batido na euforia de ver formas de onda. Por mais que o firmware eleve a tensão em 15,0 V máximos, esse valor no vídeo nunca foi atingido. Aliás, para quem pegar, compilar e gravar esse firmware na sua discovery vai perceber a mesma coisa, que o sistema em equilíbrio fica sempre com um valor de tensão diferente do desejado. É o fenômeno de erro de estado estacionário, além disso o que será que acontece com a tensão de saída se a de entrada elevar-se? Provavelmente o desvio será maior ainda. Isso acontece pois o processador consegue atuar sobre o sistema mas não consegue ver o que está ocorrendo na saída. No próximo artigo dessa série, vamos efetivamente fechar a malha de controle via firmware e verificar o que acontece com o desempenho do nosso conversor e realmente construir um completo sistema de digital power. Então é isso amigos, até a próxima.

Links úteis

- Firmware conversor boost síncrono

Referências

Manual de hardware da placa discovery STM32F334

ERICKSON, W. Robert - Fundamentals of Power Electronics , 2001

Outros artigos da série

<< Digital Power com STM32F334 - Conversor Boost Síncrono - Parte IIIDigital Power com STM32F334 - Firmware do Conversor Boost Síncrono Closed Loop - Parte final >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Digital Power com STM32F334 - Firmware do Conversor Boost Síncrono 'Open Loop' - Parte IV
Talvez você goste:
Comentários:

1
Deixe um comentário

avatar
1 Comentários
0 Respostas
0 Seguidores
 
Discussão de maior alcance
Discussão mais quente
1 Autores de comentários
Eder Andrade Comentários recentes
  Notificações  
recentes antigos mais votados
Notificar
Eder Andrade
Visitante
Eder

Show!

Séries



Outros da Série

Menu