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

2010

Compartilhado em 20/10/2010

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

5

(2)

14 documentos

1 / 28

Documentos relacionados


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 PWM Referência para a aula: 1 – Apostila: Instruções e Diretivas [Xerox]; 2 – Folha de dados (Datasheet): PIC16F877 [Disponível na internet, site da Microship]; 3 – CAP. 5: SCHILDT, H. “C completo e total” [biblioteca]; Prof.: Edgar Campos Furtado edgar@ufsj.edu.br Sala: 217.2 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 RP0 do STATUS, em seguida o registrador desejado é acessado informando o endereço do mesmo na instrução (7bits). 2UFSJ – CAP © Edgar C. Furtado AULA-10 ACESSO INDIRETO À MEMÓRIA DE DADOS Exemplo: Assumindo-se que é necessário zerar o conteúdo do registrador TRISA. 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 5UFSJ – CAP © Edgar C. Furtado ; -- INÍCIO INTERRUPÇÃO: ORG 0X04 RETFIE ; -- INÍCIO DO PROGRAMA: INICIO BCF STATUS, IRP MOVLW 0X85 MOVWF FSR CLRF INDF ... ; -- FIM DO PROGRAMA: END Acessar um dos 256 registradores dos referidos bancos de memória. Seleção dos bancos de memória 0 e 1. Zera o registrador apontado por FSR, que nesse caso é o TRISA. AULA-10 ACESSO INDIRETO À MEMÓRIA DE DADOS A implementação do acesso indireto à memória é base para possibilitar o uso do conceito de Ponteiros. O uso de ponteiro é crítico para uma programação bem-sucedida, em especial, na linguagem C, pois os ponteiros: 6UFSJ – CAP © Edgar C. Furtado 1. Fornecem os meios pelos quais as funções podem modificar seus argumentos; 2. São usados para suportar rotinas de alocação dinâmica de memória em C; 3. Aumento de eficiência em algumas rotinas. PONTEIRO: é uma variável que contém um endereço de memória, que representa a posição de uma outra variável na memória. AULA-10 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. 7UFSJ – CAP © Edgar C. Furtado Na arquitetura do microcontrolador PIC16F o ponteiro é definido com apenas um registrador na memória. Entretanto, em arquiteturas mais complexas pode-se um ponteiro pode ser definido em qualquer registrador na memória. Além disso, o ponteiro pode assumir diferentes tipos de variáveis, tais como, inteiro, ponto flutuante, entre outras. AULA-10 PERIFÉRICOS: MÓDULO CCP O módulo CCP possui três funções distintas: Captura, Comparação e Geração de sinal PWM. Função Captura: É utilizada quando se deseja registrar o tempo que um dado evento ocorreu. Essa função está associada ao temporizador TIMER1 de 16 bits. Função de Comparação: É utilizada quando se deseja somar a quantidade de AULA-10 10UFSJ – CAP © Edgar C. Furtado 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: PERÍODO DUTY CYCLE TEMPO (S) 5 AULA-10 11UFSJ – CAP © Edgar C. Furtado 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 no duty cycle. APLICAÇÕES PARA UM SINAL PWM Os sinais PWM podem ser utilizados em diversos contextos em engenharia, dentre os quais pode-se citar: Controle de velocidade e/ou direção de um motor de corrente contínua; AULA-10 12UFSJ – CAP © Edgar C. Furtado Controle de temperatura; Transmissão de um sinal codificado. GERAÇÃO DE SINAL PWM Exemplo: Cálculo do período do sinal PWM. Considere o MCR operando a 4MHz, com PR2 ajustado para 255d e com fator de escala de 4 aplicado ao TMR2. O valor para o período do sinal PWM nesse caso é: ( )( )( )PTPRT 124 TMR2OSCPWM += AULA-10 15UFSJ – CAP © Edgar C. Furtado ( )( )( ) ms n 024,1 425012554 = += Por outro lado, a freqüência do sinal PWM será = 976,5625Hz 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 RPWM é formada por: AULA-10 16UFSJ – CAP © Edgar C. Furtado Bit 7 Bit 0 Bit 5 Bit 4 0000 0000 00  0% TPWM 1111 1111 11  100% TPWM Assumindo-se resolução máxima possível de 10bits. Duty Cycle a: GERAÇÃO DE SINAL PWM ( )( ) bits PF F R )2log( log TMR2PWM OSC )PWM(máximo                 = 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: AULA-10 17UFSJ – CAP © Edgar C. Furtado     em que: RPWM(máximo): Maior valor da resolução: [CCP1RL e CCP1CON(5:4)]; FOSC : Frequência do clock do sistema; FPWM : Frequência do sinal PWM; PTMR2 : Fator de pré-escala do temporizador TMR2: 1, 4 e 16; GERAÇÃO DE SINAL PWM Exemplo: Cálculo do duty cycle do sinal PWM. Considere o MCR operando a 4MHz, com PR2 ajustado para 255d e com fator 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-10 20UFSJ – CAP © Edgar C. Furtado ( )( )( ) ( )( )( ) ms n PTRDC PWM 0 42500 TMR2OSCPWM = = = b b d GERAÇÃO DE SINAL PWM ( )( )( ) ( )( )( ) ms n PTRDC PWM 512,0 4250512 TMR2OSCPWM = = = 2. [CCP1RL = 1000 0000b e CCP1CON(5:4) = 00b]  512d AULA-10 21UFSJ – CAP © Edgar C. Furtado ( )( )( ) ( )( )( ) ms n PTRDC PWM 024,1 42501024 TMR2OSCPWM = = = 3. [CCP1RL = 1111 1111b e CCP1CON(5:4) = 11b]  1024d GERAÇÃO DE SINAL PWM Cálculo do duty cycle em termos de percentagem do TPWM É possível relacionar a percentagem do duty cycle com a resolução, assumindo-se que o valor em PR2 é fixo, ou seja, 100 x )12(4 (%) PWMPWM       + = PR R DC AULA-10 22UFSJ – CAP © Edgar C. Furtado Exemplo: Para PR2=255d e RPWM=1100 0000 00b =768d, tem-se %75100 )1255(4 768 100 )12(4 (%) PWMPWM =+ =      + = xx PR R DC MÓDULO CCP: COMPARADOR Para funcionamento do comparador, o temporizador TMR1 pode ser ajustado para clock interno, como um contador de evento externo. É possível utilizar o Módulo CCP como comparador para as seguinte situações: Se o número de pulsos, na entrada de pulsos de clock (T1CKI), for AULA-10 25UFSJ – CAP © Edgar C. Furtado igual a [CCP1RH CCP1RL], então o terminal CCP1 vai para o estado (nível lógico 1 ou 0), conforme configuração; Se valor de [CCP1RH CCP1RL] for igual a TMR1, então o terminal CCP1 vai para o estado (nível lógico 1 ou 0), conforme configuração; MÓDULO CCP: CAPTURA No modo de captura o conteúdo do temporizador TMR1 [TMR1H TMR1L] é “capturado” e copiado nos registradores [CCPR1H CCPR1L], quando um evento no terminal CCP1 acontece: A escolha do evento associado ao terminal 9 é realizada por meio dos bits CCP1M(3-0) do registrador CCP1CON, ou seja, AULA-10 26UFSJ – CAP © Edgar C. Furtado 0100 = Habilita modo de captura, a cada borda de descida. 0101 = Habilita modo de captura, a cada borda de subida. 0110 = Habilita modo de captura, a cada 4 bordas de subida. 0111 = Habilita modo de captura, a cada 16 bordas de subida. HABILITA COMPARADOR/CAPTURA 1o Passo: Configurar terminal CCP1 para saída de sinal; 2o Passo: Configurar registrador especial CCP1CON para operar em modo comparação, selecionar evento para terminal CCP1; 3o Passo: Habilitar e configurar TMR1, no registrador T1CON; Procedimento para implementação no MCR do modo de comparação: AULA-10 27UFSJ – CAP © Edgar C. Furtado 1o Passo: Configurar terminal CCP1 para entrada de sinal; 2o Passo: Configurar registrador especial CCP1CON para operar em modo comparação, selecionar evento para terminal CCP1; 3o Passo: Habilitar e configurar TMR1, no registrador T1CON; Procedimento para implementação no MCR do modo de captura:
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved