Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Aula - 10, Notas de aula de Mecatrônica

Acesso indireto à memória; Interface de Entrada e Saída - Parte 1: Modulo CCP - Captura, comparação e PWM

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 20/10/2010

alan-barbosa-9
alan-barbosa-9 🇧🇷

5

(2)

14 documentos

1 / 28

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Microprocessadores
Aula 10:
Acesso indireto à memória;
Interfaces de Entrada e Saída – Parte 1:
Módulo CCP
Captura, Comparação e PWM
Módulo CCP
Captura, Comparação e PWM
Referência para a aula:
1 Apostila: Instruções e Diretivas [Xerox];
2Folha de dados (Datasheet): PIC16F877 [Disponível na
internet, site da Microship];
3CAP. 5: SCHILDT, H. “C completo e total” [biblioteca];
Prof.: Edgar Campos Furtado
Sala: 217.2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Pré-visualização parcial do texto

Baixe Aula - 10 e outras Notas de aula em PDF para Mecatrônica, somente na Docsity!

Microprocessadores Aula 10:Acesso indireto à memória;Interfaces de Entrada e Saída – Parte 1: Módulo CCP^ –^ Captura, Comparação e PWMMódulo CCP^ –^ Captura, Comparação e PWM Referência para a aula: 1 – Apostila:^ Instruções e Diretivas [Xerox]; 2 –^ Folha de dados (Datasheet): PIC16F

[Disponível na

internet, site da Microship]; 3 –^ CAP. 5:^ SCHILDT, H. “C completo e total” [biblioteca];^ Prof.: Edgar Campos Furtado^ [email protected]^ Sala: 217.

ACESSO INDIRETO À MEMÓRIA DE DADOS Acesso direto à memória de dados:Primeiro seleciona-se o banco de registradores, por meio dos bits RP1 e RP0do STATUS, em^ seguida^ o^ registrador^ desejado

é^ acessado^ informando^ o endereço do mesmo na instrução (7bits). UFSJ – CAP© Edgar C. Furtado

AULA-

ACESSO INDIRETO À MEMÓRIA DE DADOS Acesso indireto à memória de dados:Primeiro o endereço do registrador desejado é movido para

FSR. Em seguida, o acesso/modificação do conteúdo do registrador desejado é realizado pormeio de outro registrador:^ INDF. UFSJ – CAP© Edgar C. Furtado

AULA-

ACESSO INDIRETO À MEMÓRIA DE DADOS Exemplo: Assumindo-se que é necessário zerar o conteúdo do registradorTRISA. No estado^ inicial (após energização^ ou^

reset) tem-se que: IRP=0. Logo, inicialmente os bancos 0 e 1 estão selecionados. ; MICROPROCESSADORES ; -- ARQUIVO^ DE^ DEFINIÇÕES: #INCLUDE^ <P16F877.INC>__CONFIG^ _XT_OSC^ &^ _WDT_OFF &^ _PWRTE_OFF

& _BODEN_OFF^ &^ _LVP_OFF^ &^ _CPD_OFF^ &^ _CP_OFF ; -- VETOR^ DE^ RESET:^ ORG^ 0X00^ GOTO^ INICIO

Banco 0^ Banco 1^5 GOTO^ INICIO ; -- INÍCIO INTERRUPÇÃO: ORG^ 0X04RETFIE ; -- INÍCIO DO^ PROGRAMA: INICIOBCF STATUS,^ IRPSeleção dos bancos de memória 0 e 1.MOVLW 0X85^ Acessar um dos 256 registradores dos referidos bancos de memória.MOVWF FSR CLRF INDF^ Zera o registrador apontado por FSR, que nesse caso é o TRISA.... ; -- FIM DO PROGRAMA: END UFSJ – CAP© Edgar C. Furtado AULA-

