SlideShare une entreprise Scribd logo
1  sur  23
PWM– PIC 18F


Prof. Ilton L Barbacena

        2012.2
PWM – Pulse Width Modulation




• É o recurso mais usado dos módulos CCPs;
• Pode-se obter uma tensão analógica a partir
  de um sinal digital (DAC), naturalmente com
  utilização de filtros na saída;
                                            2 /99
PWM
                                          A tensão média será:




   Onde:
      V(t) = Vpulsos para   0<= t <=tp
      V(t) = 0       para   tp < t <= T




• A tensão média é diretamente proporcional ao
  duty cycle ou ciclo ativo.
                                                                 3 /99
PWM
• Para se obter um conversor digital analógico a partir do
  pino CCPx, basta implementar um sinal PWM e adicionar
  em sua saída um filtro passa baixa com frequência de
  corte menor que a própria frequência do PWM.
    – Supor um filtro RC, onde fcorte = 1 / (2*pi*R*C);
    – Neste caso, deve-se adotar sempre:


•   Quando não é necessária obter uma tensão média
    contínua, a implementação do filtro é descartada;
•   No caso de resistores de aquecimento ou motores DC o
    filtro é dispensável, uma vez que estes componentes já
    atuam como filtros, desde que a frequência do PWM não
    seja muito baixa.
                                                             4 /99
PWM - DAC




            5 /99
PWM com filtro RC




1 – Escolhe p/ gerar pulsos   2- Tensão de pico (5V)
3 – duty = 10%                4 – freq. Do PWM
                                                       6 /99
PWM com filtro RC




        Duty = 10%                                                       Duty = 70%

Veja alguns exemplos em:
http://ww1.microchip.com/downloads/en/AppNotes/00655a.pdf
http://aquaticus.info/pwm-sine-wave
http://www.wpi.edu/Pubs/E-project/Available/E-project-042711-190851/unrestricted/PWM_Techniques_final.pdf


                                                                                                            7 /99
PWM com filtro RC




  Filtro RC com 2 polos                  Sinal de entrada pwm
                                         de 19kHz e duty de 70%


Veja o resultado da simulação com um sinal PWM aplicado em
utilizando um filtro RC com 2 estágios, para geração de um sinal
senoidal.
                                                                  8 /99
PWM com filtro LC




                                                Sinal de entrada pwm
  Filtro LC com 2 polos                         de 19kHz e duty de 80%


• Veja o resultado da simulação com um sinal PWM aplicado em utilizando um
  filtro LC com 2 estágios, para geração de um sinal senoidal.
• Em não havendo necessidade de obter tensão média contínua, utiliza-se o
  PWM sem filtros (aquecimento e acionamento de motores), desde que a
  frequência do PWM não seja muito baixa.
                                                                         9 /99
Diagrama simplificado
            do PWM no PIC 18F




O registrador de duty cycle possui 10 bits: 8 em CCPxL e 2 em CCPxCON
                                                                        10 /99
PWM no PIC 18F




                 11 /99
Timer2 no PIC 18F




                                             Timer 2
                                             Contador de 8 Bits




       Calculadora timer2: http://pictimer.picbingo.com/
http://www.best-microcontroller-projects.com/pic-timer-2.html
                                                                  12 /99
Timer2 no PIC 18F
• Timer2 é um contador de 8 bits;
• Usa somente o clock interno ou o cristal;
• Possui um prescaler (1, 4, 16 e 16) e um postscaler
  (1,2,3,..,15, 16), ambos configuráveis;
• A saída do Timer2 pode ser associada ao modo MSSP
  (Master Synchronous Serial Port Module) e PWM;
• TMR2 é um registrador contador de leitura e gravação de 8
  bits;
• PR2 é um registrador de leitura e gravação de 8 bits e sempre
  inicializado a 0xFFh no Reset.
• O registrador contador TMR2 do Timer2 incrementa de 0 até
  o valor gravado em PR2 (8 bits);
