• Nenhum resultado encontrado

Parte 2 PIC DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "Parte 2 PIC DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO"

Copied!
48
0
0

Texto

(1)

1 25/04/2017

Parte 2

PIC

2 25/04/2017

1. DEFINIÇÃO

2.

MCU’S DE 8 BITS

3.

MCU’S DE 16 E DE 32 BITS

4. PIC16F877-20/P

5. FILE REGISTERS

6. PROGRAM MEMORY

7. ULA

DEFINIÇÃO

1

DEFINIÇÃO

3 25/04/2017

DEFINIÇÃO

1

4 25/04/2017

• Ideal para sistemas embarcados (embedded systems). • Possui uma unidade de microprocessamento, como umP. • Possui periféricos específicos não encontrados em umP.

MCU

DEFINIÇÃO

1

5 25/04/2017

• MCU Possui periféricos não essenciais ao processamento, como:

• Memória para programa

• Memória para dados permanentes • Memória para dados temporários • Oscilador

• Contador • Temporizador • Comparador • Conversor A/D

• Conversor série/paralelo e paralelo/série • PWM

Diferenças entre P e MCU

DEFINIÇÃO

1

6 25/04/2017

• PIC– Programmable Interface Controller.

• Nome oficial: PICmicro®.

• Comercializado pela Microchip Technology Inc.. • Lançado em 2001.

• É um tipo de microcontrolador (MCU).

• Também fabrica DSC´s – Digital Singal Controllers • Os DSC´s da Microchip são chamados de dsPIC®.

PIC

(2)

DEFINIÇÃO

1

7 25/04/2017

• Harvard Architecture

• Long Word Instructions • Single Word Instructions • Single Cycle Instructions • Register File Architecture

• Instruction Pipelining

• Reduced Instruction Set

• Orthogonal (Symmetric) Instructions

Características

PIC16F877

DEFINIÇÃO

1

8 25/04/2017 Família Arquitetura

PIC10F2XX, PIC12X5XX, PIC16X5X, PIC16X5XX Harvard

PIC12X6XX, PIC16 Harvard

PIC18 Harvard

PIC24, dsPIC Modified

Harvard PIC32 MIPS

Famílias PIC

DEFINIÇÃO

1

9 25/04/2017

Arquitetura Harvard versus Von-Neumann

• Alguns engenheiros consideram a arquitetura Harvard melhor. • Alguns engenheiros consideram a

arquitetura Von-Neumann melhor. • Não há consenso.

• Ambas arquiteturas são usadas. • Diversos outros parâmetros são

dependentes desta escolha.

DEFINIÇÃO

1

10 25/04/2017

Arquitetura Harvard versus Von-Neumann

http://ithare.com/w p-content/uploads/BB_part55_v2.png

DEFINIÇÃO

1

11 25/04/2017

Arquitetura Harvard versus Von-Neumann

8-bit core

8-bit 14-bit

8-bit PIC16F877 8-bit MCU

• Se estamos falando de µP ou CPU, os blocos estão em chips separados. • Se estamos falando de MCU, os

blocos estão no mesmo chip.

8-bit core

DEFINIÇÃO

1

12 25/04/2017

Arquitetura Harvard versus Von-Neumann

Intel®8051 Program Data data bus data bus d a ta b u s File registers

(3)

DEFINIÇÃO

1

13 25/04/2017

• Com o lançamento da memória flash, EEPROM em uma MCU tornou-se sinônimo de data memory e flash de

program memory.

• Antes do lançamento da memória flash, program memory e data memory eram construídas em EEPROM, o que permitia que ambas fossem implementadas em uma única matriz ou célula.

• Por causa disso, antes do lançamento da flash, a arquitetura Von-Neumann era mais atraente.

• Com o uso da flash program memory em arquitetura Von-Neumann, uma lógica de endereçamento deve fazer a seleção entre flash e EEPROM; geralmente por meio dos

bits mais significativos.

• Isso torna o uso da arquitetura Harvard mais interessante.

Arquitetura Harvard versus Von-Neumann

DEFINIÇÃO

1

14 25/04/2017

• Não é correto afirmar que a diferença entre uma arquitetura e a outra é o fato das duas memórias estarem juntas ou não, pois na arquitetura Von-Neumann as duas memórias podem ser separadas. • O correto é afirmar que na arquitetura

Von-Neumann as duas memórias tem os seus dados acessados através do mesmo barramento. • Na arquitetura Harvard, as memórias são

acessadas por meio de barramentos separados.

Arquitetura Harvard versus Von-Neumann

DEFINIÇÃO

1

15 25/04/2017

• Não faz sentido falar nestas arquiteturas quando se lida com µP´s, pois as duas memórias localizam-se fora do chip. • Mesmo assim, estes princípios podem

ser aplicados no que diz respeito aos barramentos externos ao chip.

Arquitetura Harvard versus Von-Neumann

DEFINIÇÃO

1

16 25/04/2017 Harvard Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 13 0 Von-Neumann Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 7 0

• Exemplo Harvard: MCU PIC16F877. • Exemplo Von-Neumann: MCU Intel®8051.

Arquitetura Harvard versus Von-Neumann

Program memory

DEFINIÇÃO

1

17 25/04/2017 Harvard Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 15 0

PIC18 Two-Word Instructions

• A maioria das instruções da PIC18 (8-bit) usam um único

16-bit word.

• Outras instruções da PIC18 usam dois 16-bit words. • CALL, GOTO e LFSR.

• Estas instruções são chamadas de Double Word Instructions. • Elas requerem duas buscas em dois ciclos de instrução.

DEFINIÇÃO

1

18 25/04/2017

• O uso da arquitetura Harvard foi um dos grandes atrativos apresentados nasMCU’s PIC.

• O lançamento das MCU’s PIC, em 2001, logo após a

popularização das memórias flash, em 2000, dá a impressão de que a comercialização das MCU’s PIC

estava condicionada à popularização das memórias flash. • As primeiras MCU’s PICforam lançadas com program memory implementada em EEPROM, em arquitetura

Harvard, mesmo já existindo memória flash, porém esses modelo não são mais fabricados.

• Há outros fabricantes usando a arquitetura Harvard.

PIC16F877

(4)

DEFINIÇÃO

1

19 25/04/2017 CORE 256-byte EEPROM DATA MEMORY 8-bit Data/Address Control BUS 8k-instruction 14-bit FLASH PROGRAM MEMORY 14-bit Instruction BUS 13-bit Address BUS PIC16F877

Arquitetura Harvard

0 7 0 13 0 12

DEFINIÇÃO

1

20 25/04/2017 8-bit Data Memory 8-bit Data Bus 8-bit PIC® CORE 14-bit Program Memory 14-bit Bus 13-bit Bus • A data memory recebe a palavra de dado e a

palavra de endereço no mesmo barramento. • Dado e endereço não podem ser manipulados

ao mesmo tempo.

• Como o barramento é o mesmo, dado e endereço possuem o mesmo tamanho, 8 bits. • A program memory possui barramentos

separados para dado e endereço, por isso estas palavras podem ter tamanhos diferentes.

PIC16F877

Arquitetura Harvard

DEFINIÇÃO

1

21 25/04/2017

• Por usar barramentos separados para instrução e endereço, a leitura de uma instrução é feita em um único ciclo de instrução.

• A flash program memory tem endereçamento separado do endereçamento da EEPROM data memory.

• O opcode não precisa ter o mesmo tamanho dos dados. • Permite a otimização opcode independente do tamanho

das palavras de dados, pois este tamanho não precisa ser um múltiplo de oito.

• Na família mid-range, o dado é de 8 bits e o opcode é de 14 bits. Na família base line, o opcode é de 12 bits.

PIC16F877

Arquitetura Harvard

DEFINIÇÃO

1

22 25/04/2017 0 13 0000h 1FFFh 13-bit address bus

14-bit data bus (Program Bus) 0 12 0 13 0 7 00h FFh 8-bit address bus

8-bit data bus

0 7

0 7

EEPROM data memory

flash program memory

• O address bus da EEPROM não é o mesmo da flash. • O data bus da EEPROM não é o mesmo da flash.

8-bit MCU data bus PIC16F877

Arquitetura Harvard

DEFINIÇÃO

1

23 25/04/2017

• A multiplexação não é feita por hardware. • O programa assembly realiza a multiplexação.

PIC16F877

Arquitetura Harvard

0 7 00h FFh 8-bit address bus

8-bit data bus

0 7 0 7

EEPROM data memory

8-bit MCU data bus

8-bit

31

MUX

8-bit control bus0 7

DEFINIÇÃO

1

0 7 00h FFh 8-bit address bus

8-bit data bus

EEPROM data memory

8-bit MCU data bus S F R S F R

8-bit control bus

24 25/04/2017

PIC16F877

Arquitetura Harvard

• Os barramentos da data memory são registrados. • Essa registração permite a multiplexação por software.

S

F

(5)

DEFINIÇÃO

1

25 25/04/2017 8-bit MCU 8-bit Prg/Dt Memory 8-bit Bus

• O endereço e o dado da memória usa o data bus. • Endereço e dado são de oito bits.

Arquitetura Von-Neumann

MCU Intel™ 8081

DEFINIÇÃO

1

26 25/04/2017

• A instrução ADCA usa 1 byte (8Fh).

• A instrução ADI usa 2 bytes (C6h , 8-bit data). • A instrução LDA usa 3 bytes (3Ah, 16-bit address).

Von-Neumann

P Intel™ 8085 Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 7 0

DEFINIÇÃO

1

27 25/04/2017

• ORL A,@R0 usa 1 byte (46h).

• ORL A,#data usa 2 bytes (44h , 8-bit data). • ORL iram addr,#data usa 3 bytes (43h, 16-bit address).

Von-Neumann

Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 7 0 MCU Intel™ 8051

DEFINIÇÃO

1

25/04/2017 28

Exemplo fictício para memória única, MCU/P de 16 bits

0 15

0000h

3FFFh 15-bit address bus

<A14:A0>

16-bit data bus <D15:D0> 0 14 0 15 4000h 4FFFh EEPROM Program Memory <A13:A0> A14=0 Data Memory <A11:A0> A12=0 A13=0 A14=1 16-bit MCU/P data bus

Von-Neumann

DEFINIÇÃO

1

25/04/2017

• Opcode e dado de 16 bits.

• Program Memory de 16k instruções (16384). • Data Memory de 2k palavras (2048).

• O bit 14 do endereço identifica a memória. 29

Exemplo fictício para memória única, MCU/P de 16 bits

0 15

0000h

3FFFh 15-bit address bus

16-bit data bus

0 14 0 15 4000h 4FFFh EEPROM

Von-Neumann

DEFINIÇÃO

1

12-bit EEPROM address bus

25/04/2017 30

0 15

0000h

3FFFh

Exemplo fictício para memórias separadas, MCU/P de 16 bits

4000h 4FFFh EEPROM data memory

flash program memory

14-bit flash address bus

16-bit data bus

0 13 0 15 0 11

16-bit data bus 15-bit address bus

0 14

Von-Neumann

• Capacidade e endereçamento iguais ao exemplo anterior. 16-bit data bus

(6)

DEFINIÇÃO

1

25/04/2017 31

Exemplo fictício para memórias separadas, MCU/P de 16 bits

Von-Neumann

0 15 0000h 3FFFh 4000h 4FFFh EEPROM data memory

flash program memory

CS = A14 × /A13 × /A12 CS = /A14

Faixa proibida: (A14×A13) + (A14×A12)

DEFINIÇÃO

1

25/04/2017 32

EEPROM data memory

flash program memory

Program Memory

Data Memory

EEPROM

Modo antigo Modo moderno

• Antigamente, EEPROM era usada para programa e para dados.

• Sendo tudo em EEPROM, é possível usar uma única matriz. • Atualmente, EEPROM é usada para dados (mais rápida) e

flash é usada para programa (mais densa).

• Sendo tecnologias diferentes, há duas matrizes.

Von-Neumann

Não é a PIC16F877

DEFINIÇÃO

1

25/04/2017 33

• Os dois modos seguem o mesmo endereçamento. • O address bus e o data bus da memória são acessados

através do MCU/P data bus.

• Program word e data word têm o mesmo tamanho (embora isso não seja obrigatório).

• Address word pode ser menor do que program/data word. • Program address word pode diferir de data address word. • Toda informação passa pelo MCU/P data bus.

• Dado e endereço são informados em ciclos diferentes.

Von-Neumann

Não é a PIC16F877

DEFINIÇÃO

1

25/04/2017 34

• Não é arquitetura Long Word Instructions. • O tamanho das palavras de programa é o

mesmo das palavras de dado. • É possível usar uma única matriz.

MCU/P data bus MCU/P data bus MCU/P data bus

Von-Neumann

Não é a PIC16F877

DEFINIÇÃO

1

MCU/P data bus MCU/P data bus MCU/P data bus 25/04/2017 35

• Não é arquitetura Single Word Instructions.

• As instruções podem usar uma, duas ou três palavras. • Cada palavra usa um endereço.

Von-Neumann

Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 Não é a PIC16F877

DEFINIÇÃO

1

25/04/2017 36

• Não é arquitetura Single Cycle Instructions. • Cada palavra é lida em um ciclo.

• Como temos instruções de uma, duas ou três palavras, são usados, então, um, dois ou três ciclos de instrução para a sua leitura.

Von-Neumann

Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 Não é a PIC16F877 MCU/P data bus MCU/P data bus MCU/P data bus

(7)

DEFINIÇÃO

1

25/04/2017 37

Endereço dividido

Von-Neumann

• Geralmente, a capacidade de endereços de memória (programa e dado) exige o uso de palavras de endereço cujo tamanho, em bits, é superior ao das palavras usadas como programa ou dado. • Isto requer, então, que a palavra de endereço seja

dividida em partes que caibam no barramento. • No caso da MCU Intel™ 8051, o barramento é de

oito bits, e o endereço é de 16 bits, havendo a necessidade da divisão em low-byte e high-byte. • Se a instrução usa endereço da memória como

argumento, são usadas, então, duas palavra de programa para este endereço.

DEFINIÇÃO

1

25/04/2017 38

• O address word possui 16 bits. • O data word possui 8 bits. • OP data bus possui 8 bits.

• O address word é dividido em duas palavras de 8 bits (L/H). • Cada metade é enviada em um ciclo de instrução.

• Instrução de literal usa 2 bytes (mnemônico e literal). • Instrução de endereço usa 3 bytes (mnemônico e endereço).

P Intel 8085 16-bit address bus

0 15

8-bit data bus

0 7 8-bit MCU/P data bus

Von-Neumann

DEFINIÇÃO

1

25/04/2017 39

Caso onde program word é maior do que data word.

Von-Neumann Single Word

16-bit flash program memory 0 15 HIGH LOW87 8-bit EEPROM data memory 0 7

• Long Word Instructions.

• Single Word Instructions.

• Double Cycle Instructions.

• O opcode é dividido em duas palavras de 8 bits (L/H). • Não foi encontrado exemplo

para esta arquitetura.

DEFINIÇÃO

1

25/04/2017 40

0000h

3FFFh

Caso onde program word é maior do que data word.

4000h 4FFFh

8-bit data bus

8-bit Data Bus

0 7

15-bit address bus

0 14

0 13

0

11 12-bit Address Bus

14-bit Address Bus

• O bit 14 do address bus serve para selecionar as duas memórias.

Von-Neumann Single Word

DEFINIÇÃO

1

25/04/2017 41

Caso onde program word é maior do que data word. 15-bit address bus

0 14

8-bit data bus

0 7

8-bit MCU/P data bus

• O address word possui 15 bits. • O data word possui 8 bits. • O MCU/P data bus possui 8 bits.

• O address word é dividido em duas palavras de 8 bits (L/H). • Cada metade é enviada em um ciclo de instrução.

Von-Neumann Single Word

DEFINIÇÃO

1

42 25/04/2017

• O address bus da EEPROM é o mesmo do da flash. • O data bus da EEPROM é o mesmo do da flash.

• Isto significa que o data bus do chip lida com dados e com instruções.

• Há uma multiplexação temporal para uso do data

bus para dados e para instruções.

• O data bus é multiplexado em: • Endereço da instrução na flash. • Conteúdo da instrução na flash. • Endereço do dado na EEPROM. • Conteúdo do dado na EEPROM. • Outras funções da ULA.

(8)

DEFINIÇÃO

1

43 25/04/2017

Long Word Instructions

• Consequência da arquitetura Harvard.

• O opcode possui tamanho maior do que os dados.

• Na família PICmid-range, o dado é de 8 bits e o opcode é de

14 bits.

• Isto é possível porque as instruções possuem um barramento separado do de dados (consequência da arquitetura Harvard). • Isto permite que a instrução contenha todas as informações

necessárias, os mnemônicos e os argumentos.

• No contrário, as demais informações devem ser fornecidas em palavras separadas.

• É possível implementar long word instructions em arquitetura Von-Neumann desde que o tamanho as instruções seja múltiplo do tamanho dos dados (possível mas não usado).

PIC16F877

DEFINIÇÃO

1

44 25/04/2017

Single Word Instructions

• Consequência da arquitetura Long Word Instructions. • Cada instrução emprega, apenas, um opcode.

• Cada opcode representa uma instrução, de forma inequívoca. • O número de palavras da memória de programa é igual ao

