pwm pic 18 f

23
PWM– PIC 18F Prof. Ilton L Barbacena 2012.2

Upload: ifpb

Post on 22-Jun-2015

6.163 views

Category:

Technology


4 download

DESCRIPTION

Implementação de PWM utilizando microcontroladores da linha PIC 18F

TRANSCRIPT

Page 1: Pwm pic 18 f

PWM– PIC 18F

Prof. Ilton L Barbacena

2012.2

Page 2: Pwm pic 18 f

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

Page 3: Pwm pic 18 f

PWM

• A tensão média é diretamente proporcional ao duty cycle ou ciclo ativo.

3 /99

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

A tensão média será:

Page 4: Pwm pic 18 f

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:

4 /99

• 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.

Page 5: Pwm pic 18 f

PWM - DAC

5 /99

Page 6: Pwm pic 18 f

PWM com filtro RC

6 /99

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

Page 7: Pwm pic 18 f

PWM com filtro RC

7 /99

Duty = 10% Duty = 70%

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

Page 8: Pwm pic 18 f

PWM com filtro RC

8 /99

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.

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

Page 9: Pwm pic 18 f

PWM com filtro LC

9 /99

• 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.

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

Page 10: Pwm pic 18 f

Diagrama simplificadodo PWM no PIC 18F

10 /99

O registrador de duty cycle possui 10 bits: 8 em CCPxL e 2 em CCPxCON

Page 11: Pwm pic 18 f

PWM no PIC 18F

11 /99

Page 12: Pwm pic 18 f

Timer2 no PIC 18F

12 /99

Timer 2Contador de 8 Bits

Calculadora timer2: http://pictimer.picbingo.com/http://www.best-microcontroller-projects.com/pic-timer-2.html

Page 13: Pwm pic 18 f

Timer2 no PIC 18F

13 /99

• 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;

Page 14: Pwm pic 18 f

Timer2 no PIC 18F

14 /99

• 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.

Page 15: Pwm pic 18 f

Exemplo de Timer2 no PIC 18F

15 /99

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

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

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.

Page 16: Pwm pic 18 f

Exemplo de Timer2 no PIC 18F

16 /99http://pictimer.picbingo.com/ 488 x 2048000nS = 1s

Page 17: Pwm pic 18 f

PWM no PIC 18F

17 /99

• 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)PWMfreq = 1 / Tpwm

No PIC não se define duty cycle, mas o tempo de pulso em nível alto, que é dado por:

(1)

(2)

Page 18: Pwm pic 18 f

PWM no PIC 18F

18 /99

• 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:

(3)Em bits

Page 19: Pwm pic 18 f

Exemplo de PWM no PIC 18F

19 /99

• Supor um PWM de 20KHz, com um clock de 8MHz e prescaler do timer 2 de 1:1;

De (1)

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

(4)

(5)

Page 20: Pwm pic 18 f

PWM no PIC 18F

20 /99

• 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;wap2Atividade:

gerar um PWM de 3KHz (fpwm = 3KHz) com duty variável de 20% a 80%.

Page 21: Pwm pic 18 f

Exemplo de PWM no PIC 18F

21 /99

• 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;

Page 22: Pwm pic 18 f

Resolução de PWM no PIC 18F

22 /99

• 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

Page 23: Pwm pic 18 f

Atividade para PWM no PIC 18F

23 /99

• 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;