• Quando PR2=0xFF ou 255, ocorre a contagem máxima;
• Observar que o postscaler de timer 2 não afeta o PWM;

                                                                  13 /99
Timer2 no PIC 18F




•   Fout - A frequência de saída após a divisão /overflow / .
•   Tout - O tempo de ciclo após a divisão.
•   Fclk é a frequência do cristal. Não se deve usar oscilador externo.
•   Contagem - Um valor numérico para ser colocado                        para   obter   a
    frequência desejada - fout.
•   (PR2 - TMR2) - O número de vezes que o contador irá contar.
                                                                                             14 /99
Exemplo de Timer2 no PIC 18F


Exemplo: Cálculo de uma interrupção a cada 1s com TIMER2 (1Hz)


Assumiremos os seguintes parâmetros:
Cristal=8MHz, Prescaler 1:1, Postscaler 1:16, TMR2=0 e PR2=255

    Count = clock / (4*prescaler*(PR2-TMR2) * Postscaler * Fout)

    Count = 8M / (4*1*(255-0)*16*1)
    Count = 488

    Para se obter uma interrupção a cada 1s dever utilizar uma variável
    global Count, iniciando com zero, e o tempo de 1s vai ocorrer quando
    o valor atingir 488.

                                                                           15 /99
Exemplo de Timer2 no PIC 18F




http://pictimer.picbingo.com/   488 x 2048000nS = 1s   16 /99
PWM no PIC 18F
• Nesta família existem 2 canais PWM (CCP1 e CCP2) / 2 pinos de saída;
• Resolução máxima de 10 bits, logo o duty cycle pode variar de 0 a 1023;
• O ciclo ativo do sinal é definido pelo valor armazenado em CCPRxL (8 bits) e
  CCPxCON (bit DCxB1 e bit DCxB2);
• O período do PWM é controlado diretamente pelo Timer 2, através do
  registrador PR2;
 •   O contador do timer2, TMR2, começa de zero e vai incrementando até quando
     TMR2 = PR2, voltando para zero novamente. Neste momento quando o timer2 é
     ressetado, o postscaler é incrementado. Quando o postscaler, contador de estouros,
     atingir o valor programado, é gerado uma interrupção associado a timer2;
 •   O postscaler varia de 1 a 16;
 •   O período e a frequência PWM é dado por:
                      Tpwm = (PR2 + 1) * 4 * Tosc * (Prescaler do TMR2)       (1)
                              PWMfreq = 1 / Tpwm
     No PIC não se define duty cycle, mas o tempo de pulso em nível alto, que é
     dado por:

                                                                              (2)
                                                                                      17 /99
PWM no PIC 18F
• A largura do pulso é ajustada em 10 bits: 8 bits do registrador
  CCPxL e 2 bits do registrador CCPxCON (os bits 5 e 4);
• O duty depende exclisivamente dos 10 bits (8 em CCPxL e 2 em
  CCPxCON);
• Veja que PR2 (8 bits), que controla o Tpwm, é multiplicado por 4
  para poder igualar-se aos 10 bits. Com isso, se PR2 for ajustado
  para um valor menor que 255, será necessário um valor menor
  que 10 bits, para atingir um PWM com 100% de duty;
• Observar que o postscaler de timer 2 não afeta o PWM;
• A resolução ou a quantidade máxima de bits para o PWM é dado
  por:


                                     Em bits       (3)

                                                                 18 /99
Exemplo de PWM no PIC 18F
• Supor um PWM de 20KHz, com um clock de 8MHz e prescaler do
  timer 2 de 1:1;



    De (1)                                                (4)




                                                          (5)




    Em (5), para fpwm = 10KHz , p=1 e clock=8MHz , teremos PR2 = 99 Hz



                                                                         19 /99
