Você está na página 1de 34

| 

 
 |

   


Módulo CCP

O Módulo CCP é um módulo do PIC16F628A que pode trabalhar de três


modos diferentes: Capture, Compare e PWM.

Deve-se configurar os bits: CCP1M3:CCP1M0 do registro


CCP1CON<3:0> para selecionar o modo de trabalho desejado.

O registro CCP1CON está localizado no banco 0 da memória de dados.


Módulo CCP
Banco 0 de
Memória

Registro
CCP1CON para
configurar o
Módulo CCP
Módulo CCP
Tabela apresentando os modos de configuração do módulo CCP

CCP1M3:CCP1M0 Modo de Operação

0000 Desliga o Módulo CCP


Configuração 0100 Prescaler 1:1 Captura borda de descida
utilizado no
0101 Prescaler 1:1 Captura borda de subida
modo
Capture 0110 Prescaler 1:4 Captura borda de subida
0111 Prescaler 1:16 Captura borda de subida
1000 Inicia pino CCP1 em 0, setando-o em caso de coincidência
1001 Inicia pino CCP1 em 1, apagando-o em caso de coincidência
Configuração
utilizado no
1010 Não altera o nível do pino CCP1, porém ativa flag de
modo interrupção, o bit CCP1IF, em caso de coincidência.
Compare
1011 Não altera o nível do pino CCP1, porém ativa flag de
interrupção, o bit CCP1IF e reseta o TMR1(TMR1H:TMR1L),
em caso de coincidência
11xx PWM
Modo PWM
Módulo CCP

| 
 |

Módulo CCP ʹ Modo Captura

Neste modo capture, o módulo TIMER1 é utilizado para medir o tempo entre dois
eventos ocorridos no pino RB3/CCP1.

Estes eventos são transições positivas (borda de subida) ou negativas (borda de


descida) ocorridas neste pino.

Quanto maior o prescaler adotado maior a precisão obtida na medição do tempo


entre os eventos ocorridos.

CCP1M3:CCP1M0 Modo de Operação

0100 Captura feita para 1a borda de descida no pino RB3/CCP1.


0101 Captura feita para 1a borda de subida no pino RB3/CCP1.
0110 Captura feita para 4 bordas de descida no pino RB3/CCP1.
0111 Captura feita para 16 bordas de subida no pino RB3/CCP1.
Módulo CCP ʹ Modo Captura

CCP1M3: CCP1M0 Bits de


configuração para selecionar o modo
de operação do módulo CCP.

Registro
CCP1CON
Módulo CCP ʹ Modo Captura
Banco 0 de
Memória
Veja os
registros
utilizados no
modo
Capture

Registros
CCPR1H:CCPR1L

Registro
CCP1CON para
configurar o
Módulo CCP
Módulo CCP ʹ Modo Captura

¬  


 
RB3/ 

  
 

 

 

 
|R|R  
   


 
 !

$
%
&
   
 

 RB3/ 
  

   

 % 
 
 
    

 R#B<3> "  !"#
Módulo CCP ʹ Modo Captura

A seguir são apresentados os passos para ativar o modo Captura no módulo CCP:

1 ʹ Configurar o modo de funcionamento Captura através dos bits


CCP1M3:CCP1M0 CCP1CON<3:0> ;

2 ʹ Configurar o TMR1 ( T1CON );

3 ʹ Habilitar se for necessário, a interrupção do módulo CCP - INTCON<7:6> e PIE1<2>;

4 ʹ Configurar o pino RB3/CCP1 como entrada, setando o bit TRISB<3>;

Obs: Para utilizar o modo captura do módulo CCP, é necessário que o TIMER1 esteja
funcionando como Temporizador ou como contador sincronizado ( não pode utilizar como
não sincronizado )
Módulo CCP

| 
 |

Módulo CCP ʹ Modo Compare

Neste modo de funcionamento do módulo CCP, o modo Compare, o conteúdo do


par de registros TMR1H:TMR1L é comparado a todo instante com o conteúdo de
par de registros CCP1H:CCP1L.

Quando eles forem iguais, o pino RB3/CCP1 será chaveado de acordo com o modo
de funcionamento do modo Compare

CCP1M3:CCP1M0 Modo de Operação

1000 Inicia o pino RB3/CCP1 em 0 e seta-o quando ocorrer a


igualdade.
1001 Inicia o pino RB3/CCP1 em 1 e apaga-o quando ocorrer a
igualdade.
1010 Não altera o nível do pino RB3/CCP1, porém gera uma
interrupção, se ela estiver habilitada, quando ocorrer igualdade.
1011 Não altera o nível do pino RB3/CCP1, porém gera uma
interrupção, se ela estiver habilitada, e zera o par de registros
TMR1H:TMR1L quando ocorrer igualdade.
Módulo CCP ʹ Modo Compare

