8.0 Módulo Timer2 dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A
Tradução: Maria Elisa - Assessoria em Inglês e Alemão
Revisão: Renato Kodaira
O Timer2 dos microcontroladores PIC16F627A, PIC16F628A e PIC16F648A é um temporizador de 8 bits com um pré-scaler e um pós-scaler. Ele pode ser utilizado como a base de tempo da Modulação por Largura de Pulso (Pulse Width Modulation = PWM) para o modo PWM do módulo CCP. O registrador TMR2 é acessível para leitura e escrita, e é apagado em qualquer Reinicialização do dispositivo.
O clock de entrada (Fosc/4) oferece opções de pré-escala de 1:1, 1:4 ou 1:16, selecionadas pelos bits de controle T2CKPS<1:0> (T2CON<1:0>).
O módulo Timer2 possui um registrador de período de 8 bits PR2. O valor do registrador TMR2 incrementa de 00h até equivaler (match) ao valor do registrador PR2, e então reinicializa para 00h no próximo ciclo de incrementação. O registrador PR2 é acessível para leitura e escrita. O registrador PR2 é inicializado para FFh na Reinicialização.
A saída de match (equivalência) do Timer2 passa por um pós-scaler de 4 bits (que fornece proporções de 1:1 até 1:16, inclusive) para gerar uma interrupção do Timer2 (armazenada no bit de sinalização TMR2IF, (PIR<1>)).
O Timer2 pode ser desligado apagando-se o bit de controle TMR2ON (T2CON<2>) a fim de minimizar o consumo de energia.
O Registrador 8.1 apresenta o registrador de controle Timer2.
8.1 Pré-scaler e Pós-scaler do Timer2
Os contadores pré-scaler e pós-scaler são apagados quando ocorre uma das seguintes condições:
-
uma escrita no registrador TMR2
-
uma escrita no registrador T2CON
-
qualquer reinicialização do dispositivo (Reinicialização de Power-on, Reinicialização do MCLR, Reinicialização do Temporizador Cão-de-Guarda ou Reinicialização de Brown-out)
O registrador TMR2 não é apagado quando o T2CON é escrito.
8.2 Saída do TMR2
A saída do TMR2 (antes do pós-scaler) é disponibilizada ao módulo Porta Serial Síncrona, o qual a utiliza opcionalmente para gerar o clock de deslocamento (shift)
FIGURA 8.1: DIAGRAMA DE BLOCOS DO TIMER2

|
U-0 |
RW-0 |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
--- |
TOUTPS3 |
TOUTPS2 |
TOUTPS1 |
TOUTPS0 |
TMR2ON |
T2CKPS1 |
T2CKPS0 |
bit 7 |
|
|
|
|
|
|
bit 0 |
|
bit 7
|
Não Implementado: Lido como '0'
|
bit 6-3 |
TOUTPS<3:0>: Bits de Seleção da Pós-escala da Saída do Timer2 |
|
0000 = valor da pós-escala 1:1 |
|
0001 = valor da pós-escala 1:2 |
|
⋅ |
|
⋅ |
|
⋅ |
|
1111 = valor da pós-escala 1:16
|
bit 2 |
TMR2ON: Bit de Acionamento do Timer2 |
|
1 = Timer2 é ligado |
|
0 = Timer2 é desligado
|
bit 1-0 |
T2CKPS<1:0>: Bits de Seleção da Pré-escala do Clock do Timer2 |
|
00 = valor da pré-escala 1:1 |
|
01 = valor da pré-escala 1:4 |
|
1x = valor da pré-escala 1:16
|
|
Legenda:
R = bit de leitura
W = bit de escrita
U = bit não implementado (unimplemented), lido como '0'
-n = valor na POR
'1' = bit está ativado
'0' = bit está apagado
x = bit é desconhecido |
TABELA 8.1: REGISTRADORES ASSOCIADOS AO TIMER2 COMO TEMPORIZADOR/ CONTADOR
Endereço |
Nome |
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
Valor na POR |
Valor em Todas as Outras Reinicializações |
0Bh, 8Bh, 10Bh, 18Bh |
INTCON |
GIE |
PEIE |
T0IE |
INTE |
RBIE |
T0IF |
INTF |
RBIF |
0000 000x |
0000 000u |
0Ch |
PIR1 |
EEIF |
CMIF |
RCIF |
TXIF |
--- |
CCP1IF |
TMR2IF |
TMR1IF |
0000 -000 |
0000 -000 |
8Ch |
PIE1 |
EEIE |
CMIE |
RCIE |
TXIE |
--- |
CCP1IE |
TMR2IE |
TMR1IE |
0000 -000 |
0000 -000 |
11h |
TMR2 |
Registrador do Módulo Timer2 |
0000 0000 |
0000 0000 |
12h |
T2CON |
--- |
TOUTPS3 |
TOUTPS2 |
TOUTPS1 |
TOUTPS0 |
TMR2ON |
T2CKPS1 |
T2CKPS0 |
-000 0000 |
-000 0000 |
92h |
PR2 |
Registrador de Período do Timer2 |
1111 1111 |
1111 1111 |
Legenda:
x = desconhecido
u = inalterado
- = não implementado, lido como '0'
células sombreadas = não utilizadas pelo módulo Timer2