PWM no PIC 18F
• A resolução do sinal PWM é inversamente proporcional à
  frequência do sinal, ou seja, quanto maior a freq. PWM, menor
  será sua resolução;
• Com isso, para obter um sinal PWM com frequência maior, é
  necessário gravar o registrador PR2 com um valor menor.
• A resolução de 10 bits somente se consegue quando se grava em
  PR2 com o valor 0xFF. Para obter-se frequências maiores, é
  necessário diminuir este valor, diminuindo assim os o número de
  passos no ciclo ativo;


    Exemplos:
         http://www.todopic.com.ar/foros/index.php?topic=30740.0;wap2
    Atividade:
      gerar um PWM de 3KHz (fpwm = 3KHz) com duty variável de 20% a 80%.

                                                                           20 /99
Exemplo de PWM no PIC 18F
• Supor um PWM de 20KHz, com um clock de 8MHz, configurar os
  registradores;

   Calculadora de PWM para PIC:
          http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html




    Neste caso, é somente transcrever para o programa no PIC;

                                                                                           21 /99
Resolução de PWM no PIC 18F
• A resolução do sinal PWM é inversamente proporcional à
  frequência do sinal, ou seja, quanto maior a freq. PWM, menor
  será sua resolução;
• Com isso, para obter um sinal PWM com frequência maior, é
  necessário carregar o registrador PR2 com um valor menor.
• A resolução de 10 bits somente se consegue quando se carrega
  PR2 com o valor 0xFF. Para obter-se frequências maiores, é
  necessário diminuir este valor, diminuindo assim os o número de
  passos no ciclo ativo;




     Dados extraídos do manual do PIC18F4520 na pag. 147
                                                                22 /99
Atividade para PWM no PIC 18F
• Gerar um PWM de 20KHz, com um clock de 8MHz. Variar o duty
  proporcionalmente ao valor de tensão analógica presente em
  um potenciômetro conectado a uma entrada analógica;
• Mostra mudança no duty com as mudanças na posição do
  potenciômetro no LCD;
• Implementar o programa no simulador Proteus;
• Detalhar todas as considerações feitas na elaboração do
  programa;
• Entrega no dia 30/10 .
• Pode usar a calculadora, mas tem que explicar os resultados;
• Colocar identificações nos arquivos fontes e escrever no LCD o
  seu nome e data, no inicio do programa;

                                                               23 /99

Contenu connexe

Tendances

Manual do inversor de frequência danfoss
Manual do inversor de frequência danfossManual do inversor de frequência danfoss
Manual do inversor de frequência danfoss
Claudio Arkan
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
Fabio Souza
 

Tendances (20)

Vazão
VazãoVazão
Vazão
 
Gerenciamento de Resíduos Sólidos
 Gerenciamento de Resíduos Sólidos Gerenciamento de Resíduos Sólidos
Gerenciamento de Resíduos Sólidos
 
Fluxos em caldeiras
Fluxos em caldeirasFluxos em caldeiras
Fluxos em caldeiras
 
Apresentação CI 555 - Eletrônica Analógica
Apresentação CI 555 - Eletrônica AnalógicaApresentação CI 555 - Eletrônica Analógica
Apresentação CI 555 - Eletrônica Analógica
 
Manual do inversor de frequência danfoss
Manual do inversor de frequência danfossManual do inversor de frequência danfoss
Manual do inversor de frequência danfoss
 
Códigos BCD, Gray e ASCII
Códigos  BCD, Gray e ASCIICódigos  BCD, Gray e ASCII
Códigos BCD, Gray e ASCII
 
Aula 12 introdução aos metodos tratamento - prof. nelson (area 1) - 13.10
Aula 12   introdução aos metodos tratamento - prof. nelson (area 1) - 13.10Aula 12   introdução aos metodos tratamento - prof. nelson (area 1) - 13.10
Aula 12 introdução aos metodos tratamento - prof. nelson (area 1) - 13.10
 
Máquina indução
Máquina induçãoMáquina indução
Máquina indução
 
