32
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A PIC16F877A Jadsonlee da Silva Sá [email protected] www.univasf.edu.br/~jadsonlee. sa

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá [email protected]

Embed Size (px)

Citation preview

Page 1: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

PIC16F877APIC16F877A

Jadsonlee da Silva Sá

[email protected]/~jadsonlee.sa

Page 2: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

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.

Page 3: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

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ção Valor é 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.

Page 4: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

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.

Page 5: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

CaracterísticasCaracterí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).

Page 6: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Diagrama de Pinos

Page 7: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Configuração dos Pinos - DIPPino 1 - /MCLR - /Vpp Entrada do reset/Entrada da tensão de programação

Pino 2 - RA0/AN0 E/S digital e entrada analógica.

Pino 3 - RA1/AN1 E/S digital e entrada analógica.

Pino 4 - RA2/AN2/Vref-/CVref E/S digital, entrada analógica, entrada baixa da tensão de referência do A/D e saída Vref do comparador.

Pino 5 - RA3/AN3/Vref+ E/S digital, entradas analógica e entrada alta da tensão de referência do A/D.

Pino 6 RA4/T0CKI/C1OUT E/S digital, entrada do clock externo do timer0 e entrada do comparador 1.

Pino 7 - RA5 – /SS - AN4 -C2OUT

E/S digital, entrada slave select da SPI e entrada do comparador 2.

Pino 8 - RE0//RD/AN5 E/S digital e controle de leitura da porta paralela escrava.

Pino 9 - RE1//WR/AN6 E/S digital e controle de escrita da porta paralela escrava.

Pino 10 - RE2//CS/AN7 E/S digital e controle de seleção do chip da porta paralela escrava.

Pino 11 - VDD Alimentação.

Pino 12 - VSS Terra.

Pino 13 - OSC1/CLKI Entrada do oscilador e entrada da fonte de clock externa.

Pino 14 - OSC2/CLKOUT Saída do oscilador e saída do clock.

Pino 15 - RC0/T1OSO/T1CKI E/S digital, saída do oscilador do timer 1 e entrada do clock externo do timer 1.

Page 8: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Pino 16 – RC1/T1OSI/CCP2 Entrada/saída digital, entrada do oscilador do timer 1 e entrada de captura 2 ou saída de comparação 2 ou saída do PWM2.

Pino 17 – RC2/CCP1 Entrada/saída digital e entrada de captura 1 ou saída de comparação 1 ou saída do PWM1.

Pino 18 – RC3/SCK/SCL Entrada/saída digital, entrada/saída do clock da SPI e entrada/saída do clock da I2C.

Pino 19 – RD0/PSP0 Entrada/saída digital e dados da porta paralela escrava.

Pino 20 – RD1/PSP1 Entrada/saída digital e dados da porta paralela escrava.

Pino 21 – RD2/PSP2 Entrada/saída digital e dados da porta paralela escrava.

Pino 22 – RD3/PSP3 Entrada/saída digital e dados da porta paralela escrava.

Pino 23 – RC4/SDI/SDA Entrada/saída digital, entrada de dados da SPI e da I2C.

Pino 24 – RC5/SDO Entrada/saída digital e saída de dados da SPI.

Pino 25 – RC6/TX/CK Entrada/saída digital, transmissão assíncrona USART e clock síncrono da USART 1.

Pino 26 – RC7/RX/DT Entrada/saída digital, recepção assíncrona USART e dados síncrono da USART 1.

Pino 27 – RD4/PSP4 Entrada/saída digital e dados da porta paralela escrava.

Pino 28 – RD5/PSP5 Entrada/saída digital e dados da porta paralela escrava.

Pino 29 – RD6/PSP6 Entrada/saída digital e dados da porta paralela escrava.

Pino 30 – RD7/PSP7 Entrada/saída digital e dados da porta paralela escrava.

Page 9: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Configuração dos Pinos - DIP

Pino 31 – VSS Terra.

Pino 32 – VDD Alimentação.

Pino 33 – RB0/INT Entrada/saída digital e interrupção externa.

Pino 34 – RB1 Entrada/saída digital.

Pino 35 – RB2 Entrada/saída digital.

Pino 36 – RB3/PGM Entrada/saída digital e habilita programação ICSP.

Pino 37 – RB4 Entrada/saída digital.

Pino 38 – RB5 Entrada/saída digital.

Pino 39 – RB6/PGC Entrada/saída digital e clock da programação ICSP.

Pino 40 – RB7/PGD Entrada/saída digital e dados da programação ICSP.

Page 10: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Diagrama Diagrama de Blocosde Blocos

Page 11: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

ArquiteturaArquitetura Arquitetura Harvard.

– As memórias de programa e dados possuem barramentos diferentes.

Page 12: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

ArquiteturaArquitetura 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.

Page 13: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

ArquiteturaArquitetura 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.

Page 14: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

ArquiteturaArquitetura 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

Page 15: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

CPU - InstruçõesCPU - 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).

Page 16: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

CPU - InstruçõesCPU - Instruções Formato de cada categoria.

Page 17: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

CPU - InstruçõesCPU - Instruções Instruções reconhecidas pelo PIC16F877A.

Page 18: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

ULAULA 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.

Page 19: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 20: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória Memória de programa.

– Dividida em 4 páginas de 2K.

Page 21: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 22: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 23: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória Memória de programa.

– Contador de Programa (PC) – Quatro situações de carregamento.

Page 24: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória Memória de programa.

– Após qualquer tipo de reset,PC apontará para o endereço0000h. Em seguida, saltará parao início da página 0.

– Sempre que ocorrer algumainterrupção, PC apontará para oendereço 0004h. Em seguida, saltarápara o endereço da rotina de serviçode interrupção que ocorreu.

Page 25: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 26: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória Pilha (Stack).

– Ocorrência de mais que 8 desvios ou interrupções simultâneas.

Page 27: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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 bitsPágina 0 (0000-

07FF)

00 000 0000 0000

00 111 1111 1111

Página 1 (0800-0FFF)

01 000 0000 0000

01 111 1111 1111

Página 2 (1000-17FF)

10 000 0000 0000

10 111 1111 1111

Página 3 (1800-1FFF)

11 000 0000 0000

11 111 1111 1111

Os bits <4:3> de PCLATH são

usados para especificar a

página.

Page 28: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 29: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganizaçã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.

Page 30: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória

Page 31: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória

Page 32: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Organização da MemóriaOrganização da Memória