Escolar Documentos
Profissional Documentos
Cultura Documentos
ELE30053
DAE01228
AULA 03
Fundamentos
Definições Básicas
RISC
•Cerca de 35 instruções
•Execução em pipeline:
• 1 ciclo/instrução sequencial e 2 ciclos/instruç̧ão de desvio
• 1 ciclo = 4 pulsos de clock
•Operação com clock de até 20 MHz (5 MIPS)
•Arquitetura de memória Harvard:
• Memória de Programa: 8k x 14 bits (Flash)
• Memória de Dados: 368 Bytes (RAM)
•Memória auxiliar EEPROM (não volátil) de 256 Bytes, regravável por
software.
•Aprendizado mais fácil e dinâmico
•Desvantagem com a ausência de determinadas funções
(Ex: Funções de multiplicação e divisão devem ser implementadas)
• 4 encapsulamentos disponíveis:
PDIP 40
PLCC 44
QFN 44
TQFP 44
• Encapsulamento PDIP 40 (adotado): 4 pinos de alimentação;
• 2 pinos de clock;
• 1 pino de gravação/reset
• 33 pinos de entrada/saída configuráveis;
• Fácil prototipagem em Protoboards.
• Opção para proteção de código executável:
Uma vez ativada, impossibilita a leitura da memória de programa,
evitando a pirataria do código para outros microcontroladores;
• Tensão de trabalho de 2 a 5.5V;
• Modo SLEEP:
Coloca o uC para “dormir”, reduzindo drasticamente o consumo de
energia;
• Sistema integrado de programação e depuração “in circuit”:
Programação e depuração serial: apenas 2 pinos;
Programação e depuração possível sem a necessidade
desconectar o uC do circuito;
• Conversor AD de 10 bits x 8 canais;
• Dois comparadores analógicos configuráveis;
• 2 pinos para captura, comparação e PWM
• Uma porta serial síncrona com SPI (mestre) e I2C
(mestre/escravo);
• Uma porta serial universal (USART); Uma porta paralela de 8
bits (escrava);
• Sistema de interrupções com 14 fontes diferentes (por hardware
e por software);
• Sistema monitor capaz de reiniciar automaticamente o uC caso
alguma anormalidade seja detectada, evitando o travamento do
sistema.
Estruturação Interna do PIC 16F877
Stack
Memória
de Programa PC
(Flash)
IR
M UNIDADE DE
Memória U CONTROLE
X
FSR
de Dados
(RAM)
STATUS
SISTEMAS DE
EEPROM SUPORTE
W MUX ● Programação
PERIFÉRICOS ● Depuração
● ADC ● Temporização
● Timers ● Reset
● etc.
ULA 3
PORTAS de E/S
A B C D E
Diagrama de Blocos do PIC 16F877
Address Bus Para Memoria de Input/
Memória Memoria Programa Dados Output
de Programa
Data Bus para
Memória de Programa,
Diagrama de Blocos do PIC 16F877
Address Bus Para
Levando a Memoria Dados
Instruction Word
Endereço obtido
Data Bus para
da Instruction Word Data Memory
e Periféricos
Dado obtido da
Instruction Word
CPU
• Unidade Lógica Aritmética (ULA): é onde todas as
operações lógicas (funções lógicas booleanas: e ou, exclusivo e
complemento) e aritméticas (soma e subtração) são efetuadas. O
registrador W sempre estará envolvido de alguma forma em toda
operação lógica ou aritmética. Existem dois destinos possíveis para
estas operações: o W (work) ou um registrador (posição da
memória de dados) definido no argumento da instrução.
• Timer: O PIC possui internamente um recurso de hardware
denominado Timer0. Trata-se de um contador de 8bits
incrementado internamente pelo ciclo de máquina ou por um sinal
externo (borda de subida ou descida), sendo esta opção feita por
software durante a programação (SFR). Como o contador possui 8
bits ele pode assumir 256 valores distintos (0 até 255). Caso o ciclo
de máquina seja de 1µs, cada incremento do Timer corresponderá
a um intervalo de 1µs. Caso sejam necessário intervalos de tempos
maiores para o mesmo Ciclo de Máquina, utilizamos o recurso de
PRE-SCALE.
Ciclos de Máquina
• Nos µC PIC, o sinal de clock é internamente dividido por
QUATRO. Portanto, para um clock externo de 4MHz, temos um
clock interno de 1MHz e, consequentemente, cada ciclo de
máquina será de 1μs;
• A divisão do clock por quatro forma as fases Q1, Q2, Q3 e Q4.
Program Counter
ciclo de máquina
Stack – Pilha
•A pilha é um local, totalmente separado da memória de
programação, em que serão armazenados os endereços de
retorno quando utilizarmos instruções de chamadas de rotinas.
•Memória interna composta por 8 registros de 13 bits destinada a
armazenar endereços da memória de programa.
•Quando uma sub-rotina é chamada ou na ocorrência de uma
interrupção, o endereço para onde o PC deveria apontar (caso não
houvesse desvio), é salvo automati- camente na pilha (stack) e
recuperado ao final da execução da sub-rotina.
•É escrita de forma circular, isto é, após 8 chamadas aninhadas, a
nona irá sobrescrever o endereço da primeira (naturalmente isto
deve ser evitado)
15/08/2019
Memória de Dados
MEMÓRIA DE DADOS
SFRs - Banco 0
13-bit
Mapas das Memórias Program Counter
Endereçamento 8K
MEMÓRIA DE PROGRAMA
Reset Vector
Interrupt Vector
8K
locações
Opcode=14 bits
Interrupção
MCLR/VPP 1 40 RB7/PGD
RA0/AN0 2 39 RB6/PGC
RA1/AN1 3 38 RB5
RA2/AN2/VREF-/CVREF 4 37 RB4
RA3/AN3/VREF+ 5 36 RB3/PGM
RA4/T0CKI/C1OUT 6 35 RB2
PIC 16F877A
RA5/AN4/SS/C2OUT 7 34 RB1
RE0/RD/AN5 8 33 RB0/INT
RE1/WR/AN6 9 32 VDD
RE2/CS/AN7 10 31 VSS
VDD 11 30 RD7/PSP7
VSS 12 29 RD6/PSP6
OSC1/CLKI 13 28 RD5/PSP5
OSC2/CLKO 14 27 RD4/PSP4
RC0/T1OSO/T1CKI 15 26 RC7/RX/DT
RC1/T1OSI/CCP2 16 25 RC6/TX/CK
RC2/CCP1 17 24 RC5/SDO
RC3/SCK/SCL 18 23 RC4/SDI/SDA
RD0/PSP0 19 22 RD3/PSP3
RD1/PSP1 20 21 RD2/PSP2
Descrição dos Pinos
Descrição dos Pinos
Descrição dos Pinos
Legenda
I = Input (Entrada) O = Output (Saída) I/O = Input/Output (Entrada/Saída)
P = Power (Alimentação)
Portas
MEMÓRIA DE DADOS
Contadores
Brown-out reset
Lembrar!!!!!
Indicações sobre a apresentação do Projeto