·

Cursos Gerais ·

Microprocessadores

Send your question to AI and receive an answer instantly

Ask Question

Preview text

MICROCONTROLADORES II MÓDULO DE PWM 1 1 Prof Terigi SINAL DE PWM PWM é a abreviação de Pulse Width Modulation ou Modulação de Largura de Pulso Para que se entenda como funciona esta tecnologia no controle de potência partimos de um circuito imaginário formado por um interruptor de ação muito rápida e uma carga que deve ser controlada 2 2 Prof Terigi SINAL DE PWM Quando o interruptor está aberto não há corrente na carga e a potencia aplicada é nula No instante em que o interruptor é fechado a carga recebe a tensão total da fonte e a potencia aplicada é máxima Como fazer para obter uma potencia intermediária por exemplo de 50 aplicada à carga 3 3 Prof Terigi SINAL DE PWM Uma ideia é fazermos com que a chave seja aberta e fechada rapidamente de modo a ficar 50 do tempo aberta e 50 fechada Isso significa que em média teremos metade do tempo com corrente e metade do tempo sem corrente 4 4 Prof Terigi SINAL DE PWM A potencia média é portanto a própria tensão média aplicada à carga e neste caso 50 da tensão de entrada O interruptor fechado define uma largura de pulso pelo tempo em que ele fica nesta condição e um intervalo entre pulsos pelo tempo em que ele fica aberto Os dois tempos juntos definem o período e portanto uma frequência de controle A relação entre o tempo em que temos o pulso e a duração de um ciclo completo de operação do interruptor nos define ainda o ciclo ativo 5 5 Prof Terigi SINAL DE PWM A técnica de PWM consiste em variar a largura do pulso de uma onda quadrada variando a relação entre o tempo em que o pulso permanece em nível lógico alto em relação ao período do sinal que é constante Essa relação THP é denominada índice de modulação ou duty cycle Variandose o duty cycle de um sinal de PWM variamos também a tensão média do sinal tensão resultante 6 6 SINAL DE PWM V OV Tenso na carga Tensiio média 100 sone veeee 4 50 bpe penne geen ee fee feo Md Tempo 0 eves pases eee eses le ye ty to Largura do pulso 50 do ciclo ativo e Prof Terigi 7 REGISTRADOR DE PERIODO PTPER oE através do registrador de periodo que configuramos a frequéncia de todos os sinais de PWMs PWMO PWM7 o E formado por dois registradores e PTPERL e PTPERH NAO SAO Prof Terigi 8 REGISTRADOR DE PERIODO PTPER o Juntos os registradores PTPERL e PTPERH formam o registrador que configura o periodo PTPER dos sinais de PW Ms Po Tors Pons Povo foe ee oes oes oo Poe Po oo o Juntos formam um registrador de 12 bits onde e PTPERL Armazena os 8 bits menos significativos da palavra de 12 bits e PTPERH Armazena os 4 bits mais significativos da palavra de 12 bits o Neste caso temos PTPERL valor calculado PTPERH valor calculado 8 o Prof Terigi 9 REGISTRADOR DE PERIODO PTPER o Exemplo e Carregando valores no registrador de periodo Supondo que desejo carregar a constante OxEAF no registrador de periodo Prof Terigi 10 Prof Terigi REGISTRADOR DE PERÍODO PTPER 11 Devemos carregar o registrador PTPER com os 8 bits menos significativos da palavra Após executar a instrução PTPERL0xEAF temos Quando for executada a instrução PTPERL0xEAF os 8 bits menos significativos da palavra serão armazenados no registrador PTPERL 11 Prof Terigi REGISTRADOR DE PERÍODO PTPER 12 Agora devemos carregar os 8 bits mais significativos da palavra Para isso devemos deslocarrotacionar a palavra de 8 bits para a direita Após executar a instrução PTPERH0xEAF8 temos Quando for executada a instrução PTPERH0xEAF8 os 4 bits mais significativos da palavra serão posicionados e armazenados no registrador PTPERH 12 REGISTRADOR DE DUTY CYCLE PDCx oQOs microcontroladores 18F4431 possuem 4 registradores de duty cycle e PDCO Configura 0 duty cycle dos PWMs 0e 1 e PDC1 Configura 0 duty cycle dos PWMs 2e 3 e PDC2 Configura 0 duty cycle dos PWMs 4e 5 e PDC83 Configura 0 duty cycle dos PWMs 6 e 7 Prof Terigi 13 REGISTRADOR DE DUTY CYCLE PDCx o O registrador de duty cycle PDCx é formado por dois registradores PDCxH e PDCxL NAO SAO USADOS NAO SAO USADOS Prof Terigi 14 REGISTRADOR DE DUTY CYCLE PDCx o Juntos os registradores PDCxL e PDCxH formam o registrador que configura o Duty Cycle PDCx dos sinais de PWMs correspondentes 6 e PDCxL Armazena os 6 bits menos significativos da palavra de 12 bits e PDCxH Armazena os 6 bits mais significativos da palavra de 12 bits o Neste caso temos PDCxL intPTPERDC2 PDCxH intPTPERDC6 Prof Terigi 15 REGISTRADOR DE DUTY CYCLE PDCx o Exemplo e Carregando valores no registrador de Duty Cycle Supondo que desejo carregar a constante OxEAF no registrador de Duty Cycle PDC1 Prof Terigi 16 Prof Terigi REGISTRADOR DE DUTY CYCLE PDCX 17 Devemos carregar o registrador PDC1L com os 6 bits menos significativos da palavra Para isso devemos deslocarrotacionar a palavra de 2 bits para a direita Após executar a instrução PDC1L0xEAF2 temos Quando for executada a instrução PDC1L0xEAF2 os 6 bits menos significativos da palavra serão posicionados e armazenados no registrador PDC1L 17 Prof Terigi REGISTRADOR DE DUTY CYCLE PDCX 18 Agora devemos carregar os 6 bits mais significativos da palavra Para isso devemos deslocarrotacionar a palavra de 6 bits para a direita Após executar a instrução PDC1H0xEAF6 temos Quando for executada a instrução PDC1H0xEAF6 os 6 bits mais significativos da palavra serão posicionados e armazenados no registrador PDC1H 18 Prof Terigi FREQUÊNCIA DE PWM Para determinarmos a frequência da onda de PWM precisamos calcular alguns parâmetros 19 Modo Contínuo UP Modo Contínuo UPDOWN 19 Prof Terigi MODO CONTÍNUO UP O valor do registrador PTMR contador é incrementado de 1 até atingir o valor do registrador PTPER Quando isso ocorrer PTMRPTPER é gerado um sinal de reset que zera o registrador PTMR iniciandose um novo ciclo 20 20 Prof Terigi MODO CONTÍNUO UPDOWN O valor do registrador PTMR contador é incrementado de 1 até atingir o valor do registrador PTPER Quando isso ocorrer PTMRPTPER o valor do registrador PTMR passa a ser decrementado de 1 até atingir o valor 0 iniciandose um novo ciclo 21 21 Prof Terigi REGISTRADOR DE CONFIGURAÇÃO PTCON0 bit 32 PTKPS1PTKPS0 Configuram a préescala 00 préescala 4 PTMR CLKFosc4 01 préescala 16 PTMR CLKFosc16 10 préescala 64 PTMR CLKFosc64 11 préescala 256 PTMR CLKFosc256 bit 10 PTMOD1PTMOD0 Configuram o modo de operação dos PWMs 00 Configura os PWMs no modo continuo UP 01 Configura os PWMs no modo gatilho unico 10 Configura os PWMs no modo continuo UPDOWN 11 Configura os PWMs no modo continuo UPDOWN 22 22 Prof Terigi REGISTRADOR DE CONFIGURAÇÃO PTCON1 bit 7 PTEN Habilita ou desabilita o clock do contador PTMR 0 Desabilita o clock do contador PTMR 1 Habilita o clock do contador PTMR 23 23 Prof Terigi REGISTRADOR DE CONFIGURAÇÃO PTCON1 bit 6 PTDIR Indica se o contador está sendo incrementado ou decrementado 0 O contador está sendo incrementado 1 O contador está sendo decrementado 24 24 Prof Terigi REGISTRADOR DE CONFIGURAÇÃO PWMCON0 Bit 64 PWMEN2 PWMEN0 Habilitam ou desabilitam a função de PWM dos pinos É através destes bits que configuramos se os pinos marcados ao lado terão função de PWM ou de IO 25 25 Prof Terigi REGISTRADOR DE CONFIGURAÇÃO PWMCON0 Bit 64 PWMEN2 PWMEN0 0 0 0 Desabilita a função de PWM de todos os pinos de PWM 0 0 1 Habilita a função de PWM do pino PWM1 0 1 0 Habilita a função de PWM dos pinos PWM0 e PWM1 0 1 1 Habilita a função de PWM dos pinos de PWM0PWM1 PWM2 e PWM3 1 0 0 Habilita a função de PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 1 0 1 Habilita a função de PWM de todos os pinos de PWM 1 1 0 Habilita a função de PWM dos pinos PWM1 e PWM3 1 1 1 Habilita a função de PWM dos pinos PWM1 PWM3 PWM5 PWM7 26 26 REGISTRADOR DE CONFIGURACAO Bit 0 PMODO Configura 0 modo como o par PWM1 e PWM ira trabalhar 1 modo independente 0 modo complementar Bit 1PMOD1 Configura o modo como o par PWM3 e PWM 2 ira trabalhar 1 modo independente 0 modo complementar Bit 2 PMOD2 Configura 0 modo como 0 par PWM5 e PWM4 ira trabalhar 1 modo independente 0 modo complementar Bit 3 PMOD3 Configura o modo como o par PWM6 e PWM 7 ira trabalhar 1 modo independente 0modo complementar Prof Terigi 27 REGISTRADOR DE CONFIGURACAO rss rst Tro oxonr Prone ion ron Bit 7 Bit6RW BitSRW Bit 4 RW Bit 3 Bit2RW Bit1RWBitORW Modo independente E gerado um sinal de PWM nos pares de PWM com duty cycle conforme configurado no registrador PDCx correspondente o Exemplo e PTPER1000 PDCO0100 PDC1200 PDC2800 Duty cycle PWM110 Duty cycle PWM320 Duty cycle PWM580 Duty cycle PWM010 Duty cycle PWM220 Duty cycle PWM480 pwat f fl pwas pwos LI LI el f fl pwr pwoe LI LI Prof Terigi 28 REGISTRADOR DE CONFIGURACAO PWMCONO a Bit 7 Bit 6 RW Bit 5 RW Bit 4 RW Bit 3 Bit 2 RW Bit 1 RW Bit 0 RW o Modo complementar e Os PWMs 02 4 e 6 complementam o duty cycle de seus pares PWMs 1 3 5e 7 respectivamente o Exemplo e PTPER1000 PDCO0100 PDC1200 PDC2800 Duty cycle PWM110 Duty cycle PWM320 Duty cycle PWM580 Duty cycle PWMO090 Duty cycle PWM280 Duty cycle PWM420 PWMI1 i PWM3 Li PWMS ee LJ LJ pwr LI L pwoe Prof Terigi 29 REGISTRADOR DE CONFIGURACAO PWMCON1 Sevors3 sevors sevorsi sevorsd sevrom unis Osyxc Bit 7 RW Bit 6 RW Bit 5 RW Bit 4 RW Bit 3 RW Bit 2 RW Bit 1 RW Bit 0 RW Bit 1 UDIS o Habilita ou desabilita a atualizacao dos registradores de duty cycle PDCx e de periodo PTPER 1 Desabilita a atualizacao dos registradores 0 Habilita a atualizacao dos registradores Prof Terigi 30 REGISTRADOR DE CONFIGURACAO OVDCOND Bit 7 RW Bit 6 R W Bit 5 RW Bit 4 RW Bit 3 RW Bit 2RW Bit 1 RW Bit 0 RW Bit 70 POVDx onde x01234 5 67 1 Habilita PWM no pino equivalente O nivel légico do pino de PWMx é controlado pelo modulo de PWM 0 Desabilita PWM no pino equivalente O nivel lé6gico do pino de PWMx é controlado pelo bit POUTx do registrador OVDCONS Prof Terigi 31 REGISTRADOR DE CONFIGURACAO OVDCONS Bit 7 RW Bit 6 RW Bit 5 RW Bit 4 RW Bit 3 RW Bit 2RW Bit 1 RW Bit 0 RW Bit 70 POUTx onde x01234 5 67 o Se o bit POVDx0 e 1coloca o pino PWMx em nivel logico alto e 0Ocoloca o pino PWMx em nivel logico baixo o Se o bit POVDx1 e O bit POUTx nao tem funcaéo alguma Prof Terigi 32 Prof Terigi EXEMPLO OVDCOND OVDCONS 33 33 Prof Terigi EXEMPLO Quando um botão tipo push button for pressionado gerar um sinal de PWM com DC de 80 e fpwm2kHz em PWM0 em modo contínuo UP e independente 34 34 Prof Terigi EXEMPLO Quando um botão tipo push button for pressionado gerar um sinal de PWM com DC de 80 e fpwm2kHz em PWM0 em modo contínuo UP e independente 𝑓𝑝𝑤𝑚 è𝑃𝑇𝑃𝐸𝑅 PTPER à 12 bits ou seja 4096 PEà 4 à 1000 16 à 250 64 à 625 256 à 156 PTPERL250 PTPERH2508 PDC0L int250082 PDC0H int250086 35 PTCON0 PTCON1 PWMCON0 PWMCON1 OVDCOND OVDCONS 35 Prof Terigi 36 includep18f4431h define PORTAbitsRA0 BOTAO void configio TRISA0x01 ANSEL00x00 void configpwm PTCON00x04 PTCON10X80 PWMCON00X21 PWNCON10X00 PTPERL250 PTPERH2508 PDC0Lint250082 PDC0Hint250086 OVDCOND0x00 OVDCONS0x00 void main OSCCON0x72 configio configpwm while1 ifBOTAO1 OVDCOND0x01 else OVDCOND0x00 36