programação e projeto embarcado para pic16f
TRANSCRIPT
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
1/39
Segundo Torneio Universitrio de Robtica - UFU
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
2/39
MICROCONTROLADORES:
O que so? para que Servem? Computador em um Chip
CPU
ROM
RAM
I/O PORTS
Relgio Interno...
Obviamente possuem recursos
reduzidos. Mas isso vem mudando
com o tempo.
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
3/39
No dia a dia
DVDs, TVs
Video Games
PDAsAutomveis
Eletrodomsticos
Roteadores
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
4/39
So aplicados nos diversos
segmentos da engenharia Segurana
Alarmes Portes Eletrnicos
Informtica Estabilizadores, NO-Breaks
Industria automobilstica Freios ABS Injeo eletrnica
Medicina Eletromigrafos, eletroencefalogramas, medidores de batimento cardaco, etc
Telecomunicaes Modems, Roteadores
Indstria Automao, Robtica, Controle de motores, etc.
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
5/39
Fabricantes Microchip
Renesas
Motorola Samsung
Atmel
Intel
Holtek
Analog Devices
Texas Instrumens
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
6/39
Algumas ferramentas disponveis
para trabalhar commicrocontroladores PIC
Ferramentas Pagas
C18
C30
MikroC
CCS HI-tech
WizC
Ferramentas free
SDCC
Gputils
Piklab
Pikdev Eclipse
Gpsim
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
7/39
Conceitos Bsicos de arquitetura
para MCUsArquiteturas de memria
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
8/39
Filosofia de set de instrues RISC (Reduced Instruction Set Computer)
Instrues simples
Mais baratos Circuitos menores
Capaz de executar quase todas instrues em 1 ciclo demquina
Uso intenso de pipelines
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
9/39
CISC (Complex Instruction Set Computing)
Instrues maiores e complexas
Verstil
Comprometimento da comercializao e
desenvolvimento Microprogramao (instruoes complexas em hardware)
Circuitos complexos e menos econmicos
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
10/39
Clocks e circuitos digitais Sinal usado como base das mudanas (sincronismo)
nos circuitos digitais
Nada mais que uma oscilao de tenso em umadeterminada freqncia
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
11/39
Funcionamento simplificado de
uma CPU ULA
Operaes lgicas
Operaes
aritmticas Tomadas de deciso
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
12/39
Memria
Armazenamento doprograma
Armazenamento dosdados
Configurao deperifricos
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
13/39
Contador de programa
Aponta para o
endereo da prximainstruo a serexecutada
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
14/39
CPU Unio dos perifricos citados (central de processamento)
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
15/39
Think outsidethe box. A
little extraenergy is
closer than
you think.
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
16/39
MICROCONTROLADOR PIC16F877A
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
17/39
Arquitetura de memria Harvard Filosofia de set de instrues RISC
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
18/39
Estrutura interna simplificada
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
19/39
Referncia de clock Referncia de clock externa pode ser gerada por:
Materiais piezoeltricos
Fatia de quartzo que vibra quando uma tenso aplicada
Freqncia determinada pelo corte do cristal e seu tamanhofsico
http://www.fetalmed.net/item/efeito-piezoeletrico.html
Resistores e Capacitores
Clock gerado por circuitos osciladores
http://www.fetalmed.net/item/efeito-piezoeletrico.htmlhttp://www.fetalmed.net/item/efeito-piezoeletrico.htmlhttp://www.fetalmed.net/item/efeito-piezoeletrico.htmlhttp://www.fetalmed.net/item/efeito-piezoeletrico.html -
7/30/2019 Programao e Projeto Embarcado para PIC16F
20/39
Oscilador a cristal
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
21/39
Oscilador RC
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
22/39
Oscilador externo
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
23/39
Circuito interno para tratar o clock
de referncia
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
24/39
Ciclo de mquina e ciclo de clock
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
25/39
Entendendo melhor a estratgia de
pipeline
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
26/39
Voltando para o PIC
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
27/39
Calculando ciclo de mquina
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
28/39
Exemplo: Se um PIC16f877A opera com um cristal XT de 4MHz qual seria o seu ciclo demquina ou tempo gasto para executar uma instruo?
Sabendo que a instruo NOP (No OPeration) equivale a perder um ciclo demquinas quantas iteraes precisariam ser feitas para perder o tempoequivalente a 1 segundo?
#use delay(clock = xxxxxxx)
num_iteraoes = ???
for( int i = 0 ; i < num_iteracoes ; i++)
{#asm
NOP ; Perde um ciclo de mquina#endasm
}
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
29/39
Memria de programa Tipo EEPROM
8K x 14 Words
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
30/39
Memria de dados Dividida em
SFR e GPR
368 bytes
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
31/39
Um SFR de forma mais detalhada Exemplo TRISx e PORTx
O mesmo vale para qualquer outro perifrico....
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
32/39
Pilha Registrador mapeado em
memria para guarda retorno
de funo e interrupo
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
33/39
Vetor de reset e interrupo Endereos mapeados
de tal forma que o contador
de programa pule para ele emdeterminadas condies
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
34/39
TIMERS Contadores precisos
Flags de overflow
Interrupo Tarefas com tempo
preciso
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
35/39
Outros recursos Power-on e Power-up Timer (PWRT)
Power-on (Reset ~72ms > 1.2~1.7V)
Osc. startup Ignora os 1024 primeiros ciclos de clock
Garantia de estabilidade
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
36/39
Watchdog Timer (WDT) Supervisiona o programa
Caso o programa fique travado em um loop
um reset aplicado na CPU
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
37/39
Brown-out Tenso de alimentao desce lentamente
Circuitos podem ficar descontrolados
Compromete o fluxo programa
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
38/39
Rudos Circuito de defesa
Reage a cada descida datenso
E mantm a tensoquase constante por umtempo determinado pelamalha RC
-
7/30/2019 Programao e Projeto Embarcado para PIC16F
39/39
Principais Referncias Microcontroladores PIC Antnio Srgio Sena
Advanced PIC Microcontroller Projects in C
Dogan Ibrahin Datasheet PIC16F877A
Blog Rodrigo Almeida UNIFEI
Contato: [email protected]