valor máximo de instruções graváveis.

• No contrário, sem Long Word Instructions, os opcodes possuem o tamanho das palavras de dados, e uma instrução pode usar várias palavras.

PIC16F877

DEFINIÇÃO

1

45 25/04/2017

• Consequência da arquitetura Harvard.

• Single Cycle Instructions: Como as instruções possuem um barramento próprio, todos os bits do opcode são lidos no mesmo ciclo, mesmo se o opcode possui um tamanho maior do que o das palavras de dados. • No contrário, se a instrução emprega várias palavras, é

gasto um ciclo por palavra.

• A arquitetura Von-Neumann não permite Single Cycle

Instructions.

• Na arquitetura PIC, se a instrução pode interferir no

PC, um ciclo a mais é gasto.

Single Cycle Instructions

PIC16F877

DEFINIÇÃO

1

46 25/04/2017

Harvard, Long Word, Single Word e Single Cycle

• A arquitetura Harvard permite o uso de Long Word

Instructions.

• A arquitetura Long Word Instructions permite o uso de

Single Word Instructions e Single Cycle Instructions.

• Essas quatro características estão relacionadas.

• A arquitetura Von Neumann permite o uso de Long Word

Instructions deste que o tamanho do opcode seja um

múltiplo inteiro do tamanho dos dados, e, nesse caso, não se tem Single Word Instructions.

Harvard Architecture Long Word Instructions Single Word Instructions Single Cycle Instructions PIC16F877

DEFINIÇÃO

1

47 25/04/2017

• Reduced Instruction Set (RISC): • Poucas instruções são necessárias.

• RISC é mais indicado em Single Cycle Instructions. • Instruction Pipelining:

• A busca por uma instrução usa um ciclo (TCY).

• A execução usa outro TCY.

• Enquanto uma é executada, a próxima é buscada. • Economiza-se um TCYa cada instrução.

• É usado um instruction register. • Orthogonal (Symmetric) Instructions:

• Todas as instruções são destinadas aos registradores. • O work register ou acumulador é um registrador.

Características

PIC16F877

DEFINIÇÃO

1

48 25/04/2017

Register File Architecture

• Os registradores para funções especiais (SFR’s) e os de uso geral (GPR’s) são acessados por meio de um único mapeamento, uma única lógica de endereçamento, um único

address bus.

• Na arquitetura PIC, osGPR’s podem ser considerados como

periféricos, pois não são fundamentais para o funcionamento do chip e poderiam localizar-se em um chip separado. • Na arquitetura PIC, os SFR’s usados por blocos funcionais

periféricos também podem ser considerados como periféricos, pois, uma vez que os periféricos poderiam estar contidos em

chips separados, tais registradores estariam em tais chips.

• Os SFR’s para uso do core são considerados como parte integrante do core.

(9)

DEFINIÇÃO

1

49 25/04/2017

• Os GPR’s são construído na forma matricial, como toda SRAM. • Os SFR’s localizam-se em diversas

partes do chip, próximos aos blocos funcionai sobre os quais atuam. • Todos esses registradores recebem

a mesma lógica de endereçamento, por meio do mesmo address bus, isso simplifica a programação.

Register File Architecture

PIC16F877

DEFINIÇÃO

1

50 25/04/2017

• ParaP’s, recursos são supridos por chip’s separados. • Geralmente, a programação de um MCU é mais fácil porque o

endereçamento dos recursos periféricos é conhecido.

• Geralmente, a arquitetura de uma MCU é mais complicada do que a de umP com a mesma capacidade de processamento.

Diferenças entre P e MCU

DEFINIÇÃO

1

51 25/04/2017 Tamanho da palavra: • 08 bits. • 16 bits. • 32 bits.

Famílias PIC

• O tamanho da palavra também retrata o tamanho do data bus. • Esse é o máximo valor para GPR’s e SFR’s.

• Esse tamanho também define o data memory.

DEFINIÇÃO

1

52 25/04/2017

Famílias PIC

DEFINIÇÃO

1

53 25/04/2017

• Funcionalidade é a oferta de recursos na forma de periféricos.

• À medida em que se aumenta a funcionalidade e a performance dos modelos de MCU, a quantidade de instruções vai aumentando.

• Quanto menos instruções há, maior é a característica RISC da MCU; quanto mais instruções há, maior é a característica CISC da MCU.

• Quanto mais funcionalidades e instruções há na arquitetura, maior é o tamanho do opcode.

RISC/CISC

DEFINIÇÃO

1

54 25/04/2017

• A correlação entre funcionalidade e performance não encontra justificativa no contexto da engenharia elétrica.

• Esta correlação tem justificativa puramente comercial e financeira.

• Quando a MCU possui baixa performance, seu custo é baixo, e um aumento na sua funcionalidade provoca um acréscimo relevante em seu custo. • Quando a MCU possui alta performance, seu custo

é elevado, e um aumento na sua funcionalidade provoca um acréscimo desprezível em seu custo.

(10)

DEFINIÇÃO

1

55 25/04/2017

• RISC: Reduced Instruction Set Computing. • CISC: Complex Instruction Set Computing. • RISC: Opcodes curtos (poucos bits). • CISC: Opcodes longos (muitos bits).

• RISC: Muitas instruções para realizar tarefas simples. • CISC: Poucas instruções para realizar tarefas complexas. • As duas arquiteturas geram programas com tamanho similar. • As duas arquiteturas geram programas com rapidez similar.

RISC/CISC

DEFINIÇÃO

1

56 25/04/2017

RISC/CISC

Programa em RISC Programa em CISC Tamanho médio das instruções

MCU’S DE 8 BITS

2

57 25/04/2017

MCU’S DE 8 BITS

MCU’S DE 8 BITS

2

58 25/04/2017

• 8-bit data bus.

• Dados e instruções em barramentos separados. • Esta foi a novidade introduzida pela PIC.

• Acesso simultâneo aos dois barramentos. • Aumento da rapidez de processamento.

Dados de 8 bits

MCU’S DE 8 BITS

2

59 25/04/2017 • EPROM PIC16CXXX • ROM PIC16CRXXX • flash PIC16FXXX

Exemplos de tipos de memória de programa

• A versão em EPROM não é mais fabricada. • A versão em ROM é útil para grande

volume com o mesmo programa.

• O chip sai de fábrica com o programa gravado em ROM gate array.

MCU’S DE 8 BITS

2

60 25/04/2017 • Baseline. • Mid-Range. • Enhanced Mid-Range. • PIC18.

Arquiteturas

(11)

MCU’S DE 8 BITS

2

61 25/04/2017

Baseline Architecture

http://w w w.microchip.com/_images/BaselineArch_large.jpg 2k instructions 11–bit address 12–bit words 4 pages flash FILE REGISTERS SRAM DATA BUS / EEPROM 8-bit 8-bit 11-bit

MCU’S DE 8 BITS

2

62 25/04/2017

Mid-Range Architecture

• Todos os itens do Baseline.

• Hardware de comunicação serial MSSP/USART/SPI. • Master Synchronous Serial Port.

• Universal Synchronous Asynchronous Receiver/Transmitter. • Protocolos de comunicação serial SPI™ e I²C™.

• Synchronous Serial Port. • Serial Peripheral Interface. • Inter-Integrated Circuit. • PWM.

• Controlador LCD (ausente na PIC16F877). • Conversor A/D de 10 bits.

MCU’S DE 8 BITS

2

63 25/04/2017

Mid-Range Architecture

http://w w w.microchip.com/_images/MidRangeArch.jpg 8k instructions 13–bit address 14–bit words 4 pages flash DATA BUS 8-bit 8-bit 13-bit FILE REGISTERS SRAM / EEPROM

MCU’S DE 8 BITS

2

64 25/04/2017

Mid-Range Architecture - Core

(2): Ausente na PIC16F877. flash

MCU’S DE 8 BITS

2

65 25/04/2017

Mid-Range Architecture – General purpose I/O

Nem todos os modelos possuem todas as portas, e nem no tamanho apresentado.

Data bus

MCU’S DE 8 BITS

2

66 25/04/2017

Mid-Range Architecture - Peripheral Modules

Nem todos os modelos possuem todos os itens.

(12)

MCU’S DE 8 BITS

2

67 25/04/2017

Mid-Range Architecture - Peripheral Modules

Nem todos os modelos possuem todos os itens.

• Flash program memory*. • EEPROM data memory. • General purpose registers.

• Portas paralelas (A, B, C, D, E, F, G). • Porta paralela escrava.

• Portas seriais (SSP e USART). • Contadores (0, 1, 2).

• Capture-Compare-PWM (1,2). • Conversor A/D.

• LCD driver**.

* Não ligado ao data bus. ** Ausente na PIC16F877.

