Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Piauí Centro de Tecnologia Departamento de Engenharia Elétrica CIRCUITOS DIGITAIS II Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2011 Microcontroladores 2 Circuitos Digitais II – Prof. Marcos Zurita ● 1. Introdução ● 2. Os Microcontroladores PIC ● 2.1. Os Microcontroladores de 8 bits ● 2.2. PICs de 8-bits: Principais Características ● 3. O PIC 16F877A ● 3.1. Principais Características ● 3.2. Arquitetura ● 3.3. Conjunto de Instruções ● 3.4. Assembly Sumário 3 Circuitos Digitais II – Prof. Marcos Zurita 1. Introdução 4 Circuitos Digitais II – Prof. Marcos Zurita Introdução Microcontrolador ● Também abreviado por µC, uC ou MCU. ● Reúne num único chip: ● Microprocessador ● Memória ● Periféricos de E/S programáveis. 4 5 Circuitos Digitais II – Prof. Marcos Zurita Introdução ● Microcontroladores são dispositivos voltados a sistemas embarcados e aplicações específicas, ao contrário dos µPs, destinados a PCs e aplicações de uso geral. ● Memórias de programa e de dados também são frequen- temente integradas ao chip, o que não ocorre nos µPs. ● Principais razões da integração das memórias aos µCs: ● redução do número de pinos do encapsulamento; ● redução dos custos com componentes externos; ● diminuição das dimensões da montagem; ● simplificação do circuito de aplicação; ● Em contrapartida, a integração das memórias aos µCs tem a desvantagem de limitar a complexidade do programa embarcado, bem como o montante de dados manipuláveis, uma vez que o tamanho da memória é limitada pelo µC. 6 Circuitos Digitais II – Prof. Marcos Zurita Introdução Alguns Fabricantes de Microcontroladores ● Atmel ● Cypress MicroSystems ● Freescale Semiconductor ● Fujitsu ● Intel ● Microchip Technology ● National Semiconductor ● NXP ● NEC ● STMicroelectronics ● Texas Instruments ● ZiLOG 7 Circuitos Digitais II – Prof. Marcos Zurita Portas de Entrada e Saída Memória ROMMemória RAM (Dados Temporários) Oscilador, timers, contadores, etc. CPU Introdução Aplicações Típicas ● Periféricos de informática ● Eletrônicos de consumo ● Sistemas de supervisão ● Instrumentação ● Automação ● Robótica 8 Circuitos Digitais II – Prof. Marcos Zurita Introdução Unidade de Comando de Injeção Eletrônica 9 Circuitos Digitais II – Prof. Marcos Zurita Introdução Robo 3π: Em seu núcleo um uC Atmel à 20 MHz 10 Circuitos Digitais II – Prof. Marcos Zurita Introdução Osciloscópios de mão baseados em uCs (ARM e AVR) 11 Circuitos Digitais II – Prof. Marcos Zurita Introdução CLP baseado num uC PIC 12 Circuitos Digitais II – Prof. Marcos Zurita 2. Os Microcontroladores PIC 13 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC Microcontroladores da Microchip Technologies ● Conhecidos como microcontroladores PIC, ou PICmicro. ● Seu nome é uma sigla para “Programmable Interface Controller” e origina-se no início dos anos 80, quando foi concebido para operar como interface controladora de periféricos para a CPU CP1600 da General Instruments. ● Mais de 570 uCs divididos em 3 grandes grupos: ● 8 bits ● 16 bits ● 32 bits ● Núcleo composto por uma máquina RISC: ● As versões mais simples tem apenas 33 instruções. ● Arquitetura de memória Harvard. 14 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC ● A família de Microcontroladores PIC PIC10 PIC12 PIC16 PIC18 PIC24F PIC24H dsPIC30 dsPIC33 PIC32 8 bi ts 16 b its 32 b its Desempenho Fu nc io na lid ad es 15 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC Os Microcontroladores PIC de 8 bits ● Mais de 300 uCs, reunindo desde os mais simples e pequenos (6 pinos, 2x3mm) a dispositivos de alta gama, com maior poder de processamento, periféricos e interfaces, chegando a 100 pinos. ● Dividem-se em 4 categorias, de acordo com a complexidade da aplicação a que se destinam: ● Baseline ● Mid-Range ● Enhanced Mid-Range ● PIC18 16 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC PIC 8-bits: Memória de Programa vs N° de Pinos 17 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC PIC 8-bits: Principais Características Atributo Arquitetura Baseline Mid-Range Enhanced Mid-Range PIC18 N° de Pinos 6-40 8-64 8-64 18-100 Suporte a Interrupções sem suporte Uma interrupção Uma interrupção com armazenamento de contexto de hardware Múltiplas interrupções com armazenamento de contexto de hardware Desempenho 5 MIPS 5 MIPS 8 MIPS Up to 16 MIPS Instruções 33, 12-bit 35, 14-bit 49, 14-bit 83, 16-bit Mem. de Programa até 3 kB até 14 kB até 28 kB até 128 kB Mem. De Dados até 134B até 368B até 1.5 kB até 4 kB Recursos • Comparador • ADC de 8 bits • Memória de Dados • Oscilador interno Além dos da Baseline: • SPI/I2C • UART • PWMs • Suporte a LCD • ADC de 10 bits • Op Amp Além dos da Mid-Range: • Comunicações com Múltiplos Periféricos • Espaço para Programação Linear • PWMs com Temporização Independente Além dos da Enh. Mid-Range: •Multiplicador 8x8 em Hardware • CAN • CTMU • USB • Ethernet • ADC de 12 bits Famílias PIC10, PIC12, PIC16 PIC12, PIC16 PIC12F1XXX, PIC16F1XXX PIC18 18 Circuitos Digitais II – Prof. Marcos Zurita Os Microcontroladores PIC PIC 8-bits: 10F200, 16F628 e 16F877 19 Circuitos Digitais II – Prof. Marcos Zurita 3. O PIC 16F877A 20 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A O PIC16F877A ● Microcontrolador “Mid-Range” de 8 bits. ● Reúne os principais pontos de interesse no estudo da arquitetura de sistemas digitais. ● Será adotado para a maior parte das aplicações desta disciplina. 21 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Principais Características do PIC 16F877A ● Apenas 35 instruções de máquina (Assembly, nível ISA) ● Execução em pipeline: ● 1 ciclo/instrução sequencial e 2 ciclos/instrução de desvio ● 1 ciclo = 4 pulsos de clock ● Operação com clock de até 20 MHz (5 MIPS) ● Arquitetura de memória Harvard: ● Memória de Programa: 8k x 14 bits (Flash) ● Memória de Dados: 368 Bytes (RAM) ● Memória auxiliar EEPROM (não volátil) de 256 Bytes, regravável por software. 22 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A ● 4 encapsulamentos disponíveis: ● PDIP 40 ● PLCC 44 ● QFN 44 ● TQFP 44 ● Encapsulamento PDIP 40 (adotado): ● 4 pinos de alimentação; ● 2 pinos de clock; ● 1 pino de gravação/reset ● 33 pinos de entrada/saída configuráveis; ● Fácil prototipagem em Protoboards. 23 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Pinagem do Encapsulamento PDIP 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 P IC 1 6F 87 7A MCLR/VPP RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 VDD VSS OSC1/CLKI OSC2/CLKO RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RD0/PSP0 RD1/PSP1 RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 24 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A ● Opção para proteção de código executável: ● Uma vez ativada, impossibilita a leitura da memória de programa, evitando a piratariado código para outros microcontroladores; ● Tensão de trabalho de 2 a 5.5V; ● Modo SLEEP: ● Coloca o uC para “dormir”, reduzindo drasticamente o consumo de energia; ● Sistema integrado de programação e depuração “in circuit”: ● Programação e depuração serial: apenas 2 pinos; ● Programação e depuração possível sem a necessidade desconectar o uC do circuito; 25 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A ● Conversor AD de 10 bits x 8 canais; ● Dois comparadores analógicos configuráveis; ● 2 pinos para captura, comparação e PWM ● Uma porta serial síncrona com SPI (mestre) e I2C (mestre/escravo); ● Uma porta serial universal (USART); ● Uma porta paralela de 8 bits (escrava); ● Sistema de interrupções com 14 fontes diferentes (por hardware e por software); ● Sistema monitor capaz de reiniciar automaticamente o uC caso alguma anormalidade seja detectada, evitando o travamento do sistema. 26 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Arquitetura do PIC 16F877: Diagrama Simplificado ULA UNIDADE DE CONTROLE PC W STATUS FSR IR MUX SISTEMAS DE SUPORTE ●Programação ●Depuração ●Temporização ●Reset Stack Memória de Programa (Flash) Memória de Dados (RAM) M U X EEPROM PORTAS de E/S A B C D E 3 PERIFÉRICOS ●ADC ●Timers ●etc. 27 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Arquitetura do PIC 16F877: Diagrama Detalhado 28 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Memória de Programa ● Armazena de forma permanente o programa a ser executado pelo PIC. ● Memória ROM tipo flash de 8 kWords (8192 endereços) de 14 bits. ● Pode ser alterada aplicando-se 13V ao pino VPP (5V no modo LVP). ● Divida em 4 “páginas” de 2k, sendo a primeira reduzida em 5 endereços, que possuem função especial: ● 0x0000: vetor de reset; ● 0x0004: vetor de interrupção; ● 0x0001 a 0x0003: reservados. 29 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Memória de Dados (RAM) ● Armazena dados do programa e registradores da CPU. ● Divida em 4 bancos de 128 bytes. ● Cada posição endereçável é chamada registro. ● É composta por dois tipos de registradores: ● Registradores de propósito geral (368 bytes); ● Registradores de função específica (SFR). ● SFRs complementam os registradores nativos da CPU. Banco 0 Banco 1 Banco 2 Banco 3 RAM 30 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Acesso Direto aos SFRs 30 31 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Mapa da RAM 32 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A SFRs - Banco 0 33 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Stack ● Memória interna composta por 8 registros de 13 bits destinada a armazenar endereços da memória de programa. ● Tem papel semelhante ao do registrador OPC (da arquitetura MIC-1), porém com maior capacidade. ● Quando uma sub-rotina é chamada ou na ocorrência de uma interrupção, o endereço para onde o PC deveria apontar (caso não houvesse desvio), é salvo automati- camente na pilha (stack) e recuperado ao final da execução da sub-rotina. ● É escrita de forma circular, isto é, após 8 chamadas aninhadas, a nona irá sobrescrever o endereço da primeira (naturalmente isto deve ser evitado) 34 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A O Assembly do 16F877A ● 35 instruções divididas em 4 grupos: Operações com Bytes de Registradores ADDWF ANDWF CLRF COMF DECF DECFZ INCF INCFSZ IORWF MOVF MOVWF RLF RRF SUBWF SWAPF XORWF Operações com Números Literais ADDLW ANDLW IORLW MOVLW SUBLW XORLW Operações com Bits de Registradores BCF BSF BTFSC BTFSS Controle CLRW NOP CALL CLRWDT GOTO RETFIE RETLW RETURN SLEEP 35 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Instruções de Operação com Bytes de Registradores N° Instrução Argumentos Descrição 1 ADDWF f,d Soma W e F, guardando o resultado em d. 2 ANDWF f,d Lógica "E" entre W e f, guardando o resultado em d. 3 CLRF f Limpa f. 4 COMF f,d Calcula o complemento de f, guardando o resultado em d. 5 DECF f,d Decrementa f, guardando o resultado em d. 6 DECFSZ f,d Decrementa f, guarda o resultado em d e pula a próxima linha se for zero 7 INCF f,d Incrementa f, guardando o resultado em d. 8 INCFSZ f,d Incrementa f, guarda o resultado em d e pula a próxima linha se for zero 9 IORWF f,d Lógica "OU" entre W e f, guardando o resultado em d. 10 MOVF f,d Move f para d (copia). 11 MOVWF f Move W para f (copia). 12 RLF f,d Rotaciona f 1 bit para esquerda. 13 RRF f,d Rotaciona f 1 bit para direita. 14 SUBWF f,d Subtrai W de f (f – W), guardando o resultado em d. 15 SWAPF f,d Inverte as partes alta e baixa de f, guardando o resultado em d. 16 XORWF f,d Lógica "OU exclusivo" entre W e f, guardando o resultado em d. 36 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Instruções de Operação com Números Literais Instruções de Operação com Bits de Registradores N° Instrução Argumentos Descrição 17 ADDLW k Soma um número k com W, guardando o resultado em W. 18 ANDLW k Lógica "E" entre k e W, guardando o resultado em W. 19 IORLW k Lógica "OU" entre k e W, guardando o resultado em W. 20 MOVLW k Move k para W. 21 SUBLW k Subtrai W de k (k - W), guardando o resultado em W. 22 XORLW k Lógica "OU exclusivo" entre k e W, guardando o resultado em W. N° Instrução Argumentos Descrição 23 BCF f,b Coloca 0 (zero) ao bit b do registrador f. 24 BSF f,b Coloca 1 (um) ao bit b do registrador f. 25 BTFSC f,b Testa o bit b do registrador, e pula a próxima linha se ele for 0 (zero). 26 BTFSS f,b Testa o bit b do registrador, e pula a próxima linha se ele for 1 (um). 37 Circuitos Digitais II – Prof. Marcos Zurita O PIC 16F877A Instruções de Controle N° Instrução Argumentos Descrição 27 CLRW Limpa W (deixa W com valor 0) 28 NOP Gasta um ciclo de máquina sem fazer nada. 29 CALL Rotina X Executa a rotina X. 30 CLRWDT Limpa o registrador WDT para não acontecer o reset. 31 GOTO R Desvia para o ponto R, mudando o PC. 32 RETFIE Retorna de uma interrupção. 33 RETLW k Retorna de uma rotina, com k em W. 34 RETURN Retorna de uma rotina, sem afetar W. 35 SLEEP Coloca o PIC em modo Sleep para economia de energia. 38 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1: (parte 1) 39 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1: (parte 2) 40 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1 Comentado: (parte 1) 41 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1 Comentado: (parte 2) 42 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1 Comentado: (parte 3) 43 Circuitos Digitais II – Prof. Marcos Zurita Assembly Exemplo 1 Comentado: (parte 4) 44 Circuitos Digitais II – Prof. Marcos Zurita Razões para Programar o PIC em Assembly ● Aplicações de controle crítico de tempo. ● Maximização da eficiência do código. ● Redução do tamanho do programa. ● Dominar melhor a arquitetura do uC. ● Castigo, autoflagelo ou masoquismo crônico (procure um bom tratamento psicológico) Assembly 45 Circuitos Digitais II – Prof. Marcos Zurita Bibliografia ● Milan Verle, “PIC Microcontrollers - Programming in C”, 1a Ed., MikroElektronika, 2009. ● Microchip Tec. Inc., “8-bit PIC Microcontrollers”, Data Sheet, 2010. ● Microchip Tec. Inc., “PIC16F87XA - 28/40/44-Pin Enhanced Flash Microcontrollers”, Data Sheet, 2003. ● Andrew S. Tanenbaum, “Organização Estruturada de Computadores”, 5a Ed., Pearson, 2006. ● J. L. Hennessy & D. A. Patterson, “Arquiteturade Computadores - Uma Abordagem Quantitativa”, Editora Campus, 2003. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45
Compartilhar