programação e projeto embarcado para pic16f

Upload: felipeadriano32

Post on 04-Apr-2018

221 views

Category:

Documents


0 download

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]