MCU’S DE 8 BITS

2

68 25/04/2017

Enhanced Mid-Range Architecture

• Todos os itens do Mid-Range. • Periféricos de comunicação.

• PWM com base de tempo independente.

MCU’S DE 8 BITS

2

69 25/04/2017

Enhanced Mid-Range Architecture

http://w w w.microchip.com/_images/715px_Extended_Midrange_graph.jpg 15–bit address 14–bit words flash DATA BUS DATA BUS FILE REGISTERS SRAM

MCU’S DE 8 BITS

2

70 25/04/2017

PIC18 Architecture

• Todos os itens do Enhanced Mid-Range. • Multiplicação 8bit x 8bit.

• CAN

• Controller Area Network • CTMU

• Charge Time Measurement Unit • Protocolo de comunicação USB. • Protocolo de comunicação Ethernet. • Conversor A/D de 12 bits.

MCU’S DE 8 BITS

2

71 25/04/2017

PIC18 Architecture

http://w w w.microchip.com/_images/715px_PIC18_graph.jpg

flash DATA BUS

DATA BUS FILE REGISTERS SRAM 20–bit address 16–bit words

MCU’S DE 8 BITS

2

72 25/04/2017

MCU´s de 8 bits

http://w w w.microchip.com/_images/8bit_overview _graphic.png

(13)

MCU’S DE 8 BITS

2

73 25/04/2017 PIC10F200 PIC10F202 PIC10F204 PIC10F206 PIC10F220 PIC10F222 PIC12F508 PIC12F509 PIC12F510 PIC12F519 PIC12F529T39A PIC16F505 PIC16F506 PIC16F526 PIC16F54 PIC16F57 PIC16F59 PIC16F707 PIC10F320 PIC10F322 PIC12F609 PIC12F615 PIC12F617 PIC12F629 PIC12F635 PIC12F675 PIC12F683 PIC12F752 PIC16F610 PIC16F616 PIC16F627A PIC16F628A PIC16F630 PIC16F631 PIC16F636 PIC16F639 PIC16F648A PIC16F676 PIC16F677 PIC16F684 PIC16F685 PIC16F687 PIC16F688 PIC16F689 PIC16F690 PIC16F716 PIC16F72 PIC16F720 PIC16F721 PIC12F1501 PIC12F1822 PIC12F1840 PIC12LF1840T48A PIC16F1454 PIC16F1455 PIC16F1458 PIC16F1459 PIC16F1503 PIC16F1507 PIC16F1508 PIC16F1509 PIC16F1512 PIC16F1513 PIC16F1516 PIC16F1517 PIC16F1518 PIC16F1519 PIC16F1526 PIC16F1527 PIC16F1782 PIC16F1783 PIC16F1784 PIC16F1786 PIC16F1787 PIC16F1823 PIC16F1824 PIC16F1825 PIC16F1826 PIC16F1827 PIC16F1828 PIC16F1829 PIC16F1847 PIC16F1933 PIC16F1934 PIC16F1936 PIC16F1937 PIC16F1938 PIC16F1939 PIC16F1946 PIC16F1947 PIC16LF1902 PIC16LF1903 PIC16LF1904 PIC16LF1906 PIC16LF1907 PIC16F722 PIC16F722A PIC16F723 PIC16F723A PIC16F724 PIC16F726 PIC16F727 PIC16F73 PIC16F737 PIC16F74 PIC16F747 PIC16F76 PIC16F767 PIC16F77 PIC16F777 PIC16F785 PIC16F84A PIC16F87 PIC16F88 PIC16F882 PIC16F883 PIC16F884 PIC16F886 PIC16F887 PIC16F913 PIC16F914 PIC16F916 PIC16F917 PIC16F946 PIC16HV540 PIC16HV785/ E n h a n ce d M id -R a n g e A rc h it e ct u re Mid-RangeArchitecture BaselineArchitecture

Exemplos de MCU´s de 8 bits

MCU’S DE 8 BITS

2

74 25/04/2017 PIC18F2221 PIC18F44J11 PIC18F67J11 PIC18F1220 PIC18F65J15 PIC18F63J90 PIC18F25J50 PIC18F65J11 PIC18F1230 PIC18F85J10 PIC18F64J90 PIC18F2321 PIC18F26J11 PIC18F45J11 PIC18F66J10 PIC18F83J11 PIC18F44J50 PIC18F46K22 PIC18F1320 PIC18F4221 PIC18F65J90 PIC18F45K80 PIC18F84J11 PIC18F26K80 PIC18F66J15 PIC18F85J15 PIC18F26J13 PIC18F2450 PIC18F1330 PIC18F83J90 PIC18F85J11 PIC18F26J50 PIC18F4321 PIC18F45J50 PIC18F67J10 PIC18F86J10 PIC18F84J90 PIC18F65J50 PIC18F46J11 PIC18F4450 PIC18F65K22 PIC18F26J53 PIC18F86J15 PIC18F85J90 PIC18F46K80 PIC18F27J13 PIC18F66J90 PIC18F2410 PIC18F6310 PIC18F46J13 PIC18F65K90 PIC18F87J10 PIC18F46J50 PIC18F86J11 PIC18F85J50 PIC18F66J50 PIC18F66J93 PIC18F6390 PIC18F85K22 PIC18F27J53 PIC18F86J16 PIC18F66K22 PIC18F65K80 PIC18F66J55 PIC18F67J90 PIC18F2420 PIC18F4410 PIC18F86J90 PIC18F46J53 PIC18F47J13 PIC18F85K90 PIC18F87J11 PIC18F67J50 PIC18F66K90 PIC18F67J93 PIC18F86J50 PIC18F6410 PIC18F86J93 PIC18F4420 PIC18F6393 PIC18F67K22 PIC18F2510 PIC18F47J53 PIC18F86K22 PIC18F86J55 PIC18F87J90 PIC18F66K80 PIC18F6490 PIC18F8310 PIC18F2423 PIC18F66J60 PIC18F2331 PIC18F67K90 PIC18F87J50 PIC18F86K90 PIC18F87J93 PIC18F8390 PIC18F2520 PIC18F4510 PIC18F66J65 PIC18F87K22 PIC18F2431 PIC18F4423 PIC18F6493 PIC18F2455 PIC18F67J60 PIC18F86J60 PIC18F87K90 PIC18F8410 PIC18F4520 PIC18F2515 PIC18F8393 PIC18F2550 PIC18F86J65 PIC18F4331 PIC18F2523 PIC18F8490 PIC18F4455 PIC18F96J60 PIC18F87J60 PIC18F2458 PIC18F2525 PIC18F4515 PIC18F4431 PIC18F4550 PIC18F96J65 PIC18F4523 PIC18F2480 PIC18F97J60 PIC18F8493 PIC18F4458 PIC18F4525 PIC18F2610 PIC18F4480 PIC18F2220 PIC18F4610 PIC18F2620 PIC18F2553 PIC18F86J72 PIC18F2580 PIC18F4620 PIC18F4553 PIC18F87J72 PIC18F4580 PIC18F2320 PIC18F4220 PIC18F6527 PIC18F2585 PIC18F4320 PIC18F4585 PIC18F8527 PIC18F2680 PIC18F6622 PIC18F4680 PIC18F2682 PIC18F8622 PIC18F4682 PIC18F2685 PIC18F6520 PIC18F6627 PIC18F4685 PIC18F8520 PIC18F8627 PIC18F6722 PIC18F6628 PIC18F8722 PIC18F8628 PIC18F6723 PIC18F8723 PIC18 Architecture PIC18F13K22 PIC18F24J10 PIC18F23K20 PIC18F14K22 PIC18F25J10 PIC18F24K20 PIC18F13K50 PIC18F23K22 PIC18F25K20 PIC18F44J10 PIC18F43K20 PIC18F24K22 PIC18F45J10 PIC18F44K20 PIC18F14K50 PIC18F45K20 PIC18F25K22 PIC18F26K20 PIC18F24J11 PIC18F43K22 PIC18F66J11 PIC18F44K22 PIC18F25J11 PIC18F46K20 PIC18F65J10 PIC18F63J11 PIC18F24J50 PIC18F66J16 PIC18F45K22 PIC18F26K22 PIC18F25K80 PIC18F64J11

MCU’S DE 8 BITS

2

75 25/04/2017

Exemplos de MCU´s de 8 bits

• Dificilmente todos os periféricos disponíveis em uma família são úteis em uma mesma aplicação. • A fim de proporcionar redução de custo,

oferecem-se modelos com menos periféricos. • Escolhe-se o modelo que possua apenas os

periféricos necessários no projeto.

• Há mais modelos disponíveis para PIC18 porque esta família apresenta maior oferta de periféricos, formando uma maior quantidade de combinações.

