Microcontroladores PIC André Luís Marques Marcato
[email protected] Leandro Mattos Braga
[email protected]
2
Bibliografia Básica David José de Souza, “Desbravando o PIC”, 6a Edição, Editora Érica Fábio Pereira, “Microcontroladores PIC – Técnicas Avançadas”, Editora Érica
3
Estrutura da Apresentação Introdução Memórias Interrupções PIC16F628 Registradores Especiais Set de Instruções Hardware
Gravando o PIC Programação Recursos Avançados
Timer, CCP, PWM, Comparadores, Tensão Ajustável, USART
Hardware Avançado Projetos e Muita Prática !
A Arquitetura Havard e a Filosofia RISC Os microcontroladores PIC apresentam arquitetura Havard.
1 barramento para dados (8 bits) e outro para instruções (12, 14 ou 16 bits) RISC
Maior parte dos microcontroladores tradicionais apresentam arquitetura tipo Von-Neumann.
1 único barramento para dados e instruções (8 bits) CISC
4
Alguns Exemplos de Cada Família da Microchip
5
6
Estruturação Interna – 16F628
7
Ciclos de Máquina
• Divide clock por quatro, formando as fases Q1, Q2, Q3 e Q4 • PIPELINE: Busca a informação em um ciclo e a executa no
próximo • Para um clock de 4MHz, cada instrução é executada 1µs, desde que não afete o Program Counter
Principais Características do PIC 16F628A Microcontrolador de 18 pinos Até 16 portas configuráveis como entrada ou saída 2 Osciladores internos (4MHz ou 37kHz) 10 Interrupções Disponíveis
Timers, Externa, Mudança de Estado, EEPROM, USART e Comparador
Memória de prog. FLASH (2048 “words” – 14 bits) EEPROM interna de 128 bytes RAM interna de 224 bytes Special Features: Features CCP, Comparador Interno e USART Programação com 14 bits e 35 instruções
8
9
Pinagem
10
Nomenclatura 16 I/Os separados em dois grupos denominados PORTAS (Porta A e Porta B, ou melhor, port A e port B) port A: RA0; RA1 ... RA7 Idem para port B Prestar atenção nos pinos de múltiplas funções V DD (5V) e VSS (GND)
11
Função dos Pinos
(1)
12
Função dos Pinos(2)
13
Características Elétricas Temperatura de trabalho: -40oC até +125oC Tensão de Trabalho (em relação a Vss): 3.0V a 5.5V Voltagem máxima no pino VDD (em relação ao VSS): -0.3V até +6.5V Voltagem máxima no pino MCLR (em relação ao VSS): -0.3V até +14V Voltagem máxima nos demais pinos (em relação ao VSS): -0.3V até (VDD+0.3V) Dissipação máxima de potência: 800mW Corrente máxima de saída do pino VSS: 300mA Corrente máxima de entrada no pino VDD: 250mA Corrente máxima de a saída de um pino (qdo em VSS) : 25mA Corrente máxima de saída de um pino (qdo em VDD): 25mA Correntes máximas de entrada e saída (PORTB + PORTB): 200mA
14
Introdução às Memórias Memória de Programa Vetor de Reset Vetor de Interrupção Pilha (Stack)
Memória de Dados Registradores Especiais Registradores de Uso Geral
EEPROM
15
Memória de Programa ROM do Tipo Máscara (CR) OTP: PROM (C) EPROM: Janelados (JW para DIP e CL para PLCC) Flash (F)
16
Memória de Programa A capacidade máxima da série 16 é de 8kword (8192) divididos em blocos de 2kword (2048) 16F628 tem 2kword, portanto somente 1 página de memória Endereço Final da primeira página
1FFh para dispositivos com 512 words 3FFh para dispositivos com 1kword 7FFh para dispositivos com 2kword
Mecanismo de paginação é transparente ao usuário. Atenção somente para comandos de desvio (CALL, GOTO)
Memória de Programa Série 16
17
18
Memória de Programa da 16F628
19
Memória de Dados (ou RAM) SFR (Special Function Register): Registradores de Funções Especiais. Muitas vezes referenciados pela letra “f” GPR (General Purpose Registers): Registradores de Propósito Geral Devido a forma de implementação das funções o endereçamento é limitado a 7 bits (128 registradores). A filosofia de paginação é utilizada. Existem diversos bancos de 128 posições. O acesso ao banco é feito pelo registrador de STATUS: RP0 e RP1 Alguns registradores são espelhados
Memória de Dados
20
21
Os Registradores Especiais
(1)
STATUS: Está relacionado às operações matemáticas. Indica estouro dos registradores (C-Carry e DC-Digit Carry) e resultados iguais a zero PCON: Função mais utilizada é que configura freqüência do oscilador interno 37KHz ou 4MHz OPTION_REG: Configura o funcionamento dos registradores internos PORTx: Lê e escreve informações nos pinos externos do PIC TRISx: Define direção de funcionamento de cada pino da porta (se entrada ou saída)
22
Os Registradores Especiais
(2)
INTCON: Interrupções Especiais e chave geral
Chave Geral: GIE Timer 0, Interrupção Externa e Mudança de Estado
PIR1 e PIE: Gerencia interrupções dos periféricos
EEPROM, Comparadores, USART, CCP, Timer 1 e 2
TMR0 e TMR2: É o Timer 0 e 2 respectivamente
Contador de 8 bits Seu incremento pode ser automático (CLK) ou por um sinal externo (Timer 0)
TMR1L e TMR1H: É o Timer 1
Contador de 16 bits
23
Os Registradores Especiais
(3)
EEPROM
Utiliza os registradores EEADR e EEDATA que controlam leitura e escrita da EEPROM interna O controle é feito pelos registradores EECON1 e EECON2
Módulo CCP
3 registradores (CCP1COM, CCPR1H e CCPR1L)
Módulo Voltagem de Referência
VRCON Gera voltagem de referência através de malha R2R interna
Endereçamento Indireto
FSR (apontador) INDF (espelho do apontador)
24
Registrador W Pode ser utilizado como destino de diversas operações aritméticas e lógicas Não está mapeado na memória RAM É utilizado principalmente como ponte entre os registradores “ f ”, pois não é possível trocar dados diretamente entre eles A instrução MOVF copia a informação do registrador “ f ” para W A instrução MOVWF copia a informação do registrador W para “ f”
25
Contador de Programa - PC PC – Program Counter Aponta sempre para a próxima instrução a ser executada pela CPU Série 16 – PC tem largura de 13 bits É dividido em dois registradores básicos: PCL e PCH PCL é acessado diretamente PCH é acessado indiretamente por PCLATH
Relacionamento entre PC, PCL e (1) PCLATH Modo 1 – Execução de uma instrução que tem como destino o registrador PCL
Modo 2 – Execução de uma instrução GOTO
26
Relacionamento entre PC, PCL e (2) PCLATH Modo 3 – Execução de CALL
Modo 4 – RETURN, RETLW, RETFIE
27
28
Pilha (Stack)
Não está localizada na área de memória RAM Tamanho: 8 posições de 13 bits LIFO (Last In First Out) Circular Não há instruções para manipular diretamente a pilha Não permite armazenamento de dados, apenas endereços
29
Introdução às Interrupções Serve para interromper o programa imediatamente Em função da interrupção solicitada uma atitude pode ser tomada instantaneamente Após uma interrupção, o programa é interrompido, e uma função específica (definida pelo programador é executada) Tipos: Timer(3); Externa; Mudança de Estado; Fim de Escrita na EEPROM; Comparador; USAR; Módulo CCP Nos PICs todas as interrupções são mascaráveis Latência: Atraso entre o instante de ocorrência de um evento de interrupção e o efetivo desvio para o vetor de interrupções (nos PICs o endereço 0x0004)
Síncronas: Três ciclos de instruções Assíncronas: De 3 a 3,75 ciclos de instruções
30
Funcionamento das Interrupções Três Sinais Importantes:
GIE – Global Interrupt Enable Controle Específico de Cada Interrupção Flag de Interrupção
31
Set de Instruções Work: Registrador W (temporário) File: Registrador (posição de memória). “ F ” nos nomes das instruções e “ f ” nos seus argumentos Literal: Um número qualquer. “ L ” nos nomes das instruções e “ k ” nos seus argumentos Destino: Local onde deve ser armazenado o destino das operações. Dois possíveis F ou W Bit: Um bit específico dentro de um byte. “ B ” nos nomes das instruções e “ b ” nos seus argumentos Teste: Funções que são utilizadas para testar um bit apresentam a letra “ T ” Skip: Pulo. Letra “ S ” Set: Setar um bit, colocá-lo em 1. Letra “ S ” Clear: Refere-se ao clear de um bit, colocá-lo em zero. Letra “ C ” Zero: Algumas instruções geram desvios qdo o resultado da operação é zero. Letra Z.
32
Operações com Registradores
33
Operações com Literais
34
Operações com Bits e Controles
35
Osciladores O PIC16F628 tem dois osciladores internos
Típico: 4MHz, tipo RC, precisão entre 1 e 5% dependendo das condições de tensão e temperatura
Quando for utilizado oscilador externo 1 ou 2 I/Os serão perdidos Oscilador Externo Híbrido ou Circuitos de Oscilação Oscilador Externo Tipo RC:
Ressoador (ou Ressonador Cerâmico)
36
37
Oscilador Externo - Cristal
38
Power-On Reset (POR) Quando o Master Clear Reset Externo não está habilitado. POR interno. Caso o Master Clear Reset Externo está habilitado será necessário hardware complementar