330 likes | 444 Views
PIC16F877A. Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa. Características. CPU RISC. Conjunto de instruções 35 palavras. Todas as instruções são executadas em um único ciclo, exceto os desvios (dois ciclos de instrução).
E N D
PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa
Características • CPU RISC. • Conjunto de instruções 35 palavras. • Todas as instruções são executadas em um único ciclo, exceto os desvios (dois ciclos de instrução). • Frequência de clock de entrada até 20 MHz. • Ciclo de instrução de 200 ns. • Memória de programa FLASH 8K x 14 words (palavras de 14 bits). • Memória de dados SRAM 368 Bytes. • Memória de dados EEPROM 256 Bytes. • Quantidade de pinos 40.
Características • Periféricos. • Três timers (timer 0, 1 e 2) – temporizador/contador. • Dois módulos CCP (Captura, Comparação e PWM). • Captura Valor do timer1 - Um evento no pino CCP1. • ComparaçãoValor é comparado ao timer1 – Pino CCP1. • PWM Resolução de 10 bits. • Porta serial síncrona (SSP) SPI (Modo mestre) e I2C (mestre/escravo). • USART/SCI detecção de endereço de 9 bits. • Porta paralela escrava (PSP) 8 bits com controle externo /RD, /WR e /CS.
Características • Analógica. • Conversor A/D 8 canais com resolução de 10 bits. • Circuito de detecção Brown-out para reset Brown-out (BOR). • Módulo comparador analógico. • Dois comparadores analógicos. • Referência de tensão on-chip programável (Vref). • Entrada programável multiplexada a partir das entradas do dispositivo e da tensão de referência interna. • Saídas do comparador disponíveis externamente.
Características • Especiais. • Programação serial (ICSP) via dois pinos 5V. • Watchdog timer Possui oscilador RC on-chip. • Proteção de código. • Modo SLEEP para economia de energia. • Opções do oscilador selecionáveis. • Depuração in-circuit (ICD) via dois pinos. • Interrupções 15 fontes. • Portas de E/S 5 portas (A, B, C, D e E).
Arquitetura • Arquitetura Harvard. • As memórias de programa e dados possuem barramentos diferentes.
Arquitetura • Pipeline. • Dois estágios. • Sobrepõe a busca e a execução (decodificação) da instrução. • A busca e a execução gastam cada Tcy unidades de tempo. • Com a sobreposição, a busca da instrução atual e a execução da anterior ocorrem em Tcy unidade de tempo – Ciclo de instrução.
Arquitetura • Pipeline – Esquema do clock/ciclo de instrução. • A frequência do clock de entrada (OSC1) é dividido por quatro para gerar o ciclo de instrução Tcy. Cada ciclo Q possui a frequência do clock de entrada. • A instrução é buscada na memória de programa e armazenada no registrador de instrução (IR) durante Q1. • A decodificação e execução durante Q2, Q3 e Q4. • Em Q2 o operando é lido e escrito em Q4.
Arquitetura • Pipeline – Fluxo de instrução. • Todas as instruções, exceto instruções de desvio, gastam um único ciclo de instrução. • Exemplo. PC aponta para o endereço SUB_1. Flush da instrução 4
CPU - Instruções • CPU – Utiliza as instruções (memória de programa) para controlar a operação do μC. • Existem 35 instruções. • Divididas em três categorias: • Operações orientadas a byte; • Operações orientadas a bit; • Operações literais e de controle. • Cada instrução possui uma palavra de 14 bits dividida em um opcode (tipo da instrução) e operandos (um ou mais).
CPU - Instruções • Formato de cada categoria.
CPU - Instruções • Instruções reconhecidas pelo PIC16F877A.
ULA • ULA e acumulador (W) de 8 bits. • Executa funções aritméticas (+ e -) e booleanas (lógicas e deslocamento) entre os dados em W e em qualquer registrador de arquivo.
Organização da Memória • Existem três blocos de memória. • Memória de programa (FLASH) – 8K word x 14 bits. • Memória de dados (SRAM) – 368 bytes. • Memória de dados EEPROM – 256 bytes.
Organização da Memória • Memória de programa. • Dividida em 4 páginas de 2K.
Organização da Memória • Memória de programa. • Contador de programa (PC). • Possui 13 bits. 0 0000 0000 0000 (0000h) 1 1111 1111 1111 (1FFFh). • 0000h à 1FFFh = 8192d = = 8*1024 = 8K word. • 1 word possui 14 bits.
Organização da Memória • Memória de programa. • Contador de Programa (PC). • PCL Contém os 8 bits menos significativos de PC. • Pode ser lido e escrito. • PCH Contém os 5 bits mais significativos. • Não pode ser lido nem escrito diretamente. • Todas as atualizações são feitas via PCLATH.
Organização da Memória • Memória de programa. • Contador de Programa (PC) – Quatro situações de carregamento.
Organização da Memória • Memória de programa. • Após qualquer tipo de reset, PC apontará para o endereço 0000h. Em seguida, saltará para o início da página 0. • Sempre que ocorrer alguma interrupção, PC apontará para o endereço 0004h. Em seguida, saltará para o endereço da rotina de serviço de interrupção que ocorreu.
Organização da Memória • Pilha (Stack). • Contém o endereço de retorno a partir de um desvio. • Implementada por hardware com 8 níveis (chamadas ou interrupções) de 13 bits. • O espaço da pilha não é parte das memórias de programa nem de dados.. • O apontador de pilha não pode ser lido nem escrito. • PC é PUSHed na pilha quando CALL for executada ou quando um desvio por interrupção ocorrer. • A pilha é POPed quando RETURN, RETLW ou RETFIE for executado.
Organização da Memória • Pilha (Stack). • Ocorrência de mais que 8 desvios ou interrupções simultâneas.
Organização da Memória • Paginação da memória de programa. • Temos 8K = 8192 = 213 13 bits para endereçar (PC). • Cada umas das 4 páginas possui 2K = 211 11 bits. • Endereçar as páginas - 4 = 22 2 bits Página 0 (0000-07FF) 00 000 0000 0000 00 111 1111 1111 Página 2 (1000-17FF) 10 000 0000 0000 10 111 1111 1111 Os bits <4:3> de PCLATH são usados para especificar a página. Página 1 (0800-0FFF) 01 000 0000 0000 01 111 1111 1111 Página 3 (1800-1FFF) 11 000 0000 0000 11 111 1111 1111
Organização da Memória • Paginação da memória de programa. • Execução das instruções CALL e GOTO. • CALL e GOTO possuem uma faixa de endereço de 11 bits. • O usuário deve especificar a página em PCLATH<4:3>. • Quando uma instrução de retorno for executada, o endereço completo de 13 bits é retornado para PC. • Observe que a pilha armazena endereços de 13 bits.
Organização da Memória • Memória de dados (SRAM) – 368 bytes. • É dividida em quatro bancos que contém os registradores de propósito geral (GPRs) e os registradores de função especial (SFRs). • GPRs Utilizados para armazenar temporariamente os dados e resultados criados durante a execução do programa. • SFRs Utilizados para controlar a operação dos módulos CPU e periféricos. SFRs são divididos em dois grupos: core(CPU) e periféricos.