34
25/04/2017 1 1 25/04/2017 Parte 4 PORTAS DE COMUNICAÇÃO 2 25/04/2017 1. DEFINIÇÃO 2. PORTA PARALELA 3. ENTRADA ANALÓGICA 4. PWM 5. PROGRAMAÇÃO PWM DEFINIÇÃO 1 3 25/04/2017 DEFINIÇÃO DEFINIÇÃO 1 4 25/04/2017 Significado de porta DEFINIÇÃO 1 5 25/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ÇÃO 1 6 25/04/2017 Tipos Entrada analógica. Saída analógica (somente DSP´s). Saída PWM. I/O digital. Paralela. Paralela escrava. Serial.

DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

  • Upload
    dongoc

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 2: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 3: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 4: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 5: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 6: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

.

Page 7: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 8: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 9: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 10: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 11: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 12: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 13: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-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

Page 14: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 15: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 16: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 17: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 18: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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}

Page 19: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 20: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 21: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 22: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 23: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 24: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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>

Page 25: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 26: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 27: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 28: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 29: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 30: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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%

Page 31: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 32: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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

Page 33: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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.

Page 34: DEFINIÇÃO 1 DEFINIÇÃO - ufsj.edu.br · SFR’s para comunicação paralela 2 PORTA PARALELA 25/04/2017 30 SFR SFR SFR SFR 6-bit 6 -bit8 SFR 3-bit 3-bit Pinos 8-bit PIC Data Bus

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