ACESSO INDIRETO À MEMÓRIA DE DADOS Tomando-se a linguagem C como exemplo, a relação entre o acesso indiretoà memória, na arquitetura do PIC, e os ponteiros é: & É equivalente ao registrador FSR^ ^ Endereço da variável. ***** É equivalente ao registrador INDF^ ^ Conteúdo da variável. Na arquitetura do microcontrolador PIC16F o ponteiro é definido com apenasum registrador na memória.Entretanto, em arquiteturas mais complexas pode-se um ponteiro pode serdefinido em qualquer registrador na memória. Além disso, o ponteiro podeassumir^ diferentes^ tipos^ de^ variáveis,UFSJ – CAP© Edgar C. Furtado

tais^ como,^ inteiro,^ ponto^ flutuante, entre outras.

AULA-

ACESSO INDIRETO À MEMÓRIA DE DADOS Exemplo: Considere o^ seguinte trecho de código em

C, e uma^ possível versão em^ Assembly.

; -- DECLARAÇÃO^ DE^ VÁRIÁVEIS: X^ EQU^ D’32’^ ;^ Endereço^ da^ Variável

X Y^ EQU^ D’33’^ ;^ Endereço^ da^ Variável

Y ; -- INÍCIO DO^ PROGRAMA: PRINCIPALMOVLW^ X^ ;^ W^ ^ D’32’^ MOVWF^ FSR^ ;^ FSR^ ^ W void^ main(void){^ int^ x,^ y;^ int^ *p; UFSJ – CAP© Edgar C. Furtado

MOVWF^ FSR^ ;^ FSR^ ^ W MOVF^ INDF,W^ ;^ W^ ^ INDF MOVWF^ Y^ ;^ Y^ ^ W ... ; -- FIM^ DO PROGRAMA:^ END int^ *p; p =^ &x;y =^ *p;} A variável p foi declarada como um ponteiro inteiro, que recebe o endereçoda variável x. A variável y recebe o conteúdo do endereço apontado por p.^ AULA-

PERIFÉRICOS: MÓDULO CCP O módulo CCP possui três funções distintas: Captura, Comparação e Geraçãode sinal PWM. Função Captura: É utilizada quando se deseja registrar o tempo que um dadoevento ocorreu. Essa função está associada ao temporizador TIMER1 de 16bits. Função de Comparação: É^ utilizada^ quando^ se^ deseja^ somar

a^ quantidade^ de AULA-10 10 Função^ de^ Comparação:^ É^ utilizada UFSJ – CAP© Edgar C. Furtado

quando^ se^ deseja^ somar^ a^ quantidade

de ocorrências de um evento externo, se essa quantidade for igual a outra pré-determinada^ no^ código,^ uma^

ação^ pode^ ser^ realizada.^ Nesse

caso,^ o temporizador TIMER1 é usado como contador de eventos. Geração de um sinal PWM:^ Os sinais com largura de pulso modulada, PWM(Pulse Width Modulation), são utilizados em diversos contextos em engenharia.Essa função está associada ao temporizador TIMER2.

MÓDULO CCP: SINAL PWM Considere o sinal PWM (Pulse Width Modulation) – Pulso de largura modulada,a seguir: DUTY CYCLE 5 TEMPO (S) PERÍODO^ AULA-^ PERÍODO:^ Tempo para o sinal PWM se repetir. DUTY CYCLE:^ Período em que a largura de pulso permanece em nível lógico 1(5V); RESOLUÇÃO:^ O menor incremento que pode ocorrer noUFSJ – CAP© Edgar C. Furtado PERÍODO^ duty cycle.

MÓDULO CCP: GERAÇÃO DE SINAL PWM Exemplo: Assumindo^ que^ o^ sinal^ de^ tensão^ PWM

x(t)^ a^ seguir^ é aplicado^ a^ uma^ lâmpada^ incandescente,

com^ resistência^ de^ 10Ω. Determine a potência média dissipada pela lâmpada.^ x(t)^5