MCU’S DE 8 BITS

2

76 25/04/2017

Comparação das arquiteturas

Baseline Mid-Range Enhanced Mid-Range PIC18

Pinos 6 a 40 6 a 64 8 a 64 18 a 100

Instruções, tamanho 12-bit 14-bit 14-bit 16-bit

Instruções, quantidade 33 35 49 83

Flash Program Memory,

instruções Até 8 k Até 8 k Até 16 k Até 64 k Flash Program Memory,

tamanho Até 12 kB Até 14 kB Até 28 kB Até 128 kB

SRAM file register Até 138 Bytes Até 368 Bytes Até 1,5 KB Até 4 KB

MCU’S DE 8 BITS

2

77 25/04/2017

Comparação das arquiteturas

Baseline Mid-Range Enhanced Mid-Range PIC18

Instrução (bits) 12 14 14 16 Flash Program Memory Capacidade (k word) 0,25 0,5 1 1,5 2 8 0,225 0,25 0,5 1 2 4 8 1 2 4 8 16 2 4 8 12 16 24 32 40 48 64 Flash Programm Memory Tamanho (kB) 0,375 0,75 1,5 2,25 3 12 0,21875 0,4375 0,875 1,75 3,5 7 14 1,75 3,5 7 14 28 4 8 16 24 32 48 64 80 96 128 File SRAM (bytes) 16 a 368 25 a 368 64 a 1536 256 a 4096 Vide exemplos

MCU’S DE 16 E DE 32 BITS

3

78 25/04/2017

MCU’S DE 16 E DE 32 BITS

(14)

MCU’S DE 16 E DE 32 BITS

3

79 25/04/2017

MCU´s de 16 bits

http://w w w.microchip.com/_images/NEW-16-bit-graphic_large.jpg

MCU’S DE 16 E DE 32 BITS

3

80 25/04/2017

MCU´s de 16 bits

Dentro da mesma arquitetura:

• O aumento da performance por meio do aumento da frequência de operação leva ao aumento do consumo de energia elétrica. • A redução da performance por meio da

diminuição da frequência de operação leva à redução do consumo de energia elétrica. • Alta performance é desejável quando muita

informação é processada e fornecimento de energia elétrica não é problema.

• Economia no consumo de energia elétrica é desejável em sistemas alimentados por baterias.

MCU’S DE 16 E DE 32 BITS

3

81 25/04/2017

MCU´s de 16 bits

• PIC24H/E e dsPIC33F/E: Alta performance. • PIC24F e dsPIC30F: Baixo consumo.

MCU’S DE 16 E DE 32 BITS

3

82 25/04/2017

MCU´s de 16 bits

http://w w w.microchip.com/_images/PIC24FArchblkdgrm.jpg

MCU’S DE 16 E DE 32 BITS

3

83 25/04/2017

MCU´s de 16 bits

http://w w w.microchip.com/_images/PIC24FArchblkdgrm.jpg

MCU’S DE 16 E DE 32 BITS

3

84 25/04/2017

MCU´s de 32 bits

http://w w w.microchip.com/_images/32bitOverview ArchGraph_Large.jpg

(15)

PIC16F877-20/P

4

85 25/04/2017

PIC16F877-20/P

PIC16F877-20/P

4

86 25/04/2017

• É o modelo encontrado no laboratório. • Atualmente substituído pelo PIC16F887. • MCU de 8 bits.

• Mid-Range Architecture. • 35 instruções.

• 200ns para executar uma instrução (mínimo). • 40 ou 44 pinos.

• 256 bytes de memória de dados em EEPROM. • Conversor A/D de 10 bits.

• 2 Temporizadores adicionais ao Baseline. • 2 PWM´s (ou captura ou comparação).

Apresentação

PIC16F877-20/P

4

87 25/04/2017

Chip PIC

PIC16F877-20/P

4

88 25/04/2017

Chip PIC

PIC16F877-20/P

4

89 25/04/2017

Chip PIC

PIC16F877-20/P

4

90 25/04/2017

Kit didático

(16)

PIC16F877-20/P

4

91 25/04/2017

Pinagem (DIP)

PIC16F877-20/P

4

92 25/04/2017

PIC16F877-20/P

Parameter Name Value

Flash Program Memory 14-bit words Flash Program Memory 8k words File SRAM (GPR’s) 368 bytes

Data EEPROM 256 bytes

Instructions 35

CPU Speed (MIPS) 5

Interrupts 14

I/O ports A,B,C,D,E

Digital Communication Peripherals 1-USART,1-MSSP(SPI/I2C) Capture/Compare/PWM Peripherals 2 CCP

Timers 2 x 8-bit, 1 x 16-bit

ADC 8 channels, 10-bit

Temperature Range (C) -40 to 85 Operating Voltage Range (V) 2 to 5.5

Pin Count 40

PIC16F877-20/P

4

93 25/04/2017

Core

• Core (núcleo): A parte principal do chip.

• Contém os blocos funcionais que são utilizados para qualquer tipo de aplicação da MCU.

• Envolve tudo o que não é periférico.

• Não é possível operar a MCU sem o uso do core. • UmP é uma MCU sem os periféricos.

• Alguns periféricos são desligados no modo power down. • Alguns periféricos podem solicitar interrupções. • Todos os periféricos são registrados.

PIC16F877-20/P

4

94 25/04/2017

Core

• Na arquitetura Von-Neumann, a program memory é acessada através do data bus, caracterizando-a como um periférico.

• Como qualquer periférico, a program memory pode localizar-se fora do chip, como acontece com oP’s, e, por isso, não faz parte do core.

• Na arquitetura Harvard, a program memory não está conectada ao data bus do chip, o que não condiz com o conceito de um periférico.

• A program memory Harvard é um periférico especial.

PIC16F877-20/P

4

95 25/04/2017

C

o

re

8-bit Data bus Periférico

• Na SRAM, fazem parte do

core somente os SFR´s associados ao core.

PIC16F877-20/P

4

96 25/04/2017

Memórias internas

Tipo

Nome

Tamanho

flash Program memory 8k  14bits

SRAM File registers 512  8bits

(17)

PIC16F877-20/P

4

97 25/04/2017

Me

m

ó

ri

a

s

i

n

te

rn

a

s

PIC16F877-20/P

4

98 25/04/2017

Me

m

ó

ri

a

s

e

s

p

e

ci

a

is

PIC16F877-20/P

4

99 25/04/2017

EEPROM

• Mais rápida do que a flash.

• Suporta mais ciclos de gravação do que a flash. • Mais lenta do que a SRAM.

• Não indicada para dados temporários. • 256 bytes.

• Usada para dados lidos frequentemente. • Usada para dados que não podem ser voláteis. • A gravação da EEPROM não afeta a execução.

PIC16F877-20/P

4

100 25/04/2017

Pe

ri

ri

co

s

Todos periféricos estão ligados ao

data bus exceto a

PM na arquitetura Harvard.

PIC16F877-20/P

4

25/04/2017 101

Periféricos

Timer 0,1,2 SFR SFR PORT A,B,C,D,E SFR SFR A/D CCP1,2 SFR SFR Flash n-bit Todas as instruções são destinadas aos registradores.

SFR PSP

8-bit Data Bus * Flash usada como data memory.

Instruction register

PIC16F877-20/P

4

Periféricos

102 25/04/2017

• Todos os periféricos são ligados ao data bus. • Existe um SFR entre o módulo periférico e o data bus. • Isto permite que o data bus seja liberado para outras funções. • Os SFR’s envolvidos possuem tamanhos diversos.

• Quando o tamanho é superior a 8 bits, são usados dois SFR’s. • Os SFR’s associados a periféricos podem ser de:

• Dado • Endereço • Controle

(18)

PIC16F877-20/P

4

Periféricos

103 25/04/2017 Periférico SFR endereço SFR dado SFR controle

8-bit Data Bus

• Os SFR’s associados a periféricos são, na verdade, parte integrante do próprio periférico.

FILE REGISTERS

5

104 25/04/2017

FILE REGISTERS

FILE REGISTERS

5

105 25/04/2017

• Todos os registradores paralelos da PIC são memórias

estáticas.

• As principais memórias estáticas formam o file registers. • Outras memórias estáticas são a pilha, o instruction register,

o work register, etc.

• A região do file registers de uso geral é uma SRAM. • A pilha não é uma SRAM porque seu acesso não é aleatório. • O instruction register, por ser uma fila, ainda que de uma

única posição, também não é uma SRAM.

Memórias estáticas

FILE REGISTERS

5

106 25/04/2017

Endereçamento

8-bit 13-bit

• Os bits de endereçamento faltantes serão vistos mais adiante. • Aqui, foi mostrado, o tipo de endereçamento direto da SRAM. • Trata-se das instruções que lidam com file (F ou WF).