Transformadores
TransformadoresTransformadores
Transformadores
 
Memorial de calculo_projeto_eletrico (1)
Memorial de calculo_projeto_eletrico (1)Memorial de calculo_projeto_eletrico (1)
Memorial de calculo_projeto_eletrico (1)
 
Transistor
TransistorTransistor
Transistor
 
Instrumentaçao Industrial - Introduçao
Instrumentaçao Industrial - IntroduçaoInstrumentaçao Industrial - Introduçao
Instrumentaçao Industrial - Introduçao
 
26º POP manejo de resíduos sólidos.pdf
26º POP manejo de resíduos sólidos.pdf26º POP manejo de resíduos sólidos.pdf
26º POP manejo de resíduos sólidos.pdf
 
Flip Flops Parte 3
Flip Flops Parte 3Flip Flops Parte 3
Flip Flops Parte 3
 
Pop gq-014 rev00 - prevenção da contaminação cruzada
Pop gq-014 rev00 - prevenção da contaminação cruzadaPop gq-014 rev00 - prevenção da contaminação cruzada
Pop gq-014 rev00 - prevenção da contaminação cruzada
 
Visão geral do forno de cal em plantas de celulose kraft
Visão geral do forno de cal em plantas de celulose kraftVisão geral do forno de cal em plantas de celulose kraft
Visão geral do forno de cal em plantas de celulose kraft
 
BPF- Boas prática de fabricação em fábricas de ração
BPF- Boas prática de fabricação em fábricas de raçãoBPF- Boas prática de fabricação em fábricas de ração
BPF- Boas prática de fabricação em fábricas de ração
 
Instalações elétricas industriais_slides_parte_i
Instalações elétricas industriais_slides_parte_iInstalações elétricas industriais_slides_parte_i
Instalações elétricas industriais_slides_parte_i
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
Eletronica analogica
Eletronica analogicaEletronica analogica
Eletronica analogica
 

En vedette (9)

Espaço Programação e Eletrónica - Sessão5
Espaço Programação e Eletrónica - Sessão5Espaço Programação e Eletrónica - Sessão5
Espaço Programação e Eletrónica - Sessão5
 
EL ABC DE LA ELECTRONICA
EL ABC DE LA ELECTRONICAEL ABC DE LA ELECTRONICA
EL ABC DE LA ELECTRONICA
 
Aprende electronica desde_cero
Aprende electronica desde_ceroAprende electronica desde_cero
Aprende electronica desde_cero
 
Eletricidade automotiva i
Eletricidade automotiva iEletricidade automotiva i
Eletricidade automotiva i
 
Sistema elétrico veicular
Sistema elétrico veicularSistema elétrico veicular
Sistema elétrico veicular
 
A bíblia do_carro
A bíblia do_carroA bíblia do_carro
A bíblia do_carro
 
Manual de sintomas e falhas
Manual de sintomas e falhasManual de sintomas e falhas
Manual de sintomas e falhas
 
Eletricidade básica automotiva
Eletricidade básica automotivaEletricidade básica automotiva
Eletricidade básica automotiva
 
Eletrônica embarcada automotiva
Eletrônica embarcada automotivaEletrônica embarcada automotiva
Eletrônica embarcada automotiva
 

Similaire à Pwm pic 18 f

Similaire à Pwm pic 18 f (20)

Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
 
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PCFrequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
 
Treinamento – vfs15 pratica
Treinamento – vfs15 praticaTreinamento – vfs15 pratica
Treinamento – vfs15 pratica
 
ARM
ARMARM
ARM
 
CLP com IHM
CLP com IHMCLP com IHM
CLP com IHM
 
Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2
 
Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2
 
Sintetizador de freqüências a partir de um PLL
Sintetizador de freqüências a partir de um PLLSintetizador de freqüências a partir de um PLL
Sintetizador de freqüências a partir de um PLL
 
Projeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalProjeto – Transmissão de voz digital
Projeto – Transmissão de voz digital
 
Aula 4 conversor ad e pwm
Aula 4   conversor ad e pwmAula 4   conversor ad e pwm
Aula 4 conversor ad e pwm
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Controlador gefran 600
Controlador gefran 600Controlador gefran 600
Controlador gefran 600
 
Ci 555
Ci 555Ci 555
Ci 555
 
TG2 Fibria : Modernização do turbogerador STAL-LAVAL
TG2 Fibria : Modernização do turbogerador STAL-LAVALTG2 Fibria : Modernização do turbogerador STAL-LAVAL
TG2 Fibria : Modernização do turbogerador STAL-LAVAL
 
ci temporizador 555
ci  temporizador 555ci  temporizador 555
ci temporizador 555
 
53377586 manual-unitrol-1000
53377586 manual-unitrol-100053377586 manual-unitrol-1000
53377586 manual-unitrol-1000
 
Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )
 
CONVERSOR ANALÓGICO/DIGITAL COM SAMPLE AND HOLDCONVERSOR ANALÓGICO/DIGITAL CO...
CONVERSOR ANALÓGICO/DIGITAL COM SAMPLE AND HOLDCONVERSOR ANALÓGICO/DIGITAL CO...CONVERSOR ANALÓGICO/DIGITAL COM SAMPLE AND HOLDCONVERSOR ANALÓGICO/DIGITAL CO...
CONVERSOR ANALÓGICO/DIGITAL COM SAMPLE AND HOLDCONVERSOR ANALÓGICO/DIGITAL CO...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 

Plus de IFPB (6)

Esp8266 projeto de fonte e placas de aplicacões
Esp8266 projeto de fonte e placas de aplicacõesEsp8266 projeto de fonte e placas de aplicacões
Esp8266 projeto de fonte e placas de aplicacões
 
Elaboracao pci
Elaboracao pciElaboracao pci
Elaboracao pci
 
Beaglebone black - Introdução
Beaglebone black - IntroduçãoBeaglebone black - Introdução
Beaglebone black - Introdução
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programação
 
Simulino apresentação
Simulino apresentaçãoSimulino apresentação
Simulino apresentação
 
Intodução a pci
Intodução a pciIntodução a pci
Intodução a pci
 