AULA-^ 5 0 0,2T^ T0,4T^ 0,6T^ 0,8T^ UFSJ – CAP© Edgar C. Furtado

Tempo1,2T 2T1,4T 1,6T 1,8T T 1 = dttxx )( Valor Médio: ∫ T 0

MÓDULO CCP: GERAÇÃO DE SINAL PWM Cálculo do Período do sinal PWM:^ (^ )(^ )(^

) 124 PTPRT +=TMR2OSCPWM em que:PR2 – Fator de escala, valor do registrador PR2;T– Período do^ clock^ do sistema;OSC^

AULA-^ OSC P– Fator de pré-escala do temporizador TMR2:TMR2^ UFSJ – CAP© Edgar C. Furtado

1, 4^ e^^16 ; Quando o perído TMR2 é igual ao PR2, os seguintes eventos ocorrem:^ O temporizador TMR2 é zerado;^ O terminal CCP1 se torna nível lógico 1, à exceção se

duty cycle =0% ;

GERAÇÃO DE SINAL PWM Cálculo da resolução do sinal PWM A resolução do sinal PWM representa um número binário que será equivalenteà largura do pulso de nível lógico 1, dentro do período. CCP1RL^

CCP1CON

A resolução Ré formada por:PWM^

AULA-^ Bit 7^ UFSJ – CAP© Edgar C. Furtado

Bit 0^ Bit 5^ Bit 4 0000 0000 00  0% TPWM 1111 1111 11  100% TPWM

Duty Cycle Assumindo-se resolução máxima possível de 10bits. a:

GERAÇÃO DE SINAL PWM Teste para avaliar a possibilidade do uso da quantidade de bits para resolução.Existe um valor máximo para a resolução do sinal PWM, que é dada por: F OSC^ log^ (^ )(^ )^ PF ^ TMR2PWM bitsR =)PWM(máximo^  )^2 log(^  ^ AULA-^ UFSJ – CAP© Edgar C. Furtado

) (^2) log(^  ^ ^   em que:R: Maior valor da resolução: [CCP1RL e CCP1CON(5:4)];PWM(máximo)F: Frequência do^ clock^ do sistema;OSC^ F: Frequência do sinal PWM;PWM^ P: Fator de pré-escala do temporizador TMR2:TMR^

1, 4^ e^^16 ;

GERAÇÃO DE SINAL PWM Cálculo do Duty Cycle ( DC ):PWM^ (^ )(^ )(^ ) PTRDC =TMR2OSCPWMPWM (^) em que:R: Valor da resolução: [CCP1RL e CCP1RCON(5:4)];PWM (^) T: Período do clock do sistema;OSC AULA-^ O^ valor^ da^ resolução^ RestáPWM^ UFSJ – CAP© Edgar C. Furtado

relacionado^ ao^ conteúdo^ máximo

do registrador PR2, haja visto a multiplicação realizada 4(PR2+1) = 1024

=d OSC P: Fator de pré-escala do temporizador TMR2:TMR2 10bits

1, 4^ e^^16 ; Se o^ duty cycle^ for maior que o período do sinal PWM, então o terminal 9(RB3|CCP1) permanecerá em nível lógico 1;

GERAÇÃO DE SINAL PWM Exemplo: Cálculo do duty cycle^ do sinal PWM.Considere o MCR operando a 4MHz, com PR2 ajustado para 255

e com fatord de escala de 4 aplicado ao TMR2. Assuma três valores para o

duty cycle ,

escritos nos registradores CCP1RL e CCP1CON:^ 1.^ [CCP1RL = 0000 0000^

e CCP1CON(5:4) = 00^ ]^ ^0 AULA-^

(^ )(^ )( UFSJ – CAP© Edgar C. Furtado

1.^ [CCP1RL = 0000 0000e CCP1CON(5:4) = 00]^ ^0 b^ b^ ) PTRDC^^ = PWM^ TMR2OSCPWM^ ( )(^ )( ) n^42500 =^ ms^0 =

d