14-bit SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS

FILE REGISTERS

5

107 25/04/2017

• Registradores de uso geral. • Iniciam com valor zero. • Formam uma SRAM. • Possuem disposição matricial. • Esta SRAM é um periférico. • 368 registradores de 8 bits.

• O data-sheet chama essa SRAM de file

registers; chamaremos, porém, de file registers

os GPR’s e os SFR’s, pois, em algumas páginas, o data-sheet assume essa conotação.

GPR’s

General Purpose Registers

FILE REGISTERS

5

108 25/04/2017

• Registradores de uso específico.

• Não formam uma SRAM por não ser matricial. • Possuem localizações diversas no die. • Alguns bits iniciam em zero, outros em um. • Os SFR’s associados a periféricos são periféricos. • Os SFR’s associados a periféricos são parte

integrante do próprio periférico.

• Os SFR’s associados ao core fazem parte do core.

SFR’s

(19)

FILE REGISTERS

5

109 25/04/2017

• Os GPR’s são construído na forma matricial, como toda SRAM. • Os SFR’s localizam-se em diversas

partes do chip, próximos aos blocos funcionai sobre os quais atuam. • Todos esses registradores recebem

a mesma lógica de endereçamento, por meio do mesmo address bus

(register file architecture).

GPR’s e SFR’s

FILE REGISTERS

5

110 25/04/2017 File Registers GPR’s 0 7 9-bit Address Bus 8-bit Data Bus 0 8 0 7

GPR’s e SFR’s – Register File Architecture

File Registers SFR’s 9-bit Address Bus 8-bit Data Bus 0 8 0 7

• GPR’s: Matriz gate array. • SFR’s: Registradores espalhados.

FILE REGISTERS

5

111 25/04/2017 GPR’s SFR’s 9-bit Address Bus 8-bit Data Bus 0 8 0 7 Lógica de seleção

GPR’s e SFR’s – Register File Architecture

SUBWF

DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS

FILE REGISTERS

5

112 25/04/2017

• São quatro bancos de file registers.

• Cada banco contém 128 bytes (7 bits de endereço) <6:0>. • No opcode, o endereço do registrador é de 7 bits. • São, ao todo, 512 endereços (9 bits de endereço) <8:0>. • Quase todas as posições endereçáveis podem ser

alteradas pelo usuário.

• Alguns bits não podem ser alterados diretamente, somente através do uso dos recursos do chip.

Divisões

FILE REGISTERS

5

113 25/04/2017 • Banco 0: 000h a 07Fh • Banco 1: 080h a 0FFh • Banco 2: 100h a 17Fh • Banco 3: 180h a 1FFh • Banco 0: 000d a 127d • Banco 1: 128d a 255d • Banco 2: 256d a 383d • Banco 3: 384d a 511d

Bancos

Incluindo registradores sem banco

• É mais fácil memorizar os números na forma hexadecimal. • Estes valores representam as faixas de endereços

cobertas por cada bando.

• Na verdade, os bancos são um pouco menores como será mostrado mais adiante.

FILE REGISTERS

5

114 25/04/2017 • Banco 0:000000000b a001111111b • Banco 1:010000000b a011111111b • Banco 2:100000000b a101111111b • Banco 3:110000000b a111111111b

Bancos

Incluindo registradores sem banco

• Os dois bits mais significativos determinam o banco. • O endereço completo utiliza três nibbles. • O endereço no opcode utiliza dois nibbles.

(20)

FILE REGISTERS

5

115 25/04/2017

Divisões

Banco 0 000h 000000000b 07Fh 001111111b Banco 1 080h 010000000b 0FFh 011111111b Banco 2 100h 100000000b 17Fh 101111111b Banco 3 180h 110000000b 1FFh 111111111b

Incluindo registradores sem banco

FILE REGISTERS

5

116 25/04/2017

• Memory banking.

• A divisão em bancos é feita para que o endereçamento dos registradores feito nas instruções se dê por meio de 7 bits, e não 9 bits. • A necessidade desta redução se deve ao fato de que

tal endereço deve caber nos 14 bits de instrução. • Usando 7 bits para endereço, sobram 7 bits para os

demais parâmetros da instrução.

Bancos

FILE REGISTERS

5

117 25/04/2017

Ba

n

co

s

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

FILE REGISTERS

5

118 25/04/2017

• Sem banco: 16 bytes. • Banco 0: 80 bytes. • Banco 1: 80 bytes. • Banco 2: 96 bytes. • Banco 3: 96 bytes. • Total: 368 bytes (9-bit address bus).

GPR’s

FILE REGISTERS

5

119 25/04/2017 • Sem banco: 070h a 07Fh • Banco 0: 020h a 06Fh • Banco 1: 0A0h a 0EFh • Banco 2: 110h a 16Fh • Banco 3: 190h a 1EFh • Sem banco: 112d a 127d • Banco 0: 032d a 111d • Banco 1: 160d a 239d • Banco 2 272d a 367d • Banco 3: 400d a 495d

GPR’s

É mais fácil memorizar os números na forma hexadecimal

FILE REGISTERS

5

120 25/04/2017 • Sem banco: 070h a 07Fh • Banco 0: 020h a 06Fh • Banco 1: 0A0h a 0EFh • Banco 2: 110h a 16Fh • Banco 3: 190h a 1EFh • Sem banco: 70h a 7Fh • Banco 0: 20h a 6Fh • Banco 1: 20h a 6Fh • Banco 2: 10h a 6Fh • Banco 3: 10h a 6Fh

GPR’s

Endereço real de 9 bits

Valor usado em endereçamento direto (7 bits)

Remoção dos dois bits mais significativos.

(21)

FILE REGISTERS

5

121 25/04/2017

• Banco 0: 020h a 06Fh • Banco 1: 0A0h a 0EFh • Banco 2: 110h a 16Fh • Banco 3: 190h a 1EFh

GPR’s endereçáveis por 9 bits

• Banco 0: 80 bytes. • Banco 1: 80 bytes. • Banco 2: 96 bytes. • Banco 3: 96 bytes. • Total: 352 bytes.

Registradores com banco

FILE REGISTERS

5

122 25/04/2017

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

G

PR

’s

e

n

d

e

re

çá

v

e

is

p

o

r

9

b

it

s

R e g ist ra d o re s co m b a n co

FILE REGISTERS

5

123 25/04/2017

GPR’s endereçáveis por 9 bits

020h 021h 022h 023h 024h 06Bh 06Ch 06Dh 06Eh 06Fh 7 0 0A0h 0A1h 0A2h 0A3h 0A4h 0EBh 0ECh 0EDh 0EEh 0EFh 7 0 16Bh 16Ch 16Dh 16Eh 16Fh 110h 111h 112h 113h 1EBh 1ECh 1EDh 1EEh 1EFh 190h 191h 192h 193h 7 0 7 0 Banco 0 Banco 1 Banco 2 Banco 3 Registradores com banco

FILE REGISTERS

5

124 25/04/2017

GPR’s endereçáveis por 9 bits

Registradores com banco

24

DEC

O

0

O

1

O

2

O

3

A

7

A

8

Entrada codificada Saída decodificada

Enable Enable Enable Enable 7-bit Address Bus A0 A6 9-bit Address Bus A0 A9 20h 6Fh 6Fh 10h

FILE REGISTERS

5

125 25/04/2017 • Banco 0: 070h a 07Fh • Banco 1: 0F0h a 0FFh • Banco 2: 170h a 17Fh • Banco 3: 1F0h a 1FFh

GPR’s endereçáveis por 7 bits

• Banco 0: 16 bytes. • Banco 1: 16 bytes. • Banco 2: 16 bytes. • Banco 3: 16 bytes. • Total: 16 bytes. • Estes registradores estão disponíveis em qualquer

seleção de bancos.

• Estes registradores não possuem bancos, seu endereço possui 7 bits em um barramento de 9 bits. • Os bits identificadores do banco são irrelevantes.

Registradores sem banco

FILE REGISTERS

5

126 25/04/2017

G

PR

’s

e

n

d

e

re

çá

v

e

is

p

o

r

7

b

it

s

R e g ist ra d o re s se m b a n co

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

(22)

FILE REGISTERS

5

127 25/04/2017

GPR´s - Divisões

Banco 0 000h 000000000b 06Fh 001101111b Banco 1 080h 010000000b 0EFh 011101111b Banco 2 100h 100000000b 16Fh 101101111b Banco 3 180h 110000000b 1EFh 111101111b Sem banco 70h XX1110000b 7Fh XX1111111b

FILE REGISTERS

5

128 25/04/2017

GPR’s endereçáveis por 7 bits

• Os GPR’s de 9 bits de endereço são a maioria e requerem determinação do banco.

