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?

Design and implementation of analog multipliers with IC's
Design and implementation of analog multipliers with IC'sDesign and implementation of analog multipliers with IC's
Design and implementation of analog multipliers with IC'sheyaci
 
Design of CMOS operational Amplifiers using CADENCE
Design of CMOS operational Amplifiers using CADENCEDesign of CMOS operational Amplifiers using CADENCE
Design of CMOS operational Amplifiers using CADENCEnandivashishth
 
Synchronous generators
Synchronous generatorsSynchronous generators
Synchronous generatorsAngelo Hafner
 
Instrumentação Industrial Básica
Instrumentação Industrial BásicaInstrumentação Industrial Básica
Instrumentação Industrial BásicaJohnata França Reis
 
Xiaomi mi router 3
Xiaomi mi router 3Xiaomi mi router 3
Xiaomi mi router 3RafaelOzima
 
8051 assembly programming
8051 assembly programming8051 assembly programming
8051 assembly programmingsergeiseq
 
Introduction to pll
Introduction to pllIntroduction to pll
Introduction to pllsartaj ahmed
 
Unit-III Waveform Generator
Unit-III Waveform GeneratorUnit-III Waveform Generator
Unit-III Waveform GeneratorDr.Raja R
 
8259 Programmable Interrupt Controller
8259 Programmable Interrupt Controller8259 Programmable Interrupt Controller
8259 Programmable Interrupt Controllerabhikalmegh
 
Relatório - Gerador-de-funções
Relatório - Gerador-de-funçõesRelatório - Gerador-de-funções
Relatório - Gerador-de-funçõesAudenor Júnior
 
Design and implementation of 4-bit binary weighted current steering DAC
Design and implementation of 4-bit binary weighted current steering DAC Design and implementation of 4-bit binary weighted current steering DAC
Design and implementation of 4-bit binary weighted current steering DAC IJECEIAES
 

Was ist angesagt? (20)

Design and implementation of analog multipliers with IC's
Design and implementation of analog multipliers with IC'sDesign and implementation of analog multipliers with IC's
Design and implementation of analog multipliers with IC's
 
Dac, adc architecture
Dac, adc architectureDac, adc architecture
Dac, adc architecture
 
EMI Unit II
EMI Unit IIEMI Unit II
EMI Unit II
 
Design of CMOS operational Amplifiers using CADENCE
Design of CMOS operational Amplifiers using CADENCEDesign of CMOS operational Amplifiers using CADENCE
Design of CMOS operational Amplifiers using CADENCE
 
Synchronous generators
Synchronous generatorsSynchronous generators
Synchronous generators
 
Sensores de nível
Sensores de nívelSensores de nível
Sensores de nível
 
Instrumentação Industrial Básica
Instrumentação Industrial BásicaInstrumentação Industrial Básica
Instrumentação Industrial Básica
 
Aula 11-fet
Aula 11-fetAula 11-fet
Aula 11-fet
 
Xiaomi mi router 3
Xiaomi mi router 3Xiaomi mi router 3
Xiaomi mi router 3
 
Eletronica de potencia
Eletronica de potenciaEletronica de potencia
Eletronica de potencia
 
Unit5 , LC Networks and Filters
Unit5 , LC Networks and FiltersUnit5 , LC Networks and Filters
Unit5 , LC Networks and Filters
 
8051 assembly programming
8051 assembly programming8051 assembly programming
8051 assembly programming
 
Introduction to pll
Introduction to pllIntroduction to pll
Introduction to pll
 
Unit-III Waveform Generator
Unit-III Waveform GeneratorUnit-III Waveform Generator
Unit-III Waveform Generator
 
Vlsi dac
Vlsi dacVlsi dac
Vlsi dac
 
Aula 02 controle malha aberta e fechada
Aula 02   controle malha aberta e fechadaAula 02   controle malha aberta e fechada
Aula 02 controle malha aberta e fechada
 
8259 Programmable Interrupt Controller
8259 Programmable Interrupt Controller8259 Programmable Interrupt Controller
8259 Programmable Interrupt Controller
 
Relatório - Gerador-de-funções
Relatório - Gerador-de-funçõesRelatório - Gerador-de-funções
Relatório - Gerador-de-funções
 
Design and implementation of 4-bit binary weighted current steering DAC
Design and implementation of 4-bit binary weighted current steering DAC Design and implementation of 4-bit binary weighted current steering DAC
Design and implementation of 4-bit binary weighted current steering DAC
 
Adc and dac
Adc and dacAdc and dac
Adc and dac
 

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-PIC18F

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-PIC18F (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-PIC18F

  • 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