Upload
dongoc
View
215
Download
0
Embed Size (px)
Citation preview
25/04/2017
1
125/04/2017
Parte 4
PORTAS DE COMUNICAÇÃO
225/04/2017
1. DEFINIÇÃO
2. PORTA PARALELA
3. ENTRADA ANALÓGICA
4. PWM
5. PROGRAMAÇÃO PWM
DEFINIÇÃO1
325/04/2017
DEFINIÇÃO
DEFINIÇÃO1
425/04/2017
Significado de porta
DEFINIÇÃO1
525/04/2017
Necessidade
• Um processador ou controlador não tem razão de ser
se sua computação de dados restringir-se, apenas,
às suas memórias internas.
• Para que esta computação seja útil, é necessário que
ela interfira em elementos externos ao dispositivo.
• A comunicação entre o barramento de dados do
dispositivo e o mundo exterior é feito através das
portas de comunicação.
• Todo programa, em alguma aplicação útil, deve fazer
uso, pelo menos uma vez, de alguma porta de
comunicação.
DEFINIÇÃO1
625/04/2017
Tipos
• Entrada analógica.
• Saída analógica (somente DSP´s).
• Saída PWM.
• I/O digital.
• Paralela.
• Paralela escrava.
• Serial.
25/04/2017
2
DEFINIÇÃO1
725/04/2017
Saída analógica
• Não é comum que P´s e MCU´s forneçam saída analógica.
• DSP´s podem conter saída analógica.
• Em DSP´s de áudio e de vídeo, esta saída analógica pode
conter um pré-amplificador.
DEFINIÇÃO1
825/04/2017
Blocos funcionais na PIC16F877
• Portas paralelas (A,B,C,D,E).
• Porta paralela escrava.
• Capture, Compare, PWM.
• Portas seriais (SPI™, I2C™, USART).
• Conversor A/D.
DEFINIÇÃO1
925/04/2017
Blo
cos f
uncio
nais
na P
IC16F
877
DEFINIÇÃO1
1025/04/2017
Portas
• Todas as portas de comunicação da MCU são
periféricos, mas nem todos os periféricos são portas
de comunicação.
• Sendo periféricos, todas as portas se comunicam
com o core por meio do data bus.
• Toda porta possui um SFR associado (ou mais).
• Tais SFR’s localizam-se, fisicamente, próximos ao
bloco funcional associado à respectiva porta.
• Esses SFR’s, em sua maioria, atuam como memória
para manutenção do dado associado à porta.
DEFINIÇÃO1
1125/04/2017
Pinos (DIP 40)Os 33 pinos de I/O
DEFINIÇÃO1
1225/04/2017
Pinos (DIP 40)Os 7 pinos não usados para I/O
25/04/2017
3
DEFINIÇÃO1
1325/04/2017
Pinos (DIP 40)
2 33 15 19 8
3 34 16 20 9
4 35 17 21 10
5 36 18 22 -
6 37 23 27 -
7 38 24 28 -
- 39 25 29 -
- 40 26 30 -
• Os pinos de comunicação são multiplexados.
• Podem ter uma, duas ou três funções.
• Todas funções são de comunicação.
DEFINIÇÃO1
1425/04/2017
SFR’s para configuração do sentido
SFR Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0TRISA 085h - - I/O I/O I/O I/O I/O I/OTRISB 086h I/O I/O I/O I/O I/O I/O I/O I/OTRISC 087h I/O I/O I/O I/O I/O I/O I/O I/OTRISD 088h I/O I/O I/O I/O I/O I/O I/O I/OTRISE 089h IBF OBF IBOV PSPMODE - I/O I/O I/O
TRIS Sentido
0 Saída
1 Entrada
• A configuração é feita bit a bit.
• O modo padrão é o 0: saída.
• O modo de saída é o padrão porque evita que dados
espúrios sejam computados.
• O modo de entrada não tem o problema de curto-circuito.
reset default
DEFINIÇÃO1
1525/04/2017
Pinos (DIP 40)2 33 15 19 8
3 34 16 20 9
4 35 17 21 10
5 36 18 22 -
6 37 23 27 -
7 38 24 28 -
- 39 25 29 -
- 40 26 30 -
• 33 pinos são dedicados à comunicação.
• Todos os 33 pinos podem ser configurados com
entrada ou como saída individualmente.
• As portas paralelas e a paralela escrava
aceitam entrada e saída (não simultaneamente).
• As demais portas suportam, apenas, um tipo de
configuração por pino.
• A escolha do tipo de comunicação implica na
correta configuração dos pinos, via programa.
DEFINIÇÃO1
1625/04/2017
SFR Addr. POR/BORTRISA 085h --11 1111
TRISB 086h 1111 1111
TRISC 087h 1111 1111
TRISD 088h 1111 1111
TRISE 089h 0000 -111
Banco 1
SFR’s para configuração do sentido
DEFINIÇÃO1
1725/04/2017
• TRISA configura o sentido dos pinos de PORTA e
das demais funções que podem ser multiplexadascom os pinos de PORTA.
• O mesmo vale para TRISB, TRISC, TRISD e TRISE.
• Um erro na programação destes SFR’s pode
provocar a queima do chip.
• A única comunicação que não é afetada por TRIS é
a PSP, cujo controle de sentido é feito por um
dispositivo externo ao chip.
SFR’s para configuração do sentido
DEFINIÇÃO1
1825/04/2017
Buffer tri-state (3S)
Entrada
de dado
Entrada
de dado
Saída
de dado
Saída
de dado
Entrada de
controle
Entrada de
controle
Ativo em nível baixo
Ativo em nível alto
25/04/2017
4
DEFINIÇÃO1
1925/04/2017
SFR’s para configuração do sentido
Tris bit
Pino
Demultiplexação
Multiplexação
Output
Input
• Entrada e saída não podem ser
selecionados ao mesmo tempo.
TRIS Sentido
0 Saída
1 Entrada
DEFINIÇÃO1
2025/04/2017
SFR’s para configuração do sentido
Tris = 0 Tris = 1
DEFINIÇÃO1
2125/04/2017
• As portas de comunicação possuem um ou mais
SFR’s associados, para dados, endereço e controle.
• Isto significa que a informação não é transmitida
diretamente do data bus para a porta, mas, sim, por
meio dos SFR’s.
• A gravação no SFR ocorre, apenas, em Q4.
• A leitura no SFR ocorre, apenas, em Q2.
• Alguns periféricos permitem acesso assíncrono.
• Todas as portas usam FF D como elemento de
memória.
SFR’s para armazenamento da informação
DEFINIÇÃO1
2225/04/2017
Principais portas de comunicação
Serial A/DPORT PWM PSP
SFR SFR SFR SFR
8-bit* 10-bit 10-bit
8-bit8-bit8-bit* 8-bit
SFR
8-bit
8-bit
Pinos
8-bit PIC Data Bus
* ou menos
DEFINIÇÃO1
2325/04/2017
SFR’s para configuração do sentido
1-bit
21
MUX
1-bit
12DEMUX
Seleção Periférico 1
Periférico 2
SFR
SFR
Seleção Periférico 1
Periférico 2
SFR
SFR
PORTA PARALELA2
2425/04/2017
PORTA PARALELA
25/04/2017
5
PORTA PARALELA2
2525/04/2017
Comunicação digital paralela
• Mais simples.
• Mais rápida.
• 3, 6 ou 8 bits.
• 5 portas.
• Bidirecionais.
PORTA PARALELA2
2625/04/2017
Comunicação digital paralela
• As portas paralelas são registradas.
• A registração libera o data bus e mantém a informação.
• Os nomes dos bits das portas paralelas iniciam com a letra R.
• R: Register – Um SFR para cada porta.
• As portas também são chamadas de RA, RB, RC, RD e RE.
PORTA PARALELA2
2725/04/2017
5 portas paralelas: A, B, C, D, E
PORTA PARALELA2
2825/04/2017
SFR’s para comunicação paralela
SFR Addr.TRISA 085h
TRISB 086h
TRISC 087h
TRISD 088h
TRISE 089h
Banco 1
SFR Addr.PORTA 005h
PORTB 006h
PORTC 007h
PORTD 008h
PORTE 009h
Banco 0
PORTA PARALELA2
2925/04/2017
SFR Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0PORTA 005h - - RA5 RA4 RA3 RA2 RA1 RA0PORTB 006h RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0PORTC 007h RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0PORTD 008h RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0PORTE 009h - - - - - RE2 RE1 RE0
SFR Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0TRISA 085h - - I/O I/O I/O I/O I/O I/OTRISB 086h I/O I/O I/O I/O I/O I/O I/O I/OTRISC 087h I/O I/O I/O I/O I/O I/O I/O I/OTRISD 088h I/O I/O I/O I/O I/O I/O I/O I/OTRISE 089h IBF OBF IBOV PSPMODE - I/O I/O I/O
SFR’s para comunicação paralela
PORTA PARALELA2
3025/04/2017
SFR SFR SFR SFR
6-bit
6-bit 8-bit
SFR
3-bit
3-bit
Pinos
8-bit PIC Data Bus
SFR’s para comunicação paralela
PORT
B
PORT
A
PORT
C
PORT
E
PORT
D
8-bit 8-bit
8-bit 8-bit 8-bit
25/04/2017
6
PORTA PARALELA2
3125/04/2017
Sentido
• Em P’s, geralmente, há uma única porta
de comunicação paralela, e todos os bits
tem o mesmo sentido.
• Neste caso, um único bit é usado na
determinação do sentido do fluxo da
informação.
• Como, na PIC, os bits tem configuração
individual de sentido, é preciso o uso de
uma palavra de configuração.
• Em P’s, geralmente, não há buffer na
porta paralela, sendo necessário o uso
de um chip separado para essa função.
• Em MCU’s, essa função é incluída.
PORTA PARALELA2
3225/04/2017
Multiplexação
• Os pinos usados para comunicação paralela são
multiplexados com outras funções.
• Cada pino pode exercer até três funções diferentes.
• Só é possível exercer uma função ao mesmo tempo.
• A configuração da multiplexação é realizada durante
a execução do programa.
• O sentido da informação deve ser configurado
também para as outras funções multiplexadas.
PORTA PARALELA2
3325/04/2017
Multiplexação
• Todas as outras funções multiplexadas nos
pinos das portas paralelas são associadas a
periféricos que podem ser ligados e desligados.
• Quando ligados, tais periféricos tomam, para si,
o uso dos pinos.
• Quando desligados, tais periféricos liberam os
pinos para as portas paralelas.
PORTA PARALELA2
3425/04/2017
Pinagem (DIP)
Bit PORTA PORTB PORTC PORTD PORTE
0 2 33 15 19 8
1 3 34 16 20 9
2 4 35 17 21 10
3 5 36 18 22 -
4 6 37 23 27 -
5 7 38 24 28 -
6 - 39 25 29 -
7 - 40 26 30 -
PORTA PARALELA2
3525/04/2017
Tipo do buffer
Bit PORTA PORTB PORTC PORTD PORTE
0 TTL TTL ST ST ST
1 TTL TTL ST ST ST
2 TTL TTL ST ST ST
3 TTL TTL ST ST -
4 ST TTL ST ST -
5 TTL TTL ST ST -
6 - TTL ST ST -
7 - TTL ST ST -
• O buffer ST é um buffer TTL com histerese.
• Estas informações se referem ao uso dos
pinos como porta paralela
• Quando o pino é usado para outra função,
o buffer pode ser diferente.
glitch filter
PORTA PARALELA2
3625/04/2017
Buffer TTL
http://138.37.35.209/staff info/davew/lab/74_chips/7407.gif
Este
slid
en
ão c
ai n
a p
rova
.
25/04/2017
7
PORTA PARALELA2
3725/04/2017
Conexão ST
• A conexão ST somente tem relevância quando
configurada como entrada, pois a fonte de
informação externa não é controlada pela MCU e
pode gerar uma oscilação de alta frequência.
• No modo de saída, a máxima frequência de variação
é dada pelo relógio do sistema, o que impede
oscilações de alta frequência.
• Como os circuitos digitais atuais usam,
principalmente, tecnologia CMOS, com MOSFET’s, o
consumo de energia em regime estacionário é muito
baixo, mas, em regime transitório, muito alto.
• Uma falta de controle em oscilações de alta
frequência leva ao rápido superaquecimento do chip.
PORTA PARALELA2
3825/04/2017
Conexão ST
• A entrada ST é especialmente indicada quando
recebe um sinal digital assíncrono cuja origem da
informação provém de um sensor.
• Se o sistema de sensoriamento for microcontrolado
ou microprocessado, não é necessário o uso da
entrada ST, pois já existe controle de relógio.
• Como as portas A e B não possuem esta proteção, é
recomendável que, se elas forem usadas como
entrada, então a fonte de sinal seja proveniente de
um circuito digital e não de um circuito analógico.
PORTA PARALELA2
3925/04/2017
Conexão ST
Input
glitch filter
PORTA PARALELA2
4025/04/2017
SFR’s para configuração do sentido
Tris bit
Pino
Output
Input
glitch filter
PORTA PARALELA2
4125/04/2017
SFR’s para comunicação paralela
• Os registradores são construídos com FF´s D.
• Há 33 cópias deste circuito.
PORTA PARALELA2
4225/04/2017
PORTA – Multiplexação
• RA é bidirecional.
• As outras funções são unidirecionais.
• RA4 tem buffer ST por causa de T0CKI.
Outras funções
Bit PORTA
0 TTL
1 TTL
2 TTL
3 TTL
4 ST
5 TTL
glitch filter
25/04/2017
8
PORTA PARALELA2
4325/04/2017
PORTA – Pinagem
RA0
RA1
RA2
RA3
RA4
RA5
PORTA PARALELA2
4425/04/2017
PORTA
• Para PORTA, ADCON1<3:0> deve receber a palavra 011xb.
• Para entrada analógica, ADCON1<3:0> devem receber
0000b ou 0010b ou 1001b.
• O default, após reset, é 0000b.
• Outras configurações, bit a bit, podem ser obtidas.
• Estes bits também controlam PORTE.
• Para configurar os pinos 2 a 7, é preciso programar ADCON1
(09Fh), visto mais adiante.
• ADCON1<3:0>, <PCFG3:PCFG0> , devem ser corretamente
programados (16 combinações).
PORTA PARALELA2
4525/04/2017
PORTB – Multiplexação
• RB é bidirecional.
• As outras funções são unidirecionais.
Outras funções
LVP
PORTA PARALELA2
4625/04/2017
PORTB – Tipo do buffer
Bit PORTBOutra
função
0 TTL ST
1 TTL TTL
2 TTL TTL
3 TTL TTL
4 TTL TTL
5 TTL TTL
6 TTL ST
7 TTL ST
PORTA PARALELA2
4725/04/2017
PORTB – Pinagem
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
PORTA PARALELA2
4825/04/2017
PORTB INPUT PULL-UP
• Uma entrada digital não pode ser mantida desconectada.
• A entrada desconectada atua como uma antena que pode
assumir valor zero, valor um ou oscilação de maneira
imprevisível.
• Quando estas entradas são conectadas a um push button
ou um toogle switch, elas podem ser mantidas abertas
dependendo da posição da chave.
• Algumas fontes de sinal também podem apresentar
impedância de saída infinita.
• Nesses casos, convém conectar um resistor em paralelo
com a fonte de sinal.
25/04/2017
9
PORTA PARALELA2
4925/04/2017
+V5V
Resistor de
pull-up
Resistor de
pull-down
Sinal digital
Sinal digital
Aplicação para resistor eliminador de tri-state.PORTB INPUT PULL-UP
+V5V
PORTA PARALELA2
5025/04/2017
+V5V
Resistor de
pull-up
Resistor de
pull-down
Fontes de sinal que podem gerar nível tri-state.PORTB INPUT PULL-UP
+V5V
PORTA PARALELA2
5125/04/2017
PORTB INPUT PULL-UP
http://pcbheaven.com/picpages/images/microswitch_1251550992.jpg
Exemplo de aplicação
PORTA PARALELA2PORTB INPUT PULL-UP
PORTB
PORTC
1
2
3
4
4
3
2
1
Apostila Datapool PIC-2377
Saídasativas em 0
Entradas
5225/04/2017
Exemplo de aplicação
PORTA PARALELA2
5325/04/2017
PORTB INPUT PULL-UP
• O pull-up atua somente no modo de entrada.
• Os 8 bits de PORTB possuem um resistor de weak pull-up
(MOSFET) habilitável.
• Trata-se de uma resistência ativa grande, que corresponde
à resistência entre fonte e dreno de um MOSFET (RDF),
implicando numa pequena corrente.
• Quando o resistor está desabilitado e a entrada (modo input)
não recebe nenhum sinal, ela pode assumir valor 0 ou 1
imprevisivelmente, ou assumir comportamento instável.
• Quando habilitada, a entrada (modo input) que não recebe
sinal vai para nível alto.
• O resistor de pull-up é desligado automaticamente quando o
pino é configurado como saída.
PORTA PARALELA2
5425/04/2017
• Pull-up: Leva a entrada tri-state a nível alto.
• Pull-down: Leva a entrada tri-state a nível baixo.
• Esses resistores devem ser altos, para que sua energia
consumida seja baixa.
• Resistências altas são difíceis de serem integradas, pois
a resistividade do silício é baixa, requerendo grandes
comprimentos para a obtenção de resistências relevantes.
• São usadas resistências ativas, por meio de transistores.
• A resistência ativa é obtida na malha de saída do
transistor (RCE ou RDS).
PORTB INPUT PULL-UP
25/04/2017
10
PORTA PARALELA2
5525/04/2017
• Para configurar pull-up, é preciso programarOPTION_REG (081h, 181h).
• OPTION_REG<7>, <NOT_RBPU>
• NOT_RBPU: PORTB Pull-up Enable bit
• 0: Habilita input pull-up
• 1: Desabilita input pull-up (reset default)
/
• SFR 010000001b, 081h, banco 1
• SFR 110000001b, 181h, banco 3
• SFR X10000001b
PORTB INPUT PULL-UP
PORTA PARALELA2
5625/04/2017
• NOT_RBPU = 1: VG=5V. VGS=0V P-MOSFET desligado
• NOT_RBPU = 0: VG=0V. VGS=-5V P-MOSFET ligado
SG
PORTB INPUT PULL-UP
PORTA PARALELA2
5725/04/2017
• O resistor de pull-up deve ser desligado quando
se coloca várias entradas de dados em paralelo.
• Somente uma entrada é selecionada por vez.
• A impedância de entrada das demais portas de
entradas desabilitadas não devem ser
perceptíveis para a porta de entrada selecionada.
• As portas de entrada não selecionadas devem
ser configuradas para alta-impedância por meio
do desligamento do pull-up.
Saída tri-state
PORTA PARALELA2
5825/04/2017
P ou MCU
Controlador do barramento
n-b
it exte
rnald
ata
bu
s
device1
device2
device3
device4
TOSC
TOSC
TOSC
TOSC
TOSC
CS1
CS2
CS3
CS4
PORTB PULL-UP
Entradas
Entradas
Entradas
Entradas
Saídas
PORTA PARALELA2
5925/04/2017
PORTB – Interrupção
• Quatro bits, PORTB<7:4> <RB7>:<RB4>
possuem verificador de mudança.
• Ocorrendo mudança, uma interrupção é solicitada.
• RBIF: Port B Change Interrupt Flag Bit
• INTCON<0> (Interrupt Control)
• 0: Não houve mudança em PORTB<7:4> (reset default)
• 1: Houve mudança em PORTB<7:4>.
PORTA PARALELA2
6025/04/2017
• Não é permitido fazer BSF INTCON, RBIF.
• INTCON<0> recebe “1” em /RD ou em /WR.
• INTCON<0> recebe “0” manualmente.
• BCF INTCON, RBIF.
• Esse comando é dado após a ciência do evento.
PORTB – Interrupção
25/04/2017
11
PORTA PARALELA2
6125/04/2017
PORTB – Interrupção
4-bitREG
4-bit
COMP
TCY
RB7 RB4
TCYRBIE
RBIF
PORTA PARALELA2
6225/04/2017
PORTB – Interrupção
• A comparação pode ser feita de duas formas:
• SUB das duas palavras de entrada.
• XOR das duas palavras de entrada.
• Se não houve mudança, o nibble resultante é 0000b.
• Um OR de todos os bits do nibble fornece.
• Se 0, igual.
• Se 1, diferente.
PORTA PARALELA2
6325/04/2017
PORTB – Interrupção
4-bit
SUB
4-in
OR
4
2-in
XOR
4-in
OR
4-bit
COMP
TCY
TCY
PORTA PARALELA2
6425/04/2017
PORTC – Multiplexação
• RC é bidirecional.
• As outras funções são unidirecionais.
Outras funções
PORTA PARALELA2
6525/04/2017
PORTC – Pinagem
RC7
RC6
RC5
RC4
RC0
RC1
RC2
RC3
PORTA PARALELA2
6625/04/2017
PORTD – Multiplexação
• RD é bidirecional.
• As outras funções são unidirecionais.
Outras funções
25/04/2017
12
PORTA PARALELA2
6725/04/2017
PORTD – Pinagem
RD7
RD6
RD5
RD4
RD0
RD1
RD3
RD2
PORTA PARALELA2
6825/04/2017
PORTE – Multiplexação
• RE é bidirecional.
• As outras funções são unidirecionais.
PORTA PARALELA2
6925/04/2017
RE0
RE1
RE2
PORTE – Pinagem
PORTA PARALELA2
7025/04/2017
PORTE
• Para PORTE, ADCON1<3:0> devem
receber a palavra 11xxb ou outras opções.
• Estes bits também controlam PORTA.
• É preciso programar ADCON1<3:0>,
<PCFG3:PCFG0> (09Fh), visto mais
adiante.
PORTA PARALELA2
7125/04/2017
As cinco portas paralelas
RE0
RE1
RE2RD7
RD6
RD5
RD4
RD0
RD1
RD3
RD2
RC7
RC6
RC5
RC4
RC0
RC1
RC2
RC3
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
RA0
RA1
RA2
RA3
RA4
RA5
33 pinos
PORTA PARALELA2
7225/04/2017
As cinco portas paralelas
Porta
B
Porta
C
Porta
A
Porta
D
Porta
E
PORTA PORTB PORTC PORTDSFR’s
6-bit
PORTE
3-bit8-bit 8-bit 8-bit
6-bit 3-bit8-bit 8-bit 8-bit
Pinos
8-bit PIC Data Bus
25/04/2017
13
PORTA PARALELA2
7325/04/2017
Uso das portas paralelas no kit didático 2377
ENTRADA ANALÓGICA3
7425/04/2017
ENTRADA ANALÓGICA
ENTRADA ANALÓGICA3
7525/04/2017
Comunicação Analógica
• Somente entrada.
• Um conversor A/D de 10 bits.
• Oito conexões multiplexadas.
• Compartilhada com as portas A e E.
ENTRADA ANALÓGICA3
7625/04/2017
Pinagem
AN5
AN6
AN7
AN0
AN1
AN2
AN3
AN4
8 input channels 10-bit Analog-to-Digital Module
ENTRADA ANALÓGICA3
7725/04/2017
AN PIN Nome
0 2 RA0/AN0
1 3 RA1/AN1
2 4 RA2/AN2/VREF-
3 5 RA3/AN3/VREF+
4 7 RA5/SS/AN4
5 8 RE0/RD/AN5
6 9 RE1/WR/AN6
7 10 RE2/CS/AN7
Pinagem
• ADON = 0: Funções em verde.
• ADON = 1: Funções em vermelho ou preto.
ENTRADA ANALÓGICA3
7825/04/2017
AN PIN Nome Função em preto Móduo
4 7 RA5/SS/AN4 Slave select SSP
5 8 RE0/RD/AN5 Read PSP
6 9 RE1/WR/AN6 Write PSP
7 10 RE2/CS/AN7 Chip select PSP
Pinagem
25/04/2017
14
ENTRADA ANALÓGICA3
7925/04/2017
SFR’s
• ADRESH AD result high byte
• ADRESL AD result low byte
• ADCON0 AD control byte 0
• ADCON1 AD control byte 1
• ADRESH 000011110b, 01Eh, banco 0
• ADRESL 000011111b, 01Fh, banco 0
• ADCON0 010011110b, 09Eh, banco 1
• ADCON1 010011111b, 09Fh, banco 1
ENTRADA ANALÓGICA3
8025/04/2017
SFR’s
• ADRESH:ADRESL: Os 10 bits obtidos na conversão.
• ADCON0: Controle da conversão.
• ADCON1: Controle dos pinos.
ADCON0
ADCON1
ENTRADA ANALÓGICA3
8125/04/2017
ADCON0<7:6> ADCS1:CHS0
AD Clock ADCS1 ADCS0
fOSC/2 TOSC2 fCY2 TCY/2 0 0
fOSC/8 TOSC8 fCY/2 TCY2 0 1
fOSC/32 TOSC32 fCY/8 TCY8 1 0
fRCINT 1 1
A/D Conversion Clock Select Bits
reset default
• Não há motivação para escolher taxas de conversão baixas.
• Deve-se escolher a conversão mais rápida disponível.
ADCON0
ENTRADA ANALÓGICA3
8225/04/2017
ADCON0<7:6> ADCS1:CHS0
AD Clock 20MHz 50ns
fOSC/2 10MHz 100ns
fOSC/8 2,5MHz 400ns
fOSC/32 625kHz 1,6s
A/D Conversion Clock Select Bits
AD Clock 5MHz 200ns
fOSC/2 2,5MHz 400ns
fOSC/8 625kHz 1,6s
fOSC/32 156kHz 6,4s
AD Clock 1,25MHz 800ns
fOSC/2 625kHz 1,6s
fOSC/8 156kHz 6,4s
fOSC/32 39kHz 25,6s
• O máximo fAD é de 625kHz.
• Dependendo do valor do
clock da PIC, nem todas
as possibilidades estão
disponíveis.
AD Clock MáxfOSC
fOSC/2 1,25MHz
fOSC/8 5MHz
fOSC/32 20MHz
ENTRADA ANALÓGICA3
8325/04/2017
ADCON0<7:6> ADCS1:CHS0A/D Conversion Clock Select Bits
• A partir de 1,25MHz, é possível obter 625kHz para fAD.
• Para 1MHz, o máximo fAD é de 500kHz.
• Abaixo de 1MHz, é recomendado o uso do modo RC
a fim de que fAD não se torne mais baixo ainda.
Modo RC fAD TAD
Mínimo 167kHz 6s
Típico 250kHz 4s
Máximo 500kHz 2s
ENTRADA ANALÓGICA3
8425/04/2017
ADCON0<7:6> ADCS1:CHS0A/D Conversion Clock Select Bits
• O conversor A/D é de dez bits.
• Cada bit é obtido por uma comparação.
• Cada comparação é feita em um TAD.
• São necessários 10 TAD’s em uma conversão.
Modo RC TAD 10TAD
Mínimo 6s 60s
Típico 4s 40s
Máximo 2s 20s
AD Clock f T
Máximo 625kHz 1,6s
10TAD 6,25kHz 16s
25/04/2017
15
ENTRADA ANALÓGICA3
8525/04/2017
ADCON0<5:3> CHS2:CHS0
AN CHS2 CHS1 CHS0
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Analog Channel Select Bits
reset default
ADCON0
ENTRADA ANALÓGICA3
8625/04/2017
ADCON0<5:3> CHS2:CHS0Analog Channel Select Bits
analog
81
MUX
Entradas
Saída
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
CH
S2
CH
S1
CH
S0
ENTRADA ANALÓGICA3
8725/04/2017
ADCON0<5:3> CHS2:CHS0Analog Channel Select Bits
analog
81
MUX
10-bit
A/D
O0
O9
2-byte
REGADRESH
ADRESL
/CPSel
D0
D7
8-bit PIC Data Bus
ENTRADA ANALÓGICA3
8825/04/2017
ADCON0<0> ADONHabilitador do conversor AD
• 1: Habilita conversor AD.
• 0: Desabilita conversor AD (reset default) .
• No modo desabilitado, há redução no consumo de energia.
ADCON0
ENTRADA ANALÓGICA3
8925/04/2017
ADCON0<2>
• 1: GO.
• 0: /DONE.
• 1: A conversão AD está em andamento.
• 0: A conversão AD está concluída.
• ADCON0<2>, GO_DONE, é colocado em nível 1 por meio de
BSF ADCON0, GO_DONE.
• Ao fazer GO_DONE=1, a conversão é iniciada.
• Ao término da conversão, GO_DONE=0 automaticamente.
• Não é permitido fazer BCF ADCON0, GO_DONE.
ADCON0
ENTRADA ANALÓGICA3
9025/04/2017
ADCON0<2>
t
1
0
Controle feito pelo assembler
para iniciar a conversão.
Sinalização feita pela PIC®
para o término da conversão.
GO /DONE
25/04/2017
16
ENTRADA ANALÓGICA3
9125/04/2017
ADCON1<7> ADFMA/D Result Format Select Bit
ENTRADA ANALÓGICA3
9225/04/2017
ADCON1<7> ADFM
• O alinhamento à direita é útil quando todos os 10 bits
são usados.
• Ao usar os 10 bits, duas palavras são usadas, o que
requer o dobro de instruções e de tempo de execução.
• Para evitar esse problema, é possível usar, apenas, 8
bits, quando não se necessitar de toda a resolução.
• O alinhamento à esquerda é útil quando se usa 8 bits
sobre toda a faixa de valores analógicos.
• Os dois bits menos significativos são descartados;
apenas uma palavra é usada.
ADCON1
ENTRADA ANALÓGICA3
9325/04/2017
ADCON1<3:0> PCFG3:PCFG0
PCFG3
:PCFG0
AN7
RE2
AN6
RE1
AN5
RE0
AN4
RA5
AN3
RA3
AN2
RA2
AN1
RA1
AN0
RA0
0000 A A A A A A A A
0001 A A A A VREF+ A A A
0010 D D D A A A A A
0011 D D D A VREF+ A A A
0100 D D D D A D A A
0101 D D D D VREF+ D A A
011x D D D D D D D D
1000 A A A A VREF+ VREF- A A
1001 D D A A A A A A
1010 D D A A VREF+ A A A
1011 D D A A VREF+ VREF- A A
1100 D D D A VREF+ VREF- A A
1101 D D D D VREF+ VREF- A A
1110 D D D D D D D A
1111 D D D D VREF+ VREF- D A
A: Entrada analógica
D: Porta paralela ou SSP ou PSP
A/D Port Configuration Control Bits
reset default
ENTRADA ANALÓGICA3
9425/04/2017
ADCON1<3:0> PCFG3:PCFG0
PCFG3
:PCFG0
AN7
RE2
AN6
RE1
AN5
RE0
AN4
RA5
AN3
RA3
AN2
RA2
AN1
RA1
AN0
RA0Explicação
011x D D D D D D D D Nenhum pino para entrada analógica
1110 D D D D D D D A 1 pino para entrada analógica
0100 D D D D A D A A 3 pinos para entrada analógica
0010 D D D A A A A A 5 pinos para entrada analógica
1001 D D A A A A A A 6 pinos para entrada analógica
0000 A A A A A A A A 8 pinos para entrada analógica
0101 D D D D VREF+ D A A VREF+ e 2 pinos para entrada analógica
0011 D D D A VREF+ A A A VREF+ e 4 pinos para entrada analógica
1010 D D A A VREF+ A A A VREF+ e 5 pinos para entrada analógica
0001 A A A A VREF+ A A A VREF+ e 7 pinos para entrada analógica
1111 D D D D VREF+ VREF- D A VREF+, VREF- e 1 pinos para entrada analógica
1101 D D D D VREF+ VREF- A A VREF+, VREF- e 2 pinos para entrada analógica
1100 D D D A VREF+ VREF- A A VREF+, VREF- e 3 pinos para entrada analógica
1011 D D A A VREF+ VREF- A A VREF+, VREF- e 4 pinos para entrada analógica
1000 A A A A VREF+ VREF- A A VREF+, VREF- e 6 pinos para entrada analógica
reset default
10 9 8 7 5 4 3 2
ENTRADA ANALÓGICA3
9525/04/2017
ADCON1<3:0> PCFG3:PCFG0AN7
RE2
AN6
RE1
AN5
RE0
AN4
RA5
AN3
RA3
AN2
RA2
AN1
RA1
AN0
RA0
D D D D D D D D
D D D D D D D A
D D D D A D A A
D D D A A A A A
D D A A A A A A
A A A A A A A A
D D D D VREF+ D A A
D D D A VREF+ A A A
D D A A VREF+ A A A
A A A A VREF+ A A A
D D D D VREF+ VREF- D A
D D D D VREF+ VREF- A A
D D D A VREF+ VREF- A A
D D A A VREF+ VREF- A A
A A A A VREF+ VREF- A A
2 RA0/AN0
3 RA1/AN1
4 RA2/AN2/VREF-
5 RA3/AN3/VREF+
7 RA5/SS/AN4
8 RE0/RD/AN5
9 RE1/WR/AN610 RE2/CS/AN7
• Como AN4, AN5, AN6 e AN7 compartilham
o pino com outras duas funções, eles são
usados por menos opções de PCFG.
ENTRADA ANALÓGICA3
9625/04/2017
VREFAnalog reference voltage
VREF-
VREF+
• Analog reference voltage.
• Tensão de referência para o conversor AD.
• VREF+ padrão: VDD.
• VREF- padrão: VSS.
25/04/2017
17
ENTRADA ANALÓGICA3
9725/04/2017
VREF
• Todo conversor A/D requer referência mínima e máxima.
• Sem essa referência não há como realizar as
comparações, etapa fundamental na conversão A/D.
• O nome “analógico” vem de “analogia”, um sinal
analógico tem seu valor baseado em referências, o que
não acontece com o digital.
• Geralmente definem-se VREF+ e VREF-.
ENTRADA ANALÓGICA3
9825/04/2017
Seleção das entradas
VREF-
VREF+
Entrada
10
9
8
7
5
4
3
2
ENTRADA ANALÓGICA3
9925/04/2017
VREF
*Código segundo tabela anterior.
PC
FG
3
PC
FG
2
PC
FG
1
PC
FG
0
41*
DEC
VREF
Entrada
Pino 4/5analog
21
DEMUX
ENTRADA ANALÓGICA3
10025/04/2017
VREF
analog
21DEMUX
PC
FG
3
PC
FG
2
PC
FG
1
PC
FG
0
41
DEC A
Entrada
VREF-
Pino 4
AN2
A
PC
FG
3
PC
FG
2
PC
FG
1
PC
FG
0
41
DEC B
Entrada
VREF+
Pino 5
B
AN3
0
1
0
1
analog
21DEMUX
ENTRADA ANALÓGICA3
10125/04/2017
VREFPCFG3
:PCFG0
AN3
RA3
AN2
RA2
011x D D
1110 D D
0100 A D
0010 A A
1001 A A
0000 A A
0101 VREF+ D
0011 VREF+ A
1010 VREF+ A
0001 VREF+ A
1111 VREF+ VREF-
1101 VREF+ VREF-
1100 VREF+ VREF-
1011 VREF+ VREF-
1000 VREF+ VREF-
PCFG3
:PCFG0 A B011x 0 0
1110 0 0
0100 0 0
0010 0 0
1001 0 0
0000 0 0
0101 1 0
0011 1 0
1010 1 0
0001 1 0
1111 1 1
1101 1 1
1100 1 1
1011 1 1
1000 1 1
• Agora é só efetuar a síntese da função e construir o
circuito lógico que direciona o sinal ou para a entrada
de referência ou para a entrada do conversor.
ENTRADA ANALÓGICA3
10225/04/2017
VREF AN7
AN6AN5
AN4AN3
AN2AN1
AN0
Usando VREF+
Usando VREF-
Não usando VREF+
Não usando VREF-
Entrada
10
9
8
7
5
4
3
2
Pino 5
Pino 4
25/04/2017
18
ENTRADA ANALÓGICA3
10325/04/2017
VREF
PCFG3
:PCFG0
AN3
RA3
0001 VREF+
0011 VREF+
0101 VREF+
1000 VREF+
1010 VREF+
1011 VREF+
1100 VREF+
1101 VREF+
1111 VREF+
PCFG3
:PCFG0
AN2
RA2
1000 VREF-
1011 VREF-
1100 VREF-
1101 VREF-
1111 VREF-
AN CHS2 CHS1 CHS0
2 0 1 0
3 0 1 1
• Se VREF+ e/ou VREF- sãoselecionados, <PCFG3:PCFG0>,
suas respectivas entradas não
devem ser selecionadas,<CHS2:CHS0>.
• Selecionando VREF+ e AN3, seobtém 3FFh.
• Selecionando VREF- e AN2, seobtém 000h.
Pino 7 Pino 8
ENTRADA ANALÓGICA3
10425/04/2017
Na conclusão da conversão AD
• Uma solicitação de interrupção é realizada.
• ADIF: A/D Interrupt Flag Bit
• PIR1<6> Peripheral Interrupts 1
• 0: Conversão A/D em andamento (reset default).
• 1: Conversão A/D concluída.
• ADIE: A/D Converter Interrupt Enable Bit
• PIE1<7> Peripheral Interrupts Enable Bits 1
• 0: Desabilita interrupção A/D (reset default).
• 1: Habilita interrupção A/D.
• O byte menos significativo do resultado é gravado em ADRESL.
• O byte mais significativo do resultado é gravado em ADRESH.
• O bit GO_DONE recebe “0”.
ENTRADA ANALÓGICA3
10525/04/2017
Amostra e retenção
http://www.synthesizers.com/q117f1.gif
• Sample and hold
• Todo conversor A/D possui, na
entrada, um circuito S/H.
• Trata-se de um registrador analógico.
• Um capacitor armazena a tensão.
• A tensão precisa ficar retida para o
processo de aproximações
sucessivas.
http://www.eecs.tufts.edu/~dsculley/tutorial/opamps/sampleAndHold.JPG
t
t
t
ENTRADA ANALÓGICA3
10625/04/2017
Aproximações sucessivas
1. Determine n, a quantidade de Bits do conversor.
2. Determine a faixa de valores analógicos válidos.
3. Determine o valor médio dessa faixa.
4. A entrada é maior do que essa média?
5. Sim: Bit n-1 = 1.
6. Não: Bit n-1 = 0.
7. Para o próximo bit (n-2):
8. Sim: Usar, apenas, a metade superior da faixa.
9. Não: Usar, apenas, a metade superior da faixa.
10.Repetir passos 2 a 9 até a obtenção do bit 0.
Vide exemplos
PWM4
PWM
10725/04/2017
PWM4
• Capture
• Compare
• PWM
CCP
10825/04/2017
Dois módulos:
• CCP1
• CCP2
• CCPx
• X {1;2}
25/04/2017
19
PWM4Modos de operação
• Três modos de operação.
• CCP – Capture/Compare/PWM.
• Dois módulos CCP: CCP1 e CCP2.
• CCP1 e CCP2 podem operar em modos diferentes.
• Na configuração PWM-PWM, os módulos operamà mesma frequência, pelo TMR2.
10925/04/2017
Modo Base de tempo
Capture TMR1
Compare TMR1
PWM TMR2
PWM4
11025/04/2017
Modos de operação
<CCPxM3:CCPxM2> Modo
00 Desligado
01 Capture
10 Compare
11 PWM
reset default
CCPxCON
PWM4Pinagem na PIC
CCP2
CCP1
11125/04/2017
Multiplexação
Saídas PWM
• Os pinos do módulo devem
ser configurados como saída.
• TRISC<1> = 0 PWM2
• TRISC<2> = 0 PWM1
PWM4SFR’s
• CCPR1: Registrador de 16 bits.
• CCPR2: Registrador de 16 bits.
• CCPRx: Registrador de 16 bits.
• No modo PWM, são usados registradores de 10 bits.
11225/04/2017
PWM4SFR’s
• CCPR1 Registrador de 16 bits
• CCPR2 Registrador de 16 bits
• CCPR1L Capture/Compare/PWM Register1 (LSB) 015h
• CCPR1H Capture/Compare/PWM Register1 (MSB) 016h
• CCPR2L Capture/Compare/PWM Register2 (LSB) 01Bh
• CCPR2H Capture/Compare/PWM Register2 (MSB) 01Ch
• CCP1CON Capture/Compare/PWM Control Register1 017h
• CCP2CON Capture/Compare/PWM Control Register2 01Dh
• PR2 Timer2 Module’s Period Register 092h
• TMR2 Timer2 Module’s Register 011h
• T2CON Timer2 Control Register 012h
11325/04/2017
PWM4CCP1CON e CCP2CON
• CCPx Control Register .
• <CCPxX:CCPxY> Bits menos significativos PWM.
• <CCPxX:CCPxY> são usados apenas no modo PWM,
não são usados nos modos capture e compare.
• <CCPxM3:CCPxM0> : Modo de operação.
• 11XXb: Modo PWM.
• Em alguns modelos, esses bits são chamados de<DCx1:DCx0>.
11425/04/2017
25/04/2017
20
PWM4
11525/04/2017
Interação entre os módulos CCP1 e CCP2
CCP1 CCP2 InteraçãoPWM PWM Mesma base de tempo
PWM Capture NenhumaPWM Compare Nenhuma
Capture PWM Nenhuma
Compare PWM Nenhuma
PWM4DC<9:0>
• Dutty-Cycle Register
• Em eletricidade, dutty-cycle é um número entre 0% e 100%.
• Na PIC, DC significa uma palavra de comparação.
• DC é uma palavra de 10 bits, DC<9:0>.
• DC<9:0> representa a entrada “analógica” do PWM.
• DC<9:0> quantiza um valor analógico em 1024 níveis.
• Os oito bits mais significativos, DC<9:2>, são registradosem CCPRxL<7:0>.
• Os dois bits menos significativos, DC<1:0>, são registradosem CCPxX e CCPxY, CCPxCON<5:4>.
11625/04/2017
PWM4
11725/04/2017
015
CCPRx<15:0>
09
DC<9:0>
CCPRLx<7:0>CCPRHx<7:0>0707
07
CCPxCON<7:0>
DC<9:0>
• Não se trata de
uma cópia.
• Os bits foram,
apenas, dispostos
de forma agrupada.
PWM4
11825/04/2017
DC<9:0>
• DC<9:2> = CCPRxL<7:0>.
• DC<1:0> = CCPxCON<5:4>.
• DC<1> = CCPxX.
• DC<0> = CCPxY.
PWM4
11925/04/2017
DC<9:2>
• Para simplificar a programação, principalmente
quando se trabalha em conjunto com o conversor
A/D, é possível lidar, apenas, com 8 bits.
• Esta palavra de 8 bits é chamada de DC<9:2> ouCCPRxL<7:0>.
• Em muitas situações, é possível lidar com
DC<9:2> sem que ocorra nenhum erro de
cálculo, como será mostrado mais adiante.
• Em outras situações, há erro de cálculo, mas
esse erro é desprezível.
• Poucas são as situações práticas onde é,
realmente, necessário lidar com DC<9:0>.
PWM4
12025/04/2017
PWM de 10 bits – DC<9:0>
• Informações meramente introdutórias.
• Ver próximos slides sobre obtenção de 0% e 100%.
• Pequenos erros nestes valores serão evidenciados.
DC%real
10 bitsaproximado
para 8 bits
Mínimo
0%
000h
0000d0000000000b
00h
000d00000000b
Máximo
100%
3FFh
1023d1111111111b
FFh
255d11111111b
25/04/2017
21
PWM4
12125/04/2017
• Usando 8 bits, o máximo valor analógico correspondente é
menor do que usando 10 bits.
• Isso ocorre porque os dois bits menos significativos são zero
(reset default).
• Os valores de DC<9:2>, em uma análise de 8 bits,
correspondem aos valores de DC<9:0> divisíveis por quatro.
PWM de 10 bits – DC<9:0>
Níveis
analógicos
real
10 bitsaproximado
para 8 bits
Mínimo000h
0000d0000000000b
000h
000d000000000b
Máximo3FFh
1023d1111111111b
3FCh
1020d1111111100b
PWM4
12225/04/2017
DC – Faixa de valores admitidos
000h
3FFh
00h
FFh
01h
02h
FEh
001h002h003h004h005h
3FEh3FDh
3FCh3FBh
3FAh
10-bit DC
006h007h
008h
DC<9:0>
DC<9:2>DC<1:0>=00b
1023d
1022d1021d
10201019d
1018d
255d
254d
PWM4Controle com 10 bits
• DC<9:0> está apto a receber uma entrada analógica
ADRES<9:0>.
• Fazendo DC<9:0> = f(ADRES<9:0>) é possível
implementar um sistema de controle em malha
fechada com resolução de 10 bits, onde “f” é a
função de transferência em malha aberta.
• CCPRxL<7:0> = ADRESH<7:0>
• CCPxCON<5:4> = ADRESL<7:6>
• É preciso configurar ADCON1<7> = 0 (left justified).
12325/04/2017
PWM4Controle de malha fechada
12425/04/2017
Atuador
Sensor
PWMAD F(s)
PWM4Controle com 10 bits
12525/04/2017
PWM4Controle com 8 bits
• DC<9:2> está apto a receber ADRESH<7:0>.
• Fazendo DC<9:2> = f(ADRESH<7:0>) é possível
implementar um sistema de controle em malha fechada
com resolução de 8 bits, onde “f” é a função de
transferência em malha aberta.
• Configurar ADCON1<7> = 0.
• CCPRxL<7:0> = ADRESH<7:0>
• A vantagem em usar 8 bits é que a função de transferência
é aplicada sobre uma única palavra, o que reduz o tempo
de cálculo à metade, bem como a quantidade de linhas deinstrução pertinentes a essa função.
12625/04/2017
25/04/2017
22
PWM4Controle com 8 bits
12725/04/2017
PWM4
12825/04/2017
Geração do sinal PWM
DC<9:0>
10-bit PWMt
t
Situação real – 10 bits
DC<9:2>
8-bit PWMt
t
Aproximação – 8 bits
PWM4Registrador de retenção
12925/04/2017
• Holding register.
• Durante a rampa, a palavra que retrata o valor analógico a ser
modulado não pode sofrer alteração.
• Havendo alteração, podem haver mais de um ponto de
cruzamento em uma mesma rampa.
• A presença de dois ou mais pontos de cruzamento pode gerar
um dutty-cycle não proporcional ao valor analógico desejado.
• CCPRxL<7:0> é copiado em CCPRxH<7:0>, que age como
um registrador de retenção.
• A letra “h” de CCPRxH significa “hold”.
• CCPxCON<5:4> também é copiado.
• A cópia é efetuada no TOSC em que uma nova rampa se inicia.
PWM4Registrador de retenção
13025/04/2017
• O registrador de retenção não está acessível ao usuário,
não suporta nem leitura nem escrita.
• Nos modos capture e compare, CCPRxH<7:0> age como
byte mais significativo (high) e está acessível ao usuário.
• Os dois bits menos significativos são obtidos a partir de
dois FF’s adicionais específicos para esta finalidade.
PWM4
13125/04/2017
Registrador de retenção10-bit
Registrador de retenção
DC<9:0>
10-bit PWM
Cópia para o
registrador de retenção
Slave
Master
t
t
PWM4
13225/04/2017
Registrador de retenção
t
t
DC<9:0>
tPWM
Holding Register<9:0>
• DC<9:0> pode receber valores imprevisíveis.
25/04/2017
23
PWM4
13325/04/2017
Registrador de retenção
10-bit
REG
8-bitCCPRxL
CCPxX
CCPxY
TCY
DCCCPR<8>
CCPR<9>
CCPR<7:0>
PWM4
13425/04/2017
• O passo de contagem do TMR2<9:0> é quatro
vezes rápido do que o do TMR2<7:0>, mas a
contagem completa leva o mesmo tempo.
• O período de TMR2<9:0> é igual ao de TMR2<7:0>.
• Trata-se do mesmo contador, mas com dois bits
menos significativos adicionais.
• O passo de contagem do TMR2<7:0> pode ser
fragmentado em quatro partes.
• Isso é feito para que o PWM tenha uma resolução
máxima de dez bits.
• A comparação é feita entre DC<9:0> e TMR2<9:0>.
• Não é possível fazer comparação com palavras de
tamanho de bits diferentes.
TMR2<9:0> – Dez bits de contagem
PWM4
FFh
00h
000h
004h
008h
01h
02h
001h
002h003h
TCY
1:1
TOSC
1:1
FEh
13525/04/2017
TMR2<9:0>
TMR2<7:0>
TMR2<9:0> – Geração da rampa de 10 bits3FFh
3FEh3FDh
3FCh3FBh
3FAh
1023d
1022d1021d
10201019d
1028d
Prescaler ratio 1:1
PWM4
13625/04/2017
TMR2<9:0> – Passo fragmentadoExemplo
00h
000h
Passo fragmentadode TMR2<7:0>
004h
008h
01h
02h
TMR2<9:0>
TMR2<7:0>
DC<9:0>
03h
00Ch
PWM4
8-bit TMR2<7:0>
10-bit TMR2<9:0>
00h
000h
DC<9:0>
Passo fragmentadode TMR2<7:0>
004h
008h
01h
02h
tPWMTCY
1:1
TCY
1:1
TCY
1:1
3/4TCY
1:1
Largura de Pulso
13725/04/2017
TMR2<9:0> – Determinação da largura de pulsoExemplo
03h
00Ch
PWM4
00h
000h
DC<9:0>=00Fh=0000001111b
004h
008h
01h
02h
t13825/04/2017
TMR2<9:0> – Determinação da largura de pulso
00ChDC<9:0>=00Ch=0000001100b
CCPRxL=00000011b=03h
03h
CCPRxL=00000011b=03h
t10-bit PWM
8-bit PWM
Exemplo
25/04/2017
24
PWM4
13925/04/2017
TMR2<9:0> – Determinação da largura de pulsoExemplo
00h
000h
004h
008h
01h
02h
t
00Ch
03h
t10-bit PWM
8-bit PWM
• No PWM de 10 bits, há mais
opções para a escolha do
ciclo ativo ou largura de pulso.
PWM4
14025/04/2017
• Os dois bits mais significativos do contador prescalerformam os dois bits menos significativos de TMR2<9:0>,
para que seja comparado com CCPRx<9:0>.
• Mesmo se o prescaler ratio for de 1:1, dois bits são
fornecidos, neste caso, por dois FF’s extras.
TMR2<9:0> – Prescaler
PWM4
14125/04/2017
3FFh
000h
1:1 TOSC
1:4 TCY
1:16 4TCY
<T2CKPS1:T
2OUTPS0> Rate
00 1:101 1:41x 1:16
1:1 TCY
1:4 4TCY
1:16 16TCY
TMR2<9:0> – Prescaler
TMR2<9:0>
PWM4TMR2<9:0> – Prescaler 1:16
14225/04/2017
TMR2<9:2>
<1:0>
<9> <8> <7> <6> <5> <4> <3> <2>
Contador Prescaler – 4-bit
TMR2<1:0>
<1> <0>
LSbMSb
TCY
PWM4TMR2<9:0> – Prescaler 1:4
14325/04/2017
TMR2<9:2>
TCY
<1:0>
<9> <8> <7> <6> <5> <4> <3> <2>
<1> <0>
Contador Prescaler – 2-bit
TMR2<1:0>
LSb
MSb
PWM4TMR2<9:0> – Prescaler 1:1
14425/04/2017
TMR2<9:2>
<9> <8> <7> <6> <5> <4> <3> <2>
FF’s extras <1:0>
<1> <0>
TOSC
TCY
LSb
MSb
TMR2<1:0>
25/04/2017
25
PWM4Modo PWM – Módulo 1
14525/04/2017
• O circuito gerador do sinal PWM é composto de
duas partes:
1. Controle do período ou gerador da rampa.
2. Controle do dutty-cycle.
• A primeira parte integra o TMR2 e é usada pelos
dois módulos PWM, ou seja, as duas saídas PWM
usam a mesma rampa.
• A segunda parte integra os módulos CCP e pode
possuir configurações diferentes para cada módulo.
• A primeira parte emprega 8 bits.
• A segunda parte emprega 10 bits.
PWM4
14625/04/2017
TMR2<9:2> – Comparador com PR2<7:0>
TMR2<9:2>
8-bit
COMPARATOR
PR2<7:0>
PWM4
14725/04/2017
TMR2<9:0> – Comparador com DC<9:0>
DC<9:2> DC<1:0>CCPRxL<7:0> CCPxCON<5:4>
CCPRxH<7:0> 2 FF´s
PWM4
14825/04/2017
TMR2<9:0> – Comparador com DC<9:0>
10-bit
COMPARATOR
FF´sCCPRxH<7:0>
TMR2<9:2> FF´s
PWM4
14925/04/2017
As duas comparações
10-bit
COMPARATOR
FF´sCCPRxH<7:0>
8-bit
COMPARATOR
PR2<7:0>
TMR2
reset
set
FF´s
PWM4
15025/04/2017
O controle da saída
Tris bit
Pino 16 ou 17
Output
Input
FF
RS
R
S
CAPTURE
10-bit
COMPARATOR
FF´sCCPRxH<7:0>
8-bit
COMPARATOR
PR2<7:0>
TMR2
reset
set
FF´s
• Quando o módulo CCP está desligado,
a saída do FF RS assume valor zero.
25/04/2017
26
PWM4
TRISC<2>
Pino 17
Output
Input
FFRS 1
R
S
CAPTURE 1
10-bit
COMPARATOR 1
FF´sCCPR1H<7:0>
8-bit
COMPARATOR
PR2<7:0>
TMR2
FF´s
TRISC<1>
Pino 16
Output
Input
FFRS 2
R
S
CAPTURE 2
CCP1
CCP2
10-bit
COMPARATOR 2
FF´sCCPR2H<7:0>
15125/04/2017
Os dois módulos
PWM4
25/04/2017 152
O controle da saída
Tris bit
FF
RS
R
S
PWM
DC<9:0>
t
t
t
t
PWM
R
S
10-bit
COMPARATOR
FF´sCCPRxH<7:0>
8-bit
COMPARATOR
PR2<7:0>
TMR2
reset
set
FF´s
PWM4Modo PWM – Módulo 1
15325/04/2017
(*)
10-bit
10-bit
10-bit
8-bit
8-bit
10-bit
0: Saída - Ligado1: Entrada - Desligado
Buffer 3S
PWM4Modo PWM – Módulo 1
Controle do período
Controle do dutty-cycle
15425/04/2017
(*)
10-bit
10-bit
10-bit
10-bit
8 bits
8 bits
PWM4Controle de 8 bits do período
PR2<7:0>
FFh
00h
15525/04/2017
• A linha inclinada representa o SFR TMR2<7:0>.
• Esta é uma propriedade de TMR2<7:0> e não do CCPx.
• O reset em TMR2 ocorre após a conclusão do passo do match.
8-bit
8-bit
8-bit
TMR2 Reset
t
t
PWM4
25/04/2017 156
PR2<7:0>
TPWM
• É realizada a operação TMR2<7:0> – PR2<7:0>.
• Quando TMR2<7:0> sofre um reset, o FF RS sofre um set.
• Os dois bits extras (TMR2<1:0>) também são reiniciados.
• O ciclo PWM inicia em nível alto.
t
t
Controle de 8 bits do período
7 0
<7:0>
7 0
7 0
Reset
25/04/2017
27
PWM4Controle de 10 bits do dutty-cycle
15725/04/2017
• A linha inclinada representa TMR2<9:0>.
• A linha horizontal representa DC<9:0>.
DC<9:0>
PWMt
t
PWM4Controle de 10 bits do dutty-cycle
15825/04/2017
• O FF RS set ocorre após o passo onde ocorre match.
• O FF RS set observa o match de 8 bits entre TMR2<7:0> e
PR2<7:0>.
• O FF RS reset ocorre no início do passo onde ocorre o match.
• O FF RS reset observa o match de 10 bits entre TMR2<9:0> e
DC<9:0>.
• A saída Q do FF RS é o próprio sinal PWM.
DC<9:0>
PWM
t
t
PWM4
FF
RS
SE
T
DC<9:0>
FF RS Q
PWM
PR2<7:0>
FFh
FF
RS
RE
SE
T
TPWM
00h
Controle por 8 bits
Controle por 10 bits
15925/04/2017
t
t
Controle de 10 bits do dutty-cycle
PWM4
16025/04/2017
Fora do dutty-cycleDC<9:0>TMR2<9:0>
PWM = 0
Dentro do dutty-cycleDC<9:0>maior que TMR2<9:0>
PWM = 1
DC<9:0>
(*)
t
t
<9:2> <1:0>
Controle de 10 bits do dutty-cycle
PWM4
• Período: Base de tempo
16125/04/2017
<9:0><7:0>
<7:0>
DC<9:0>
Tempo alto
<7:0>
<7:0>
Controle de 10 bits do dutty-cycle
Controle por 8 bits
Controle por 10 bits
PWM4
If TMR2<7:0> = PR2<7:0> + 1
Then TMR2<9:0> = 0h
End
16225/04/2017• Os dois bits extras também são reiniciados.
Controle de 10 bits do dutty-cycle
25/04/2017
28
PWM4
If TMR2<9:0> < DC<9:0>
Then PWM = 1b
Else PWM = 0b
End
16325/04/2017
Controle de 10 bits do dutty-cycle
PWM4
16425/04/2017
Os dois módulos operando simultaneamente
DC1<9:0>
PWM1
t
t
PWM2
t
DC2<9:0> CCP1
CCP2
PWM4
16525/04/2017
Resolução PWM
• É desejável aumentar a resolução PWM quando se
deseja realizar um controle preciso.
• Uma maior resolução implica em maior quantidade de
valores possíveis para DC.
• O aumento na resolução implica na diminuição da
frequência PWM.
• Baixas frequências podem ser usadas quando algum
elemento físico do sistema exerce a função de filtro
passa-baixas, encontrado em sistemas de alta inércia.
• Exemplos: Lâmpadas incandescentes, motores, fornos.
• Outras situações, porém, podem requerer alta
frequência de operação, como, por exemplo,
aplicações em telecomunicações.
PWM4
• O número de passos de TMR2<7:0> é dado por PR2+1.
• O aumento de PR2+1 aumenta a resolução PWM.
• A diminuição de PR2+1 aumenta a frequência PWM.
• Na verdade, a diminuição de PR2+1 aumenta a frequência
de TMR2, que, por sua vez, é a base de tempo do PWM.
• A variação na resolução PWM em função de PR2+1 não é
linear.
• A variação do período PWM em função de PR2+1 é linear.
16625/04/2017
Resolução PWM
PWM4Resolução PWM – Configuração do PR2
16725/04/2017
• 10 bits: 1111_1111b PR2 1000_0000b
• 9 bits: 0111_1111b PR2 0100_0000b
• 8 bits: 0011_1111b PR2 0010_0000b
• 7 bits: 0001_1111b PR2 0001_0000b
• 6 bits: 0000_1111b PR2 0000_1000b
• 5 bits: 0000_0111b PR2 0000_0100b
• 4 bits: 0000_0011b PR2 0000_0010b
• 3 bits: 0000_0001b PR2 0000_0001b
Binário
• A resolução PWM é dada pela quantidadede bits usados em PR2 mais 2.
PWM4
• 10 bits: FFh PR2 80h
• 9 bits: 7Fh PR2 40h
• 8 bits: 3Fh PR2 20h
• 7 bits: 1Fh PR2 10h
• 6 bits: 0Fh PR2 08h
• 5 bits: 07h PR2 04h
• 4 bits: 03h PR2 02h
• 3 bits: 01h PR2 01h
16825/04/2017
Resolução PWM – Configuração do PR2Hexadecimal
• A resolução PWM é dada pela quantidadede bits usados em PR2 mais 2.
25/04/2017
29
PWM4Resolução PWM – DC<9:0> máximo
16925/04/2017
• O DC pode assumir diversos
valores em um mesmo programa.
• Dentre esses valores, o maior
deles determina a resolução PWM.
• 10 bits: 11_1111_1111b DCMÁX 10_0000_0000b
• 9 bits: 01_1111_1111b DCMÁX 01_0000_0000b
• 8 bits: 00_1111_1111b DCMÁX 00_1000_0000b
• 7 bits: 00_0111_1111b DCMÁX 00_0100_0000b
• 6 bits: 00_0011_1111b DCMÁX 00_0010_0000b
• 5 bits: 00_0001_1111b DCMÁX 00_0001_0000b
• 4 bits: 00_0000_1111b DCMÁX 00_0000_1000b
• 3 bits: 00_0000_0111b DCMÁX 00_0000_0100b
Binário
X,Y
PWM4Resolução PWM – DC<9:0> máximo
• 10 bits: 3FFh DCMÁX 200h
• 9 bits: 1FFh DCMÁX 100h
• 8 bits: 0FFh DCMÁX 080h
• 7 bits: 07Fh DCMÁX 040h
• 6 bits: 03Fh DCMÁX 020h
• 5 bits: 01Fh DCMÁX 010h
• 4 bits: 00Fh DCMÁX 008h
• 3 bits: 007h DCMÁX 004h
17025/04/2017
Hexadecimal
PWM4
17125/04/2017
Resolução do conversor A/D e do PWMUso da faixa total
• Para usar 10 bits, a faixa de valores analógicos deve
superar a metade mais baixa da faixa total admissível.
• Para usar 9 bits, a faixa de valores analógicos deve
estar na metade mais baixa da faixa total admissível.
• Para usar 8 bits, a faixa de valores analógicos deve
estar no quarto mais baixo da faixa total admissível.
• Para usar 7 bits, a faixa de valores analógicos deve
estar no oitavo mais baixo da faixa total admissível.
• E assim por diante.
PWM4
17225/04/2017
Efeito da frequência
t
DC<9:0>
tPWM
• PR2 = FFh
• TMR2<7:0> máx. = FFh (256 passos)
• TMR2<9:0> máx. = 3FFh (1024 passos)
• DC<9:2> máx. = FFh
• DC<9:0> máx. = 3FFh
Máximo período
PWM4
17325/04/2017
Efeito da frequência
t
tPWM
DC<9:0>
• PR2 = 7Fh
• TMR2<7:0> máx. = 7Fh (128 passos)
• TMR2<9:0> máx. = 1FFh (512 passos)
• DC<9:2> máx. = 7Fh
• DC<9:0> máx. = 1FFh
Metade do máximo período
PWM4Conversão de 8 bits para 10 bits
17425/04/2017
• x8bit: Número de 0 a 255.
• x10bit: Número de 0 a 1023.
• A adição de 1 se deve à proporcionalidade sobre
as faixas, e não sobre os valores.
• A conversão contrária, de 10 para 8, pode gerar
um número fracionário.
11018
131
bitxbitx
FFFFh
11018
110231255
bitxbitx
dd
11018
22 108
bitxbitx
11018
400100
bitxbitx
hh
11018
1024256
bitxbitx
dd
25/04/2017
30
PWM4Obtenção de dutty-cycle de 100%
• Se DC<9:0> for superior a PR2<7:0>4, então a
situação em que TMR2<9:0> = DC<9:0> jamais será
satisfeita.
• A saída PWM jamais vai a zero.
• Isto permite a obtenção de um dutty-cycle de 100%.
• Trata-se de um desrespeito à regra de que o valor
de comparação jamais deva exceder a rampa.
• Esta regra vale para o PWM gerado analogicamente.
• Este desrespeito, porém, permite compensar uma
limitação da arquitetura do PWM da PIC, que
impediria a obtenção dos 100%.
17525/04/2017
PWM4
17625/04/2017
Obtenção de dutty-cycle de 100%
• Para PR2<7:0>=FFh (reset default), DC<9:2> máximo (FFh)
faz com que a saída PWM vá a zero quando TMR2<7:0> =
FFh por causa do match no último passo de contagem.
• Isso leva a um dutty-cycle de 255/256.
• DC% = 99,609375%.
• Para PR2=FEh, o DC<9:2> máximo (FFh) faria com que o
sinal PWM sofresse um reset em função do match de dez bitsno momento em que TMR2<7:0> atinge FFh, porém
TMR2<7:0> conta até FEh, o match não ocorre, o reset não é
efetuado, e o sinal PWM permanece em 1 por todo o período.
8 bits
PWM4
17725/04/2017
Obtenção de dutty-cycle de 100%
• Para PR2<7:0>=FFh (reset default), DC<9:0> máximo (3FFh)
faz com que a saída PWM vá a zero quando TMR2<9:0> =
3FFh por causa do match no último passo de contagem.
• Isso leva a um dutty-cycle de 1023/1024.
• DC% = 99,90234375 %.
• Para PR2=FEh, o DC<9:0> máximo (3FFh) faria com que o
sinal PWM sofresse um reset em função do match de dez bitsno momento em que TMR2<9:0> atinge 3FFh, porém
TMR2<9:0> conta até 3FBh, o match não ocorre, o reset não
é efetuado, e o sinal PWM permanece em 1 por todo o
período.
10 bits
PWM4
17825/04/2017
• O máximo DC<9:0> é de 3FFh.
• O máximo DC<9:2> é de FFh.
• Não é possível obter dutty-cycle de 100% com PR2=FFh.
• Mas é possível obter dutty-cycle de 100% com PR2<FFh.
• Escolher um DC<9:0> maior ou igual a (PR2+1)4.
• Escolher um DC<9:2> maior ou igual a (PR2+1).
• A saída PWM jamais vai a zero e o dutty-cycle é de 100%.
Obtenção de dutty-cycle de 100%
PWM4
17925/04/2017
Dutty-cycle de 100%
DC<9:0>
PWM
PR2
FFh
FF
RS
SE
T
00ht
tFF
RS
SE
T
PWM4
18025/04/2017
• Quando a rampa é reiniciada, o FF RS recebe o
comando set.
• Quando TMR2<9:0> encontra DC<9:0>, o FF RS recebe
o comando reset no mesmo passo de contagem.
• Quando DC<9:0> = 000h, os dois fenômenos ocorrem
no mesmo passo, o que implica em dar, ao FF RS, os
comandos set e reset ao mesmo tempo, o que é
proibido.
• Graças a um circuito adicional, quando DC<9:0> =000h, excepcionalmente, PWM não é levado a 1, isto
permite a obtenção de um dutty-cycle de 0%.
Dutty-cycle de 0%
25/04/2017
31
PWM4
18125/04/2017
Dutty-cycle de 0%
t
DC<9:0>
t
DC<9:0>
Dutty-cycle > 0%
Dutty-cycle 0 0%
PWM4
18225/04/2017
Dutty-cycle de 0%
Sugestão
PWM4
18325/04/2017
Máximo TMR2<9:0> em função de PR2<7:0>
• PR2<7:0> é um parâmetro de programação.
• Um DC% de 100% é obtido com DC<9:0>=MáxTMR2<9:0>+1.
• Como descobrir o valor de MáxTMR2<9:0>?
• Veja o exemplo sugeridos.
Vide exemplos
PWM4
• Trata-se do cálculo do período do TMR2<7:0>.
• Até 10 bits de resolução na saída PWM.
• O período é dado por PR2<7:0>.
• O Duty-Cycle é dado por CCPRxL e CCPxCON<5:4>.
• CCPRxL<7:0>: Oito bits mais significativos.
• CCPxCON<5:4>: Dois bits menos significativos.
• DC<9:0>: Todos os 10 bits.
18425/04/2017
Cálculo do período PWM
PWM4
18525/04/2017
Controle do período
• TOSC: Período do relógio.
• TCY: Período de instrução.
• TSTEP: Tempo do passo de contagem.
• TRAMP: Tempo de uma contagem completa.
PRESCALER
RATIOCY
STEPRAMP
CY
PRESCALER
RATIOSTEP
OSCCY
TMRPRT
PRpassos
TpassosT
TTMRT
TT
212rampapor s
12
2
4
PWM4
18625/04/2017
Controle do período
12
2
8
8
PRpassos
TTMRT
bit
CY
PRESCALER
RATIO
bit
STEP
412
4
2
10
10
PRpassos
TTMRT
bit
CY
PRESCALER
RATIObit
STEP
bit
RAMP
bit
RAMP
STEPRAMP
TT
TpassosT
108
25/04/2017
32
PWM4
18725/04/2017
Controle do período
CY
PRESCALER
RATIOPW M
STEPPW M
RAMPPW M
TTMRPRT
TpassosT
TT
212
sT
ff
TMRPR
ff
TTMRPRf
CY
CYPW M
PRESCALER
RATIO
CYPW M
CY
PRESCALER
RATIO
PW M
´
212
212
1
PWM4Cálculo do dutty-cycle
18825/04/2017
12
2:9
2:9
8
8
8
PR
DCCycleDutty
passos
DCCycleDutty
bit
PW M
bit
bit
PW M
412
0:9
0:9
10
10
10
PR
DCCycleDutty
passos
DCCycleDutty
bit
PW M
bit
bit
PW M
PWM4Cálculo do dutty-cycle
18925/04/2017
TMR2bit -8 do passo um de tempo228 PRESCALER
RATIOCY
bit
step TMRTtTMR
PRESCALER
RATIOCY
bit
PWM
bit
step
bit
PWM
TMRTDCCycleDuttyt
tTMRDCCycleDuttyt
22:9
22:9
bits 8 - alto nível em tempo
8
88
PRESCALER
RATIOOSC
bit
PW M
bit
step
bit
PW M
bit
step
bit
PW M
TMRTDCCycleDuttyt
tTMRDCCycleDuttyt
tTMRDCCycleDuttyt
20:9
20:9
20:9
bits 10 - alto nível em tempo
10
1010
8
4110
TMR2bit -10 do passo um de tempo2210 PRESCALER
RATIOOSC
bit
step TMRTtTMR
PWM4Cálculo do dutty-cycle
19025/04/2017
412
0:9
2412
20:9
10
10
PR
DCCycleDutty
TMRTPR
TMRTDCCycleDutty
bit
PWM
PRESCALER
RATIOOSC
PRESCALER
RATIOOSCbit
PWM
12
2:9
212
22:9
8
8
PR
DCCycleDutty
TMRTPR
TMRTDCCycleDutty
bit
PW M
PRESCALER
RATIOCY
PRESCALER
RATIOCYbit
PW M
PW M
PW MPW M
T
CycleDuttytCycleDutty
PWM4
19125/04/2017
Quando DC > máxTMR2+1
12
121
%10012
%100
8
%100
8
%100
8
%100
PRDC
PR
DC
PR
DC
bit
bit
bit
• DC% não pode superar 100%.
• Se DC > DC100%, então DC% = 100%.
%100%
%100%
MÁXDC
passos
DCDC
412
4121
%100412
%100
10
%100
10
%100
10
%100
PRDC
PR
DC
PR
DC
bit
bit
bit
PWM4
19225/04/2017
Quando DC > máxTMR2+1
000h
004h
001h
002h003h
DC<9:0>
00h
04h
01h
02h03h
DC<9:2>
Vide exemplos
25/04/2017
33
PWM4
19325/04/2017
Fazendo PR2=7Fh
• Usando PR2<7:0>=7Fh, a resolução é de 9 bits.
• O máximo TMR2<9:0> é 1FFh.
• É possível fazer DC<9:0> > 1FFh, basta configurar
DC<9:0> = 200h ou mais.
• É possível obter DC%=100%.
• Porém, se DC<9:0> > 1FFh, a resolução é de 10 bits.
• Pergunta: A resolução PWM é de 9 ou 10 bits?
• Usando PR2<7:0>=FFh, a resolução é de 10 bits.
• O máximo TMR2<9:0> é 3FFh.
• Não é possível fazer DC<9:0> > 3FFh.
• Não é possível obter DC%=100%.
PWM4
19425/04/2017
Os casos de 0% e de 100%
t
t
dutty-cycle = 50%
t
t
dutty-cycle = 0%
t
t
dutty-cycle = 100%
PWM4
19525/04/2017
Os casos de 0% e de 100%
• Em 0% e em 100% o sinal PWM é contínuo.
• Não há determinação de frequência nem de período.
• Não há pulso.
• Se não há pulso, não pode haver modulação por largura de
pulso.
• Em 0% e em 100%, não há PWM.
• Por estar fora do conceito de PWM, os bits usados para
100% não são considerados no cálculo da resolução PWM.
• Um PWM analógico não aceita 0% nem 100%.
Vide exemplos
PWM4
19625/04/2017
DC<9:0> – Divisões
• Pode-se dividir o DC<9:0> em meias, terças,
quartas, quintas, e assim por diante.
• Em meias, há três valores, em terças há
quatro, em quartas cinco, e assim por diante.
• A divisão em quartas é suficiente para
grande parte das aplicações práticas para
controle de tensão média em malha aberta.
PWM4
19725/04/2017
DC<9:0> – Divisões – Escolha do PR2
• O valor de PR2 deve ser o maior possível, a fim de
que se obtenha a menor frequência.
• PR2 somente deve ser pequeno em situações
específicas onde a frequência precisa ser alta ou
precisa ter um valor especificado por fatores
externos.
• Quanto menor for a frequência, menor é o consumo
de energia elétrica em tecnologia CMOS.
PWM4
19825/04/2017
DC<9:0> – Divisões – Escolha do PR2
• O uso de um PR2 alto garante uma melhor resolução
analógica do valor médio PWM.
• A resolução analógica não é a resolução em bits, ela, tal
como no conversor A/D, expressa o quanto da faixa
analógica permitida está sendo usada; quanto mais, melhor.
• O erro percentual, inerente a qualquer regulador de tensão,
é calculado sobre a faixa total de tensão admissível.
• O uso de uma pequena faixa implica em um alto erro
percentual, já que o erro absoluto é o mesmo da faixa total.
25/04/2017
34
PWM4
19925/04/2017
DC<9:0> – Divisões – Escolha do PR2
• Preferencialmente, deve-se usar, apenas, 8 bits,
DC<9:2>, e não 10 bits, DC<9:0>.
• Neste caso, o valor de PR2<7:0> deve ser tal que todos
os valores parciais de dez bits sejam divisíveis por 4, isto
é, os dois bits menos significativos, DC<1:0> são zero.
• Isto permite a obtenção de um programa assembly mais
simples sem a geração de erros de aproximação.
• Para conseguir isso, é preciso escolher o máximo valorde PR2<7:0>+1 e que seja divisível por n, as divisões.
• A máxima resolução analógica em DC<9:2> é observada
quando todos os oito bits são usados.
PWM4
20025/04/2017
DC<9:0> – Divisões – Construção das tabelas
• Na tabela de 8 bits, um dutty-cycle de 100% é obtido comDC<9:2> = PR2<7:0>+1.
• Se a divisão é em terças, n=3. se são quartas, n=4, e assim
por diante.
• PR2<7:0>+1 deve receber o máximo valor divisível por n.
• As linhas vão de 0/n, 1/n até n/n.
• O valor de 0/n é sempre zero.
• O valor 1/n é obtido com o valor de 100% dividido por n.
• Os demais valores são obtidos multiplicando o valor de 1/n
por números inteiros.
• Para a tabela de 10 bits, basta multiplicar estes valores por 4.
PWM4
20125/04/2017
14
passos2
1passos2
4
passospassos
10
8
108
bit
bit
bitbit
PR
PR
Passos de 8 bits e passos de 10 bits
• Quando o cálculo de PR2 fornece um número
fracionário, precisa ser arredondado para baixo.
1
4int2 100%DC
PR
Vide exemplos
PWM4
20225/04/2017
Arredondamento para 10 bits
000h
004h
001h
002h003h
DC100%<9:0>
00h
04h
01h
02h03h
DC100%<9:2>
Arredondamento para baixo - correto Arredondamento para cima - errado
match