• Os GPR’s de 7 bits de endereço não dependem da seleção do banco.

• Os GPR’s de 7 bits de endereço são úteis quando se deseja que a mesma palavra de dado esteja disponível em todos os bancos, dispensando a seleção de banco. • Não se trata de quatro cópias, mas de um único registrador.

Registradores sem banco

FILE REGISTERS

5

129 25/04/2017

GPR’s endereçáveis por 7 bits

7 bits de endereço: • 70h a 7Fh

• XX1110000h a XX1111111h • 16 endereços

X X 1 1 1 _ _ _ _ Registradores sem banco

Identificação do endereçamento indireto

FILE REGISTERS

5

130 25/04/2017

GPR’s endereçáveis por 7 bits

Bit

0

Bit

1

Bit

2

Bit

3

Bit

4

Bit

5

Bit

6

Bit

7

Bit

8

0: 9 bits

1: 7 bits

SRAM Address Bus

• Se Bit4AND Bit5AND Bit6= 1,

então Bit7e Bit8são ignorados.

Registradores sem banco

FILE REGISTERS

5

131 25/04/2017

GPR’s endereçáveis por 7 bits

Registradores sem banco

Enable Enable Enable Enable 7-bit Address Bus A0 A6 20h 6Fh 6Fh 10h

24

DEC

A

7

A

8 7-bit Address Bus A0 A6 70h 7Fh Enable

FILE REGISTERS

5

132 25/04/2017

• Para o programador, usando endereçamento direto, o endereço tem sempre 7 bits, quer o endereço completo seja de 7 bits, quer seja de 9. • Para os bancos 0 e 1, a faixa de endereços é

menor do que nos bancos 2 e 3. Bancos 0 e 1: • 20h a 6Fh • 0100000h a 1101111h • 80 endereços Bancos 2 e 3: • 10h a 6Fh • 0010000h a 1101111h • 96 endereços

Endereçamento de GPR no programa

(23)

FILE REGISTERS

5

133 25/04/2017

SFR’s

• Registradores de uso específico contidos no file registers. • Não constituem uma SRAM porque não formam uma matriz. • Sua localização física não é agrupada, como em uma RAM. • A maioria dos SFR’s são registradores de 8 bits.

• Alguns SFR’s possuem menos bits. • Alguns endereços não são usados.

• Alguns endereços são inacessíveis ao programador. • Alguns endereços não aceitam escrita.

• Alguns endereços acessam palavras de menos bits. • Alguns endereços realizam ações na MCU, não são

registradores.

Special Function Registers

FILE REGISTERS

5

134 25/04/2017

• Embora seja possível gravar em muitas posições de memória usadas pelosSFR’s, não se deve fazê-lo quando da gravação de dados do usuário, sob risco de alterar o comportamento do microcontrolador ou de ter o dado armazenado perdido por causa da posterior automática gravação do SFR após a execução de uma operação. • A gravação nestas posições deve ser feita quando o

intuito é o de, conscientemente, alterar algum SFR específico usado internamente pelo microcontrolador.

SFR’s

FILE REGISTERS

5

135 25/04/2017

SFR’s

000h INDF 001h TMR0 002h PCL 003h STATUS 004h FSR 005h PORTA 006h PORTB 007h PORTC 008h PORTD 009h PORTE 00Ah PCLATH 00Bh INTCON 00Ch PIR1 00Dh PIR2 00Eh TMR1L 00Fh TMR1H 010h T1CON 011h TMR2 012h T2CON 013h SSPBUF 014h SSPCON 015h CCPR1L 016h CCPR1H 017h CCP1CON 018h RCSTA 019h TXREG 01Ah RCREG 01Bh CCPR2L 01Ch CCPR2H 01Dh CCP2CON 01Eh ADRESH 01Fh ADCON0 081h OPTION_REG 085h TRISA 086h TRISB 087h TRISC 088h TRISD 089h TRISE 08Ch PIE1 08Dh PIE2 08Eh PCON 091h SSPCON2 092h PR2 093h SSPADD 094h SSPSTAT 098h TXSTA 099h SPBRG 09Eh ADRESL 09Fh ADCON1 10Ch EEDATA 10Dh EEADR 10Eh EEDATH 10Fh EEADRH 18Ch EECON1 18Dh EECON2

Endereços múltiplos foram omitidos.

FILE REGISTERS

5

136 25/04/2017

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

SF

R

’s

e

s

s

e

n

ci

a

is

(co

re

)

FILE REGISTERS

5

137 25/04/2017

SFR’s essenciais (core)

Endereços múltiplos foram omitidos.

000h INDF 001h TMR0 002h PCL 003h STATUS 004h FSR 005h PORTA 006h PORTB 007h PORTC 008h PORTD 009h PORTE 00Ah PCLATH 00Bh INTCON 00Ch PIR1 00Dh PIR2 00Eh TMR1L 00Fh TMR1H 010h T1CON 011h TMR2 012h T2CON 013h SSPBUF 014h SSPCON 015h CCPR1L 016h CCPR1H 017h CCP1CON 018h RCSTA 019h TXREG 01Ah RCREG 01Bh CCPR2L 01Ch CCPR2H 01Dh CCP2CON 01Eh ADRESH 01Fh ADCON0 081h OPTION_REG 085h TRISA 086h TRISB 087h TRISC 088h TRISD 089h TRISE 08Ch PIE1 08Dh PIE2 08Eh PCON 091h SSPCON2 092h PR2 093h SSPADD 094h SSPSTAT 098h TXSTA 099h SPBRG 09Eh ADRESL 09Fh ADCON1 10Ch EEDATA 10Dh EEADR 10Eh EEDATH 10Fh EEADRH 18Ch EECON1 18Dh EECON2 000 INDF Indirect file addressing

001 TMR0 Timer 0

002 PCL Program counter low byte 003 STATUS Status

004 FSR File select register 00A PCLATH Program conuter latch 00B INTCON Interrupt control 00C PIR1 Peripheral interrupt register 1 00D PIR2 Peripheral interrupt register 2 081 OPTION_REG Option

08C PIE1 Peripheral interrupt enable 1 08D PIE2 Peripheral interrupt enable 2 08E PCON Power control

FILE REGISTERS

5

138 25/04/2017

SFR’s não essenciais (periféricos)

005 PORTA 006 PORTB 007 PORTC 008 PORTD 009 PORTE 00E TMR1L 00F TMR1H 010 T1CON 011 TMR2 012 T2CON 013 SSPBUF 014 SSPCON 015 CCPR1L 016 CCPR1H 017 CCP1CON 018 RCSTA 019 TXREG 01A RCREG 01B CCPR2L 01C CCPR2H 01D CCP2CON 01E ADRESH 01F ADCON0 085 TRISA 086 TRISB 087 TRISC 088 TRISD 089 TRISE 091 SSPCON2 092 PR2 093 SSPADD 094 SSPSTAT 098 TXSTA 099 SPBRG 09E ADRESL 09F ADCON1 10C EEDATA 10D EEADR 10E EEDATH 10F EEADRH 18C EECON1 18D EECON2

(24)

FILE REGISTERS

5

139 25/04/2017

SFR’s não essenciais (periféricos)

Timer 0 Timer 1 A/D conv CCP 1,2 SSP USART Data mem 018 RCSTA 019 TXREG 01A RCREG 098 TXSTA 099 SPBRG 001h TMR0 081h OPTION_REG 00E TMR1L 00F TMR1H 010 T1CON 011 TMR2 012 T2CON 092 PR2 Timer 2 01E ADRESH 01F ADCON0 09E ADRESL 09F ADCON1 015 CCPR1L 016 CCPR1H 017 CCP1CON 01B CCPR2L 01C CCPR2H 01D CCP2CON PORT 005 PORTA 006 PORTB 007 PORTC 008 PORTD 009 PORTE 085 TRISA 086 TRISB 087 TRISC 088 TRISD 089 TRISE 10C EEDATA 10D EEADR 10E EEDATH 10F EEADRH 18C EECON1 18D EECON2 013 SSPBUF 014 SSPCON 091 SSPCON2 093 SSPADD 094 SSPSTAT

FILE REGISTERS

5

140 25/04/2017

SFR’s não essenciais de 16 bits

00E TMR1L TMR1 00F TMR1H 015 CCPR1L CCPR1 016 CCPR1H 01B CCPR2L CCPR2 01C CCPR2H 09E ADRESL ADRES 01E ADRESH 10C EEDATA EEDATA 10E EEDATH 10D EEADR EEADR 10F EEADRH

FILE REGISTERS

5

141 25/04/2017

• Alguns SFR’s estão disponíveis em dois bancos. • Alguns SFR’s estão disponíveis em quatro bancos.

