1 25/04/2017
Parte 2
PIC
2 25/04/20171. 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/2017DEFINIÇÃO
1
4 25/04/2017• Ideal para sistemas embarcados (embedded systems). • Possui uma unidade de microprocessamento, como umP. • Possui periféricos específicos não encontrados em umP.
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
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
PIC16F877DEFINIÇÃO
1
8 25/04/2017 Família ArquiteturaPIC10F2XX, PIC12X5XX, PIC16X5X, PIC16X5XX Harvard
PIC12X6XX, PIC16 Harvard
PIC18 Harvard
PIC24, dsPIC Modified
Harvard PIC32 MIPS
Famílias PIC
DEFINIÇÃO
1
9 25/04/2017Arquitetura 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/2017Arquitetura Harvard versus Von-Neumann
Intel®8051 Program Data data bus data bus d a ta b u s File registers
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 0PIC18 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 PICforam 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
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 PIC16F877Arquitetura Harvard
0 7 0 13 0 12DEFINIÇÃ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 apalavra 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 bus14-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 bus8-bit data bus
0 7 0 7
EEPROM data memory
8-bit MCU data bus
8-bit
31
MUX
8-bit control bus0 7DEFINIÇÃO
1
0 7 00h FFh 8-bit address bus8-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
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™ 8081DEFINIÇÃ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 0DEFINIÇÃ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™ 8051DEFINIÇÃO
1
25/04/2017 28Exemplo 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
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 PIC16F877DEFINIÇÃ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 PIC16F877DEFINIÇÃ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 busDEFINIÇÃ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. • OP 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 39Caso 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.
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 PICmid-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
PIC16F877DEFINIÇÃO
1
48 25/04/2017Register 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.
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
• ParaP’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 umP 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/2017Famí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.
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/2017RISC/CISC
Programa em RISC Programa em CISC Tamanho médio das instruçõesMCU’S DE 8 BITS
2
57 25/04/2017MCU’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 PIC16FXXXExemplos 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
MCU’S DE 8 BITS
2
61 25/04/2017Baseline 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-bitMCU’S DE 8 BITS
2
62 25/04/2017Mid-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/2017Mid-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 / EEPROMMCU’S DE 8 BITS
2
64 25/04/2017Mid-Range Architecture - Core
(2): Ausente na PIC16F877. flash
MCU’S DE 8 BITS
2
65 25/04/2017Mid-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.
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/2017PIC18 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/2017PIC18 Architecture
http://w w w.microchip.com/_images/715px_PIC18_graph.jpgflash DATA BUS
DATA BUS FILE REGISTERS SRAM 20–bit address 16–bit words
MCU’S DE 8 BITS
2
72 25/04/2017MCU´s de 8 bits
http://w w w.microchip.com/_images/8bit_overview _graphic.pngMCU’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 BaselineArchitectureExemplos 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 PIC18F64J11MCU’S DE 8 BITS
2
75 25/04/2017Exemplos 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/2017MCU’S DE 16 E DE 32 BITS
MCU’S DE 16 E DE 32 BITS
3
79 25/04/2017MCU´s de 16 bits
http://w w w.microchip.com/_images/NEW-16-bit-graphic_large.jpgMCU’S DE 16 E DE 32 BITS
3
80 25/04/2017MCU´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/2017MCU´s de 16 bits
http://w w w.microchip.com/_images/PIC24FArchblkdgrm.jpgMCU’S DE 16 E DE 32 BITS
3
83 25/04/2017MCU´s de 16 bits
http://w w w.microchip.com/_images/PIC24FArchblkdgrm.jpgMCU’S DE 16 E DE 32 BITS
3
84 25/04/2017MCU´s de 32 bits
http://w w w.microchip.com/_images/32bitOverview ArchGraph_Large.jpgPIC16F877-20/P
4
85 25/04/2017PIC16F877-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/2017Chip PIC
PIC16F877-20/P
4
88 25/04/2017Chip PIC
PIC16F877-20/P
4
89 25/04/2017Chip PIC
PIC16F877-20/P
4
90 25/04/2017Kit didático
PIC16F877-20/P
4
91 25/04/2017Pinagem (DIP)
PIC16F877-20/P
4
92 25/04/2017PIC16F877-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/2017Core
• 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. • UmP é 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 oP’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/2017C
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/2017Memórias internas
Tipo
Nome
Tamanho
flash Program memory 8k 14bitsSRAM File registers 512 8bits
PIC16F877-20/P
4
97 25/04/2017Me
m
ó
ri
a
s
i
n
te
rn
a
s
PIC16F877-20/P
4
98 25/04/2017Me
m
ó
ri
a
s
e
s
p
e
ci
a
is
PIC16F877-20/P
4
99 25/04/2017EEPROM
• 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/2017Pe
ri
fé
ri
co
s
Todos periféricos estão ligados aodata bus exceto a
PM na arquitetura Harvard.
PIC16F877-20/P
4
25/04/2017 101Perifé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
PIC16F877-20/P
4
Periféricos
103 25/04/2017 Periférico SFR endereço SFR dado SFR controle8-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/2017FILE 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/2017Endereç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
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 7GPR’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çãoGPR’s e SFR’s – Register File Architecture
SUBWFDECF 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 511dBancos
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 a111111111bBancos
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.
FILE REGISTERS
5
115 25/04/2017Divisões
Banco 0 000h 000000000b 07Fh 001111111b Banco 1 080h 010000000b 0FFh 011111111b Banco 2 100h 100000000b 17Fh 101111111b Banco 3 180h 110000000b 1FFh 111111111bIncluindo 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/2017Ba
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 495dGPR’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 6FhGPR’s
Endereço real de 9 bits
Valor usado em endereçamento direto (7 bits)
Remoção dos dois bits mais significativos.
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 coFILE REGISTERS
5
123 25/04/2017GPR’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
24
DEC
O
0O
1O
2O
3A
7A
8Entrada 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 1FFhGPR’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/2017G
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 coINDF 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
127 25/04/2017GPR´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 XX1111111bFILE REGISTERS
5
128 25/04/2017GPR’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/2017GPR’s endereçáveis por 7 bits
Bit
0Bit
1Bit
2Bit
3Bit
4Bit
5Bit
6Bit
7Bit
80: 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
24
DEC
A
7A
8 7-bit Address Bus A0 A6 70h 7Fh EnableFILE 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
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/2017SFR’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 EECON2Endereç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/2017SFR’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 EECON2FILE 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/2017SFR’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 coFILE REGISTERS
5
144 25/04/2017SFR’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.
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/2017SFR’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/2017SFR’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 7FILE 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/2017Status Register
• Armazena informações relativas à última operação realizada pela ULA. • É necessário na realização de
cálculos lógicos e aritméticos.