Curso de C com microcontroladores MCF51QE128 e MC9S08QE128 - Parte 7

1. PWM – Pulse Width Modulation

 

1.1. Características do módulo de PWM

 

Dentro da família Flexis (válido para os chips de 8 e de 32 bits), o módulo S08TPMV3 (Timer/Pulse-Width Modulator) é o responsável pela geração de sinais de PWM (Pulse Width Modulation), além de outras funções mostradas abaixo:

  • Possui de um a oito canais independentes:
    • Cada canal pode ser configurado como entrada de captura, saída de comparador, ou PWM (centralizado ou de borda);
    • O disparo de captura pode ser configurado para borda de subida, borda de descida ou em qualquer borda;
    • A comparação pode setar, resetar ou inverter uma saída;
    • A polaridade de saída do PWM é selecionável.
  • Este módulo pode ser configurado para bufferizar o PWM em qualquer um dos canais;
  • O relógio do timer pode ter fontes selecionáveis de pré scaler:
    • As divisões do pré scaler são de 1, 2, 4, 8, 16, 32, 64 ou 128;
    • Se uma fonte de clock fixo for selecionada, esta é sincronizada com o barramento de clock através de um circuito específico;
    • O pino de clock externo pode ser compartilhado com qualquer canal do temporizador ou com um pino de entrada em separado;
  • Operação de contagem em up/dowm com 16 bits;
  • Uma interrupção pode ser gerada para cara canal.

 

1.2. Modos de operação

 

Os canais do módulo TPM podem ser configurados para as operações de captura de entrada, saída de comparador ou PWM. Neste treinamento abordaremos apenas a funcionalidade de PWM. As duas outras funcionalidades ficarão para o módulo avançado. Apesar disto, faremos aqui um breve descritivo destas duas funcionalidades: captura de entrada e saída de comparador.

 

1.2.1. Modo de captura de entrada

Quando um determinado evento ocorre (uma borda de subida ou de descida de um sinal) em um pino do microcontrolador, o valor atual do contador de 16 bits é capturado no registrador correspondente ao canal daquele pino e a flag de interrupção é setada.

 

1.2.2. Modo de saída de comparador

 

Quando o valor no temporizador de contagem é igual ao valor do registrador de um determinado canal, um flag de interrupção é acionada e a ação ajustada para um determinado pino é executada. Esta ação pode levar o pino para nível zero, levar o pino para nível um ou inverter o estado anterior do pino. Pode-se ainda ignorar o pino, e a flag passaria a ser utilizada apenas para recursos de software.

 

1.2.3. Modo de PWM (Pulse Width Modulation) alinhado na borda

 

O valor do registrador de 16 bits do módulo mais 1 será utilizado para ajustar o período do sinal de saída do PWM. O valor do registrador do canal utilizado será responsável pelo ciclo de trabalho (duty cycle) do sinal de saída do PWM. O usuário poderá ainda escolher qual será a polaridade do sinal de PWM. As interrupções estão disponíveis no final do período e no ponto de transição do ciclo de trabalho. A figura abaixo mostra como o sinal de PWM tem as suas referências quanto aos pontos de controle:

 

PWM (Pulse Width Modulation)

 

1.2.4. Modo de PWM alinhado ao centro

 

Duas vezes o valor do registrador de 16 bits deste módulo ajustará o período do sinal de saída de PWM, e o valor do registrador do canal utilizado será a metade do ciclo de trabalho deste sinal. O contador irá incrementar seus bits até alcançar o valor do registrador do módulo e então ele passará a decrementar, chegando até zero. Enquanto o contador não chega no valor do registrador do canal enquanto está decrementando, a saída do PWM será mantida em ativo. Enquanto o contador não atinge o valor do registrador do canal quando está incrementando, a saída do PWM será mantida inativa. A figura na próxima página ajuda a compreender melhor este método de funcionamento.

 

PWM (Pulse Width Modulation)

 

1.3. Diagrama em blocos

 

Módulo S08TPMV3 para PWM

 

1.4. Registradores do PWM (Pulse Width Modulation)

 

Toda a configuração do módulo TPM é feita através de seus registradores, descritos em detalhes nos itens a seguir.

 

 

1.4.1. TPM Status and Control Register (TPMxSC)

 

 

 

 

1.4.2. TPM-Counter Registers (TPMxCNTH:TPMxCNTL)

 

 

1.4.3. TPM-Counter Modulo Registers (TPMxMODH:TPMxMODL)

 

  

1.4.4. TPM Channel n Status and Control Registers (TPMxCnSC)

 

 

 

1.4.5. TPM Channel Value Registers (TPMxCnVH: TPMxCnVL)

 

1.5 Funcionamento do PWM

 

Outros artigos da série

<< Curso de C com microcontroladores MCF51QE128 e MC9S08QE128 - Parte 6Curso de C com microcontoladores MCF51QE128 e MC9S08QE128 - Display HD44780 - Parte 8 >>

NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Alessandro Cunha
Alessandro Cunha é engenheiro eletricista. E um apaixonado pelo que faz.Trabalhou com telecomunicações entre 1994 e 2006.Trabalha com sistemas embarcados desde 1998.Foi professor em diversas instituições de ensino (SENAI, IBTA, USJT, etc.).Foi Diretor de Tecnologia da TECHtraininG Engenharia e Treinamentos entre 2008 e 2016.É FAE na AVNET do Brasil LTDA.Desde 2018 é Coordenador de Inovação e Tecnologia no LICEUTECH, área de cursos de aperfeiçoamento dentro do Liceu de Artes e Ofícios de São Paulo.

Deixe um comentário

avatar
 
  Notificações  
Notificar