Pwm pic 18 f

  • 1. PWM– PIC 18F Prof. Ilton L Barbacena 2012.2
  • 2. PWM – Pulse Width Modulation • É o recurso mais usado dos módulos CCPs; • Pode-se obter uma tensão analógica a partir de um sinal digital (DAC), naturalmente com utilização de filtros na saída; 2 /99
  • 3. PWM A tensão média será: Onde: V(t) = Vpulsos para 0<= t <=tp V(t) = 0 para tp < t <= T • A tensão média é diretamente proporcional ao duty cycle ou ciclo ativo. 3 /99
  • 4. PWM • Para se obter um conversor digital analógico a partir do pino CCPx, basta implementar um sinal PWM e adicionar em sua saída um filtro passa baixa com frequência de corte menor que a própria frequência do PWM. – Supor um filtro RC, onde fcorte = 1 / (2*pi*R*C); – Neste caso, deve-se adotar sempre: • Quando não é necessária obter uma tensão média contínua, a implementação do filtro é descartada; • No caso de resistores de aquecimento ou motores DC o filtro é dispensável, uma vez que estes componentes já atuam como filtros, desde que a frequência do PWM não seja muito baixa. 4 /99
  • 5. PWM - DAC 5 /99
  • 6. PWM com filtro RC 1 – Escolhe p/ gerar pulsos 2- Tensão de pico (5V) 3 – duty = 10% 4 – freq. Do PWM 6 /99
  • 7. PWM com filtro RC Duty = 10% Duty = 70% Veja alguns exemplos em: http://ww1.microchip.com/downloads/en/AppNotes/00655a.pdf http://aquaticus.info/pwm-sine-wave http://www.wpi.edu/Pubs/E-project/Available/E-project-042711-190851/unrestricted/PWM_Techniques_final.pdf 7 /99
  • 8. PWM com filtro RC Filtro RC com 2 polos Sinal de entrada pwm de 19kHz e duty de 70% Veja o resultado da simulação com um sinal PWM aplicado em utilizando um filtro RC com 2 estágios, para geração de um sinal senoidal. 8 /99
  • 9. PWM com filtro LC Sinal de entrada pwm Filtro LC com 2 polos de 19kHz e duty de 80% • Veja o resultado da simulação com um sinal PWM aplicado em utilizando um filtro LC com 2 estágios, para geração de um sinal senoidal. • Em não havendo necessidade de obter tensão média contínua, utiliza-se o PWM sem filtros (aquecimento e acionamento de motores), desde que a frequência do PWM não seja muito baixa. 9 /99
  • 10. Diagrama simplificado do PWM no PIC 18F O registrador de duty cycle possui 10 bits: 8 em CCPxL e 2 em CCPxCON 10 /99
  • 11. PWM no PIC 18F 11 /99
  • 12. Timer2 no PIC 18F Timer 2 Contador de 8 Bits Calculadora timer2: http://pictimer.picbingo.com/ http://www.best-microcontroller-projects.com/pic-timer-2.html 12 /99
  • 13. Timer2 no PIC 18F • Timer2 é um contador de 8 bits; • Usa somente o clock interno ou o cristal; • Possui um prescaler (1, 4, 16 e 16) e um postscaler (1,2,3,..,15, 16), ambos configuráveis; • A saída do Timer2 pode ser associada ao modo MSSP (Master Synchronous Serial Port Module) e PWM; • TMR2 é um registrador contador de leitura e gravação de 8 bits; • PR2 é um registrador de leitura e gravação de 8 bits e sempre inicializado a 0xFFh no Reset. • O registrador contador TMR2 do Timer2 incrementa de 0 até o valor gravado em PR2 (8 bits); • Quando PR2=0xFF ou 255, ocorre a contagem máxima; • Observar que o postscaler de timer 2 não afeta o PWM; 13 /99
  • 14. Timer2 no PIC 18F • Fout - A frequência de saída após a divisão /overflow / . • Tout - O tempo de ciclo após a divisão. • Fclk é a frequência do cristal. Não se deve usar oscilador externo. • Contagem - Um valor numérico para ser colocado para obter a frequência desejada - fout. • (PR2 - TMR2) - O número de vezes que o contador irá contar. 14 /99
  • 15. Exemplo de Timer2 no PIC 18F Exemplo: Cálculo de uma interrupção a cada 1s com TIMER2 (1Hz) Assumiremos os seguintes parâmetros: Cristal=8MHz, Prescaler 1:1, Postscaler 1:16, TMR2=0 e PR2=255 Count = clock / (4*prescaler*(PR2-TMR2) * Postscaler * Fout) Count = 8M / (4*1*(255-0)*16*1) Count = 488 Para se obter uma interrupção a cada 1s dever utilizar uma variável global Count, iniciando com zero, e o tempo de 1s vai ocorrer quando o valor atingir 488. 15 /99
  • 16. Exemplo de Timer2 no PIC 18F http://pictimer.picbingo.com/ 488 x 2048000nS = 1s 16 /99
  • 17. PWM no PIC 18F • Nesta família existem 2 canais PWM (CCP1 e CCP2) / 2 pinos de saída; • Resolução máxima de 10 bits, logo o duty cycle pode variar de 0 a 1023; • O ciclo ativo do sinal é definido pelo valor armazenado em CCPRxL (8 bits) e CCPxCON (bit DCxB1 e bit DCxB2); • O período do PWM é controlado diretamente pelo Timer 2, através do registrador PR2; • O contador do timer2, TMR2, começa de zero e vai incrementando até quando TMR2 = PR2, voltando para zero novamente. Neste momento quando o timer2 é ressetado, o postscaler é incrementado. Quando o postscaler, contador de estouros, atingir o valor programado, é gerado uma interrupção associado a timer2; • O postscaler varia de 1 a 16; • O período e a frequência PWM é dado por: Tpwm = (PR2 + 1) * 4 * Tosc * (Prescaler do TMR2) (1) PWMfreq = 1 / Tpwm No PIC não se define duty cycle, mas o tempo de pulso em nível alto, que é dado por: (2) 17 /99
  • 18. PWM no PIC 18F • A largura do pulso é ajustada em 10 bits: 8 bits do registrador CCPxL e 2 bits do registrador CCPxCON (os bits 5 e 4); • O duty depende exclisivamente dos 10 bits (8 em CCPxL e 2 em CCPxCON); • Veja que PR2 (8 bits), que controla o Tpwm, é multiplicado por 4 para poder igualar-se aos 10 bits. Com isso, se PR2 for ajustado para um valor menor que 255, será necessário um valor menor que 10 bits, para atingir um PWM com 100% de duty; • Observar que o postscaler de timer 2 não afeta o PWM; • A resolução ou a quantidade máxima de bits para o PWM é dado por: Em bits (3) 18 /99
  • 19. Exemplo de PWM no PIC 18F • Supor um PWM de 20KHz, com um clock de 8MHz e prescaler do timer 2 de 1:1; De (1) (4) (5) Em (5), para fpwm = 10KHz , p=1 e clock=8MHz , teremos PR2 = 99 Hz 19 /99
  • 20. PWM no PIC 18F • A resolução do sinal PWM é inversamente proporcional à frequência do sinal, ou seja, quanto maior a freq. PWM, menor será sua resolução; • Com isso, para obter um sinal PWM com frequência maior, é necessário gravar o registrador PR2 com um valor menor. • A resolução de 10 bits somente se consegue quando se grava em PR2 com o valor 0xFF. Para obter-se frequências maiores, é necessário diminuir este valor, diminuindo assim os o número de passos no ciclo ativo; Exemplos: http://www.todopic.com.ar/foros/index.php?topic=30740.0;wap2 Atividade: gerar um PWM de 3KHz (fpwm = 3KHz) com duty variável de 20% a 80%. 20 /99
  • 21. Exemplo de PWM no PIC 18F • Supor um PWM de 20KHz, com um clock de 8MHz, configurar os registradores; Calculadora de PWM para PIC: http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html Neste caso, é somente transcrever para o programa no PIC; 21 /99
  • 22. Resolução de PWM no PIC 18F • A resolução do sinal PWM é inversamente proporcional à frequência do sinal, ou seja, quanto maior a freq. PWM, menor será sua resolução; • Com isso, para obter um sinal PWM com frequência maior, é necessário carregar o registrador PR2 com um valor menor. • A resolução de 10 bits somente se consegue quando se carrega PR2 com o valor 0xFF. Para obter-se frequências maiores, é necessário diminuir este valor, diminuindo assim os o número de passos no ciclo ativo; Dados extraídos do manual do PIC18F4520 na pag. 147 22 /99
  • 23. Atividade para PWM no PIC 18F • Gerar um PWM de 20KHz, com um clock de 8MHz. Variar o duty proporcionalmente ao valor de tensão analógica presente em um potenciômetro conectado a uma entrada analógica; • Mostra mudança no duty com as mudanças na posição do potenciômetro no LCD; • Implementar o programa no simulador Proteus; • Detalhar todas as considerações feitas na elaboração do programa; • Entrega no dia 30/10 . • Pode usar a calculadora, mas tem que explicar os resultados; • Colocar identificações nos arquivos fontes e escrever no LCD o seu nome e data, no inicio do programa; 23 /99