CCP1M3: CCP1M0 Bits de


configuração para selecionar o modo
de operação do módulo CCP.

Registro
CCP1CON
Módulo CCP ʹ Modo Compare
Banco 0 de
Memória
Veja os
registros
utilizados no
modo
Compare

Registros
CCPR1H:CCPR1L

Registro
CCP1CON para
configurar o
Módulo CCP
Módulo CCP ʹ Modo Compare

¬  

 


 


 
|R|R 

 
 


'%
 
RB3/  
&

 
 

  
 

(

$
%
&
  
 RB3/
$ %  % 

  

 R#B<3>
Módulo CCP ʹ Modo Compare

A seguir são apresentados os passos para ativar o modo Compare no módulo CCP:

1 ʹ Configurar o modo de funcionamento Compare através dos bits


CCP1M3:CCP1M0 CCP1CON<3:0> ;

2 ʹ Configurar o TMR1 ( T1CON );

3 ʹ Habilitar se for necessário, a interrupção do módulo CCP - INTCON<7:6> e


PIE1<2>;

4 ʹ Configurar o pino RB3/CCP1 como saída, apagando o bit TRISB<3>;

Obs: Para utilizar o modo captura do módulo CCP, é necessário que o TIMER1 esteja
funcionando como Temporizador ou como contador sincronizado ( não pode utilizar
como não sincronizado ).
Módulo CCP

| 
 ||
Módulo CCP ʹ Modo PWM

Este é o modo mais poderoso do módulo CCP.

Pode ser utilizado em diversas aplicações tais como:


conversor análogo/digital, fontes chaveadas, controle de cargas,
nobreaks e outros.

O PWM é conhecido como Modulação por Largura de Pulso. É um sinal


digital com freqüência fixa e largura de pulso ( ciclo ativo ) variável.
Módulo CCP ʹ Modo PWM

Na figura abaixo é apresentado um sinal PWM

O Ciclo ativo é a parte do ciclo de sinal que permanece no nível 1.

Verifica-se que o período TPWM é fixa. O que muda é o tempo do ciclo


ativo.
Módulo CCP ʹ Modo PWM

Na figura abaixo é apresentado um sinal PWM

Verifica-se que o tempo em que o sinal permanece no nível 1 ( ciclo ativo


ou Duty Cycle) , difere em cada ciclo.

Isto representa a lógica do PWM. Mesmo sendo um sinal digital, existe


um nível DC ( valor médio ) associado a ele. Este nível DC pode ser
variado, variando a largura do ciclo ativo.
Módulo CCP ʹ Modo PWM

Para calcular o nível DC de um sinal PWM utilizar a seguinte fórmula:


 
 
˜  ± ˜


Onde:
VDC ʹ Nível DC ou Tensão Média;
PWM(ciclo ativo) ʹ Tempo correspondente ao ciclo ativo;
TPWM ʹ Período do sinal PWM;
V ʹ Valor da tensão em nível 1.
Módulo CCP ʹ Modo PWM

Duty Cycle - É a relação entre o ciclo ativo e o período do sinal

O Duty Cycle é admensional e pode variar de 0 a 1 ( 0 a 100%)

 
 

   ±


Recuperando o Nível DC de um Sinal PWM


. &+/
S)*
+,- S$


Módulo CCP ʹ Modo PWM

Gerando o Sinal PWM no Módulo CCP

Para Configurar o módulo CCP para funcionar no modo PWM temos de fazer os bits
CCP1M3:CCP1M0=11xx (x=irrelevante).

O sinal PWM será fornecido no pino RB3/CCP1.

O TIMER2 é usado como base de tempo para geração dos sinal.


Módulo CCP ʹ Modo PWM
Banco 0 de
Memória

Veja os
registros
utilizados no
modo PWM

Registro
CCPR1L
e CCPR1H

Registro
CCP1CON para
configurar o
Módulo CCP
Módulo CCP ʹ Modo PWM

CCP1M3: CCP1M0 Bits de


configuração para selecionar o modo
de operação do módulo CCP.

Registro
CCP1CON

CCP1M3:CCP1M0 Modo de Operação


11xx PWM
Módulo CCP ʹ Modo PWM

Período do Sinal PWM

O período do sinal PWM gerado no pino RB3/CCP1 é definido pelo


valor escrito no registrador PR2, pela Fosc e pelo fator de prescaler do
TMR2, conforme a equação a seguir:

 ±   Õ @            @

Onde:
TPWM ʹ Período do sinal PWM;
TOSC=1/FOSC;
Prescaler_do_TMR2 : Fator do prescaler aplicado ao TMR2
Módulo CCP ʹ Modo PWM

Cálculo do valor do PR2

Para calcular o Valor do PR2 a partir da freqUência do sinal PWM


utilizara equação a seguir:

 ±              @ s 

Onde:
PR2 = Valor necessário para gerar FPWM;
FOSC= Freqüência do oscilador principal;
FPWM = Freqüência do sinal PWM;
Prescaler_do_TMR2 : Fator do prescaler aplicado ao TMR2
Módulo CCP ʹ Modo PWM

Ciclo ativo do sinal PWM

O ciclo do sinal PWM se inicia quando TMR2=PR2+1. Neste momento o que ocorre é o
seguinte:

- O TMR2 é zerado, dando inicio a um novo ciclo do sinal PWM;


- O Pino RB3/CCP1 é setado, dando inicio ao ciclo ativo ( exceto se duty cycle for 0% )
- O registro CCPR1H é carregado com o conteúdo do registro CCP1RL com vistas a atualizar
a largura do ciclo ativo no ciclo de sinal que se inicia.

O tempo que corresponde o ciclo ativo é controlado por 10 bits, chamados bits de controle.
Eles são compostos pelo registro CCPR1L mais os bits CCP1X:CCP1Y(CCP1CON<5:4>). O
CCPR1L contém os 8 bits mais significativos e os bits CCP1X:CCP1Y os 2 bits menos
significativos.

O Ciclo só termina quando TMR2= CCP1X:CCP1Y(CCP1CON<5:4>). Tendo em vista que o


registro TMR2 é de 8 bits, ele é concatenado com 2 bits (<Q1:Q0>), obtidos do oscilador
principal e do prescaler do TMR2, para completar os 10 bits necessários para que seja feita
a comparação(
Módulo CCP ʹ Modo PWM

Diagrama de blocos do módulo CCP operando no modo PWM


Módulo CCP ʹ Modo PWM

Ciclo ativo do sinal PWM

Dependendo do valor armazenado no registro PR2, nem todos os 10 bits de controle serão
utilizados para determinar a largura do ciclo ativo. A seguinte fórmula é determinada pelo
fabricante para cálculo do ciclo ativo do PWM.

  ±  


 ß           @

Onde:
PWMCICLO = Tempo correspondente ao ciclo ativo do sinal PWM;
CCPR1L:CCP1CON<5:4>= Valor que irá definir a largura do ciclo ativo;
TOSC=1/FOSC;
Prescaler_do_TMR2 : Fator do prescaler aplicado ao TMR2
Módulo CCP ʹ Modo PWM

Definindo o Número de Passos de Controle

O Valor armazenado em PR2 limita o número de bits que serão utilizados para controle do
ciclo ativo. O controle é feito a partir de uma divisão do período do sinal PWM em partes
iguais chamados passos.

O número de passos em que o período do sinal é dividido dependerá do número de bits de


controle utilizados. Uma maneira rápida e fácil de descobrir o número de bits de controle
necessários para controlar a largura do duty cycle é adicionar 2 bits ao número de bits
correspondente ao valor armazenado em PR2.

A tabela a seguir mostra o número de bits de controle necessário para obter o número de
passos máximo correspondente, para diferentes valores armazenados no registro PR2.
Módulo CCP ʹ Modo PWM

Definindo o Número de Passos de Controle

'ú  & $  'ú á'        R2


 
$$$ R ('<5)>
ï 4 0a3 0

3 8 0a7 1

4 16 0 a 15 11

5 3ï 0 a 31 111

6 64 0 a 63 1111

7 1ï8 0 a 1ï7 11111

8 ï56 0 a ï55 111111

9 51ï 0 a 511 1111111

10 10ï4 0 a 10ï3 11111111

A fórmula mostra como obter a quantidade de passos em que o


período do sinal PWM será dividido:
 ±   Õ @  
Módulo CCP ʹ Modo PWM

Definindo o tempo correspondente a cada passo Tp

Dividindo o período do sinal PWM pelo número de passos, nós


teremos o tempo correspondente a cada passo Tp:



'

Onde:

Tp : Tempo correspondente a cada passo


TPWM : Período do sinal PWM
Np : Número de passos
Módulo CCP ʹ Modo PWM

A seguir são apresentados os passos para ativar o modo PWM no módulo CCP:

1 ʹ Configurar o período do sinal PWM escrevendo o valor correto no registro PR2

2 ʹ Configurar a largura do Duty Cycle escrevendo o valor correto nos bits de


controle CCPRL1:CCP1CON<5:4>;

3 ʹ Configurar o pino RB3/CCP1 como saída, apagando o bit TRISB<3>;

4 ʹ Ligar o TMR2 com o prescaler desejado;

5 ʹ Configurar o modo de funcionamento Compare através dos bits


CCP1M3:CCP1M0 CCP1CON<3:0> = 1100 ;