• A presença de cópias é feita para agilizar o acesso aos SFR’s, dispensando o procedimento de troca de bancos. • Somente os SFR’s mais importantes possuem cópias. • Sempre que um SFR’s possui dois ou quatro endereços,

todos endereços possuem sempre a mesma informação. • A presença de SFR’s com dois ou quatro endereços

contraria a ideia de que um endereçamento correto requer que a relação entre endereço e posição física seja biunívoca.

SFR’s

FILE REGISTERS

5

142 25/04/2017

• Não há cópias, o registrador é um só, mas os endereços de 9 bits são vários.

• O endereço é um só, porém com menos bits; um ou dois bits (mais significativos) do endereço de 9

bits são irrelevantes.

• Isso acontece com os SFR’s mais importantes, que são mais usados, onde é indicado isentar a necessidade do procedimento de troca de bancos.

SFR’s

FILE REGISTERS

5

143 25/04/2017

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

SF

R

’s

e

n

d

e

re

çá

v

e

is

p

o

r

7

b

it

s

R e g ist ra d o re s se m b a n co

FILE REGISTERS

5

144 25/04/2017

SFR’s endereçáveis por 7 bits

• INDF XX0000000b 00h • PCL XX0000010b 02h • STATUS XX0000011b 03h • FSR XX0000100b 04h • PCLATH XX0001010b 0Ah • INTCON XX0001011b 0Bh

• Estes registradores estão disponíveis em qualquer seleção de bancos.

• Estes registradores não possuem bancos, seu endereço possui 7 bits em um barramento de 9 bits. • Os bits identificadores do banco são irrelevantes.

(25)

FILE REGISTERS

5

145 25/04/2017

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

SFR

’s

e

n

d

e

re

çá

v

e

is

p

o

r

8

b

it

s

FILE REGISTERS

5

146 25/04/2017

SFR’s endereçáveis por 8 bits

• TMR0 X00000001b 01h • PORTB X00001011b 06h • OPTION_REG X10000001b 81h • TRISB X10001011b 86h

FILE REGISTERS

5

147 25/04/2017

• Alguns SFR’s não são físicos. • “Not a physical register”.

• Ao tentar acessar o file registers neste endereço, algum demultiplexador levará o data bus para outro local do chip e não para o file registers.

• Este mecanismo simplifica o processo de criação de códigos de programa, tornando o endereçamento mais simples. • Na PIC16F877 há dois casos: INDF e EECON2.

Registradores virtuais

FILE REGISTERS

5

148 25/04/2017

• O agrupamento de todos os SFR’s juntamente com os GPR’s como se fossem uma única memória torna o acesso mais fácil pelo programador (Register File Architecture). • Um decodificador específico realiza a conversão do

endereço de 9 bits para a seleção de cada posição do file

registers. GPR’s SFR’s Address Bus Data Bus 0 8 0 7 Lógica de seleção

SFR’s

FILE REGISTERS

5

149 25/04/2017

SFR’s

• Muitos SFR’s possuem menos de 8 bits.

• Em muitos desses casos, os bits ausentes referem-se a periféricos ausentes no modelo de MCU em questão. • Consultando o PICmicro™ Mid-Range MCU Family

Reference Manual é possível verificar quais são os

SFR’s ou os bits não usados no SFR da PICusada.

FILE REGISTERS

5

• SFR de 8 bits (padrão).

• SFR de palavra menor do de 8 bits. • SFR com bit faltando.

• SFR não físico (virtual). • SFR de mais de 8 bits. 150 25/04/2017

SFR’s

Address Bus Data Bus 0 8 0 7

(26)

FILE REGISTERS

5

151 25/04/2017

Endereços não usados

• O data sheet recomenda o não uso dos endereços de SFR´s não usados.

• Eles pertencem a funções integrantes na arquitetura mid-range mas que não estão presentes no modelo apresentado.

• Apesar destas funções não terem sido implementadas, pode ser que a ULA realize alterações nestes registradores, tornando-os não confiáveis para uso como GPR.

FILE REGISTERS

5

152 25/04/2017

• Os endereços não usados em meio aos SFR’s se deve a endereços usados em outros modelos de PIC da mesma família (mid-range architecture).

• Tratam-se de endereços de SFR’s para periféricos ausentes no modelo aqui estudado.

• A fim de simplificar a migração de programas feitos para um modelo para outro, da mesma família, o mapeamento dosSFR’s foi feito considerando todos os registradores usados na família.

• Quando um periférico não faz parte de um determinado modelo, SFR’s relacionados também estão ausentes, tornando inválido o seu endereço.

• O fabricante não recomenda o uso destes endereços.

SFR’s

FILE REGISTERS

5

153 25/04/2017

INDF 000h INDF 080h INDF 100h INDF 180h TMR0 001h OPTION_REG081h TMR0 101h OPTION_REG181h PCL 002h PCL 082h PCL 102h PCL 182h STATUS 003h STATUS 083h STATUS 103h STATUS 183h FSR 004h FSR 084h FSR 104h FSR 184h PORTA 005h TRISA 085h 105h 185h PORTB 006h TRISB 086h PORTB 106h TRISB 186h PORTC 007h TRISC 087h 107h 187h PORTD 008h TRISD 088h 108h 188h PORTE 009h TRISE 089h 109h 189h PCLATH 00Ah PCLATH 08Ah PCLATH 10Ah PCLATH 18Ah INTCON 00Bh INTCON 08Bh INTCON 10Bh INTCON 18Bh PIR1 00Ch PIE1 08Ch EEDATA 10Ch EECON1 18Ch PIR2 00Dh PIE2 08Dh EEADR 10Dh EECON2 18Dh TMR1L 00Eh PCON 08Eh EEDATH 10Eh 18Eh TMR1H 00Fh 08Fh EEADRH 10Fh 18Fh T1CON 010h 090h 110h 190h TMR2 011h SSPCON2 091h T2CON 012h PR2 092h SSPBUF 013h SSPADD 093h SSPCON 014h SSPSTAT 094h CCPR1L 015h 095h CCPR1H 016h 096h CCP1CON 017h 097h RCSTA 018h TXSTA 098h GPR’s GPR’s TXREG 019h SPBRG 099h

RCREG 01Ah 09Ah CCPR2L 01Bh 09Bh CCPR2H 01Ch 09Ch CCP2CON 01Dh 09Dh ADRESH 01Eh ADRESL 09Eh ADCON0 01Fh ADCON1 09Fh 020h 0A0h GPR’s GPR’s 06Fh 0EFh 16Fh 1EFh 070h 0F0h 170h 1F0h GPR’s GPR’s GPR’s GPR’s 07Fh 0FFh 17Fh 1FFh

SF

R

’s

n

ã

o

u

s

a

d

o

s

FILE REGISTERS

5

154 25/04/2017

Status Register

• Armazena informações relativas à última operação realizada pela ULA. • É necessário na realização de

cálculos lógicos e aritméticos.

FILE REGISTERS

5

155 25/04/2017

Status Register

8-bit Status Register 8-bit Data bus 8-bit MUX 21 14-bit Instruction Register 8-bit Data bus Flash 8-bit Work Register 8-bit Data bus 8-bit ALU Instruction Decoder 14-bit Opcode 14-bit 8-bit

FILE REGISTERS

5

156 25/04/2017

Status Register

STATUS • Registrador 000000011b, 003h, banco 0 • Registrador 010000011b, 083h, banco 1 • Registrador 100000011b, 103h, banco 2 • Registrador 110000011b, 183h, banco 3 • Registrador XX0000011b

Referências

Documentos relacionados

 São compostos de natureza química variada com função reguladora do metabolismo..  Mamíferos sintetizam vitamina C

Cuidado para não chocar o tubo de quartzo contra o corpo do UV-C. Limpe o tubo de quartzo com um pano umidecido no álcool

pelo tratamento com ácido sulfúrico para formação de solução de ácido oxálico.  Quantificação do ácido

A carne pode ser considerada como um alimento nobre para o homem, pois serve para a produção de energia, para a produção de novos tecidos orgânicos e para a regulação dos

Ausência de gás Ausência de gás Teste negativo Teste negativo para coliforme para coliforme. TESTE CONFIRMATIVO

Até a Emenda Constitucional nº 45/2004, a competência em razão da matéria da Justiça do Trabalho tinha como norma jurídica fundamental o art. 114 da Constituição Federal,

A Escala de Magnitude de Momento (abreviada como MMS e denotada como M w ), introduzida em 1979 por Thomas Haks e Hiroo Kanamori, substituiu a Escala de Richter para medir

Um Segmento Orientado ´ e determinado por dois pontos, o primeiro chamado origem (ponto inicial) do segmento, o segundo chamado extremidade (ponto final)... Segmento Orientado: