SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Ampestereo250w 120510154022-phpapp01
Ampestereo250w 120510154022-phpapp01Ampestereo250w 120510154022-phpapp01
Ampestereo250w 120510154022-phpapp01adrian heriady
 
Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisFabio Souza
 
Vumetro estereo
Vumetro estereoVumetro estereo
Vumetro estereoguty ochoa
 
SERVIÇO MANUAIS COBRA 148GTL
SERVIÇO MANUAIS COBRA 148GTLSERVIÇO MANUAIS COBRA 148GTL
SERVIÇO MANUAIS COBRA 148GTLZe Dias
 
Projeto de máquinas
Projeto de máquinasProjeto de máquinas
Projeto de máquinasRobert Scheer
 
Aula 13 diodo zener
Aula 13 diodo zenerAula 13 diodo zener
Aula 13 diodo zenerWesleyDias57
 
Manual caldeira flamotubular
Manual caldeira flamotubular Manual caldeira flamotubular
Manual caldeira flamotubular Erico Polizer
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architectureJamia Hamdard
 
Tramigo t22 informacion general
Tramigo t22 informacion generalTramigo t22 informacion general
Tramigo t22 informacion generaljuanpmo
 
Microcontroller pic 16 f877 registers memory ports
Microcontroller pic 16 f877 registers memory portsMicrocontroller pic 16 f877 registers memory ports
Microcontroller pic 16 f877 registers memory portsNilesh Bhaskarrao Bahadure
 

Was ist angesagt? (20)

Ampestereo250w 120510154022-phpapp01
Ampestereo250w 120510154022-phpapp01Ampestereo250w 120510154022-phpapp01
Ampestereo250w 120510154022-phpapp01
 
Timers and pwm
Timers and pwmTimers and pwm
Timers and pwm
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
 
Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitais
 
Motor CC no Matlab
Motor CC no MatlabMotor CC no Matlab
Motor CC no Matlab
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
Motores universais
Motores universaisMotores universais
Motores universais
 
Lecture 2 timers, pwm, state machine IN PIC
Lecture 2   timers, pwm, state machine IN PIC Lecture 2   timers, pwm, state machine IN PIC
Lecture 2 timers, pwm, state machine IN PIC
 
Borg turbo
Borg turboBorg turbo
Borg turbo
 
Intro simulink
Intro simulinkIntro simulink
Intro simulink
 
Vumetro estereo
Vumetro estereoVumetro estereo
Vumetro estereo
 
SERVIÇO MANUAIS COBRA 148GTL
SERVIÇO MANUAIS COBRA 148GTLSERVIÇO MANUAIS COBRA 148GTL
SERVIÇO MANUAIS COBRA 148GTL
 
Projeto de máquinas
Projeto de máquinasProjeto de máquinas
Projeto de máquinas
 
Clp aprendizagem clic2 weg
Clp aprendizagem clic2 wegClp aprendizagem clic2 weg
Clp aprendizagem clic2 weg
 
Aula 13 diodo zener
Aula 13 diodo zenerAula 13 diodo zener
Aula 13 diodo zener
 
Manual caldeira flamotubular
Manual caldeira flamotubular Manual caldeira flamotubular
Manual caldeira flamotubular
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architecture
 
Tramigo t22 informacion general
Tramigo t22 informacion generalTramigo t22 informacion general
Tramigo t22 informacion general
 
Microcontroller pic 16 f877 registers memory ports
Microcontroller pic 16 f877 registers memory portsMicrocontroller pic 16 f877 registers memory ports
Microcontroller pic 16 f877 registers memory ports
 
Ssw 03p6 (1) weg
Ssw 03p6 (1) wegSsw 03p6 (1) weg
Ssw 03p6 (1) weg
 

Andere mochten auch

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ão5Ana Carneirinho
 
EL ABC DE LA ELECTRONICA
EL ABC DE LA ELECTRONICAEL ABC DE LA ELECTRONICA
EL ABC DE LA ELECTRONICAGustavo Garcia
 
Aprende electronica desde_cero
Aprende electronica desde_ceroAprende electronica desde_cero
Aprende electronica desde_ceroCgiovanny Gomez
 
Sistema elétrico veicular
Sistema elétrico veicularSistema elétrico veicular
Sistema elétrico veicularFernando Mattos
 
Eletricidade básica automotiva
Eletricidade básica automotivaEletricidade básica automotiva
Eletricidade básica automotivaHeadri Zaus
 
Eletrônica embarcada automotiva
Eletrônica embarcada automotivaEletrônica embarcada automotiva
Eletrônica embarcada automotivajuangp3
 

Andere mochten auch (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
 

Ähnlich wie Pwm pic 18 f

Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfSilvanildoManoeldaSi
 
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 PCPaulo Duarte
 
Treinamento – vfs15 pratica
Treinamento – vfs15 praticaTreinamento – vfs15 pratica
Treinamento – vfs15 praticaconfidencial
 
Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec Automação
 
Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec apresentacao servos delta asda-a2
Kalatec apresentacao servos delta asda-a2Kalatec Automação
 
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 PLLRoní Gonçalves
 
Projeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalProjeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalCiro Marcus
 
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-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Controlador gefran 600
Controlador gefran 600Controlador gefran 600
Controlador gefran 600Dinojr
 
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-LAVALJoão J.M. Goncalves
 
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 )Ciro Marcus
 
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...Ciro Marcus
 
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...Fabio Souza
 

Ähnlich wie 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...
 

Mehr von IFPB

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õesIFPB
 
Elaboracao pci
Elaboracao pciElaboracao pci
Elaboracao pciIFPB
 
Beaglebone black - Introdução
Beaglebone black - IntroduçãoBeaglebone black - Introdução
Beaglebone black - IntroduçãoIFPB
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programaçãoIFPB
 
Simulino apresentação
Simulino apresentaçãoSimulino apresentação
Simulino apresentaçãoIFPB
 
Intodução a pci
Intodução a pciIntodução a pci
Intodução a pciIFPB
 

Mehr von 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