Sistemas Microcontrolados

Documentos relacionados
Laboratório de Hardware

INTRODUÇÃO: MICROCONTROLADORES

Sistemas Embarcados:

FACULDADE LEÃO SAMPAIO

Aula 10 Microcontrolador Intel 8051 Parte 1

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Jadsonlee da Silva Sá

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

MSP430 - Arquitertura

14/3/2016. Prof. Evandro L. L. Rodrigues

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Microcontroladores: Programação em C

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

ARDUINO. Profº. Engº. Robson Dias Ramalho

Microcontroladores PIC

SISTEMAS MICROCONTROLADOS

Estrutura Básica de um Computador

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Conjunto de Instruções e Modelos de Arquiteturas

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage:

Microcontrolador 8051:

Palestra de Tecnologia. Assunto: Microcontroladores.

Sistemas Embarcados:

Prof. Adilson Gonzaga

Projeto de Sistemas Eletrônicos

Microcontrolador 8051

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 03: INTERRUPÇÕES

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

1.1 Noções básicas sobre interrupções em Microcontroladores

Interrupção. Prof. Adilson Gonzaga

Sistemas Microcontrolados

Introdução ao Microcontrolador PIC

Família de Microcontroladores AVR

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Introdução à Organização de Computadores. Aula 8

Conjunto de Instruções e Modelos de Arquiteturas

Arquitetura do Microcontrolador Atmega 328

Microcontroladores PIC16 - XM 116 -

Projeto de Sistemas Embarcados

Algoritmos Computacionais

Microcontroladores. Rafael Silva de Lima

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

Sistemas Digitais e Microcontrolados

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

AULA2 Introdução a Microcontrolador. Disciplina: Aplicações Avançadas de Microprocessadores (AAM)

Organização de Sistemas Computacionais Processadores: Organização da CPU

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

Prof. Adilson Gonzaga

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

Família 8051 (introdução) 2011/1

Sistemas Embarcados:

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

Disciplina : Microcontroladores AVR

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

Sistemas Digitais: Introdução

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Sistemas Digitais e Microcontrolados

Sumário. 1. Apresentação Hardware Microcontrolador PIC16F628A Displays de 7 segmentos Teclas...

Prof. Adilson Gonzaga

Parte II Arquitetura. professorferlin.blogspot.com. professorferlin.blogspot.com. Sociedade Paranaense de Ensino e Informática

SSC510 Arquitetura de Computadores 1ª AULA

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

Profª Danielle Casillo

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

Microcontrolador PIC: Conceitos Básicos

Curso de Microcontroladores PIC 16F84A

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Interrupções e Timers

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

A placa descrita pode receber alimentação pela conexão USB ou por uma fonte de alimentação externa.

Microcontroladores e Microprocessadores

Componentes de um computador Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial MICROCONTROLADORES PROFESSOR FLÁVIO MURILO

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

Application Note FBEE Controle de Placas com entradas Analógicas REV01. 1 Rev01

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Introdução à Ciência da Computação

Controlador Lógico Programável

Data Sheet FBEE Kit V05

DEFINIÇÃO É TODO AQUELE DISPOSITIVO CAPAZ DE ARMAZENAR INFORMAÇÃO. A

Microprocessadores vs Microcontroladores

Sistemas Digitais e Microcontrolados

Transcrição:

Ciência da Computação Sistemas Microcontrolados Introdução aos Microcontroladores PIC Prof. Sergio F. Ribeiro Microprocessadores Os microprocessadores são circuitos integrados compostos por diversas portas lógicas que realizam operações matemáticas e lógicas diversas. Os sistemas microprocessados são compostos de dispositivos separados: microprocessador, memória, interface de entrada e saída (compostas por transistores, acopladores ópticos, etc). Mas por que não incluir todos estes dispositivos em um encapsulamento? 2

Microcontroladores A união das memórias com os microprocessadores possibilitou o advento dos microcontroladores. Um microcontrolador é um chip que contém praticamente um pequeno computador embutido, de baixo custo, com: núcleo de processamento memórias RAM, ROM e Flash periféricos de E/S conversores de sinais gerador de clock, entre outros. Os microcontroladores devem possuir uma interface com o ambiente externo para que o desenvolvedor de hardware possa realizar operações diversas, como ligar um relé, acender um LED, ler um sensor, etc. 3 Microcontroladores Microcontroladores são dispositivos voltados a sistemas embarcados e aplicações específicas, ao contrário dos μps, destinados a PCs e aplicações de uso geral. Principais razões da integração das memórias aos μcs: redução do número de pinos do encapsulamento. redução dos custos com componentes externos. diminuição das dimensões da montagem. simplificação do circuito de aplicação. Porém, tal integração tem como desvantagem: limitação da complexidade do programa embarcado, devido ao tamanho reduzido da memória nos μcs. 4

Microcontroladores O microcontrolador é programável toda a lógica de operação é estruturada na forma de um programa e gravada dentro do componente. Os µcs não possuem, geralmente, um sistema operacional. Os programas rodam diretamente no chip. O software que roda no µc é chamado de firmware. O software é programado em linguagens C ou Assembly na maior parte dos casos. A programação é feita com o uso de ferramentas instaladas em um PC (IDE). Um compilador é usado para compilar programas em C, e são conhecidos como cross-compiler (PC µc). 5 Microcontroladores O microcontrolador é provido internamente de memória de programa, memória de dados, portas de I/O, timers, contadores, comunicação serial, PWMs, conversores analógico-digitais, etc. Toda vez que o microcontrolador for alimentado, o programa interno (firmware) será executado. Atualmente, muitos equipamentos de nosso uso diário (eletrodomésticos, vídeo-players, alarmes, celulares, brinquedos, etc.) utilizam microcontroladores para execução de suas funções básicas. 6

Arquitetura Básica de um Microcontrolador 7 Aplicações Típicas Tipicamente, μcs são usados no controle de: periféricos de informática eletrônicos de consumo sistemas de supervisão instrumentação automação robótica 8

Marcas de Microcontroladores Algumas marcas e modelos: ATMEL: ATMEGA, AT91, AT90; Microchip INTEL: MCS51 ou 8051 (vários fabricantes fabricam este modelo, mas a Intel foi a primeira a produzi-lo, em 1977); Microchip: PIC, DSPIC. Freescale (Motorola): 68HC, MPC. Texas Instruments: MSP430, TMS370 9 Os Microcontroladores PIC Os PIC, ou PICmicro, são microcontroladores fabricados pela empresa americana Microchip Technologies. Atualmente, a Microchip é uma das maiores fabricantes mundiais de microcontroladores de 8 bits. Em 2016, a Microchip adquiriu a Atmel (produz µc Atmega do Arduino) por cerca de 4 bilhões de dólares. PIC é uma sigla para Programmable Interface Controller e origina-se no início dos anos 80, quando foi concebido para operar como interface controladora de periféricos. Núcleo composto por uma máquina RISC: as versões mais simples tem apenas 33 instruções. memória segue a arquitetura Havard. 10

Arquitetura Havard x Arquitetura Von Neumann Os microcontroladores PIC apresentam uma estrutura interna do tipo Havard, enquanto muitos µc tradicionais (ex: 8051, ATMega) possuem arquitetura de Von-Neumann. A diferença está na forma como os dados e o programa são processados pelo microcontrolador. Arquitetura Von-Neumann existe apenas um barramento interno por onde passam as instruções e os dados. Arquitetura Havard existem dois barramentos internos (um de dados e outro de instruções). Nos µc PIC, o barramento de dados é sempre de 8 bits, e o de instruções pode ser de 12, 14, 16 ou 32 bits, dependendo do modelo do PIC. 11 Arquitetura Havard x Arquitetura Von Neumann Arquitetura Von-Neumann: Arquitetura Havard: 12

Os Microcontroladores PIC Família de Microcontroladores PIC: 13 Os Microcontroladores PIC Os Microcontroladores PIC de 8 bits São mais de 300 ucs, reunindo desde os mais simples e pequenos (6 pinos) a dispositivos de alta gama, com maior poder de processamento, periféricos e interfaces, chegando a 100 pinos. Dividem-se em 4 categorias, de acordo com a complexidade da aplicação a que se destinam: Baseline Mid-Range Enhanced Mid-Range PIC18 14

Os Microcontroladores PIC PIC 8-bits: Memória de Programa vs N de Pinos 15 Estrutura Interna PIC16F628A ULA diretamente ligada ao registrador W. Memória de programa. Memória de dados (RAM). Portas com todos os seus pinos de I/O. Os periféricos, tais como: EEPROM, timers, comparador interno, módulo CCP e a porta serial. O registrador de status. O contador de programa (PC). Circuitos internos de reset, osciladores, Watchdog Timer (WDT), Power-up e Brown-out internos. 16

Pinagem do PIC16F628A O PIC16F628A possui 18 pinos divididos em terminais de alimentação, de reset, de conexão com o oscilador e os terminais de portas e periféricos. Como o µc possui diversas características e um pequeno número de terminais, muitos terminais possuem mais de uma função. 17 Funções dos Pinos 18

Funções dos Pinos 19 Funções dos Pinos 20

O PIC16F628A O PIC16F628A apresenta as seguintes características: 18 pinos no total, sendo 16 de I/O frequência máxima de operação: 20MHz memória de programa: 2k words (2048 x 14) memória de dados: 224 bytes (224 x 8) memória EEPROM: 128 bytes (128 x 8) comunicação serial: USART 10 fontes de interrupção 3 timers (2 x 8 bits, 1 x 16 bits) 2 comparadores analógicos 1 módulo CCP (capture, compare, PWM) 35 instruções de máquina 21 Ciclos de Máquina Nos µc PIC, o sinal de clock é internamente dividido por 4. Para um clock externo de 4MHz, temos um ciclo interno de 1 MHz e, portanto, cada ciclo de máquina dura 1 µs. A divisão do clock por 4 forma as fases Q1, Q2, Q3 e Q4. Basicamente Q1 envolve a busca de instrução, Q2 a decodificação de instrução, Q3 a execução de instrução e Q4 a escrita do resultado. Esse processamento por fases é conhecido como execução em pipeline. Isso permite que todas as instruções sejam executadas em apenas um ciclo (gasta 1us para um clock de 4MHz) e torna o sistema muito mais rápido. 22

Ciclos de Máquina O diagrama seguinte foi retirado do datasheet do µc, e demonstra, claramente, as divisões dos ciclos nas quatro fases (Q1 a Q4) e o conceito de pipeline. 23 Osciladores Os microcontroladores PIC possuem alguns modos de osciladores disponíveis para operação. Tipos de osciladores: RC RC externo (uso de resistor e capacitor) INTOSC RC interno EC fonte de clock externa HS cristal/ressonador de alta frequência (acima de 4MHz) XT cristal/ressonador de média frequência LP cristal/ressonador de baixa frequência (32kHz) 24

Osciladores RC Externo 25 Osciladores Cristal 26

Organização de Memória São divididas em três tipos: ROM Memória de Programa RAM Memória de Dados EEPROM Memória de Armazenamento Por ser um microcontrolador de arquitetura Havard, o PIC16F628A tem suas memórias de programa e de dados mapeadas separadamente. Este microcontrolador possui ainda uma terceira memória: a memória não-volátil EEPROM. EEPROM são memórias não-voláteis, ou seja, não apagam seu conteúdo quando retira-se a alimentação. 27 Memória de Programa A memória de programa presente no PIC16F628A é do tipo FLASH (sufixo F ) que permite ser gravada/apagada mais de 1000 vezes. No PIC16F628A há o registrador PC (Program Counter) de 13 bits capaz de endereçar um espaço de memória de programa de 2k x 14. Vetor de reset corresponde ao primeiro endereço da memória de programa que será executado quando o PIC começar a rodar. Geralmente o reset aponta para o endereço 0x0000. Vetor de interrupção as rotinas de interrupção serão armazenadas na área de programação. Há um endereço reservado para o início das RTIs (0x0004). 28

Memória de Programa 29 Memória de Dados É uma memória do tipo RAM usada para armazenar todas as variáveis e registradores de forma temporária durante a execução do programa. Essa memória armazena dados de 8 bits e é volátil, ou seja, quando o PIC é desligado, ela é automaticamente perdida. No PIC16F628A, essa memória é de 224 bytes. A memória de dados pode ser lida/escrita em tempo de execução do programa através de diversas instruções. A memória de dados é dividida em quatro bancos contendo os registradores de propósito geral (GPRs, em inglês) e os registradores de função específica (SFRs, em inglês). 30

Memória de Dados 31 Obs: posteriormente voltaremos a estudar memória de dados, mais particularmente sobre os SFRs (registradores de função específica). E veremos como ativar/desativar certas funções do µc alterando os valores dos SFRs (fazer configuração via software). 32

Memória EEPROM A EEPROM é uma memória não-volátil que consegue manter as informações mesmo sem alimentação. É usada para armazenar valores que não podem ser perdidos. É escrita e apagada eletricamente. Se necessário, pode ser usada uma EEPROM externa. No PIC16F628A, a EEPROM tem o tamanho de 128 bytes. 33 Configurações do PIC Alguns recursos do PIC podem ser configurados para aplicações específicas. Dependendo do compilador usado para programar o PIC, estas configurações podem ser feitas direto no programa ou podem ser feitas em uma janela Settings do próprio compilador. Algumas destas configurações são: master clear(mclr) watchdog timer brown out detect power up timer low voltage program código de proteção 34

Master Clear (MCLR) Trata-se de um reset externo. É ativo em nível baixo, ou seja, quando aplicado um nível baixo no pino, ocorre o reinício do programa. No PIC16F628A, o MCLR pode ser ativo, ou não, via software. No PIC16F628A, o MCLR está no RA5 (pino 4). resistor de pull-up 35 Watchdog Timer Watchdog significa cão de guarda. Watchdog Timer é um contador de 8 bits utilizado para verificar se o programa travou. Sua função é reiniciar (reset) o microcontrolador quando ocorre overflow da contagem. Uma vez o WDT ativado, o programa deve estar preparado para limpar o contador do WDT periodicamente. caso contrário, o programa será resetado toda vez que esse contador estourar. 36

Brown Out Detect É um sistema de detecção automática de baixa tensão de alimentação. Tensões configuráveis: 4V ou 2.1V. Caso a tensão de alimentação caia abaixo do valor configurado por mais de 100µs, ocorrerá um reset no software (sistema será reiniciado). 37 Power Up Timer Circuito interno que retarda o início da execução do programa. Garante estabilização da tensão de alimentação. Esta opção irá fazer com que o PIC só comece a operar cerca de 72ms após o pino MCLR ser colocado em nível alto. 38

Low Voltage Program Trata-se do sistema de programação do PIC (gravação de memória de programa) em baixa tensão: 5V. Normalmente, essa programação é habilitada por uma alta tensão (13V) no pino MCLR. Com isso, por meio de baixa tensão, é possível criarmos sistemas onde um PIC possa gravar o programa de outro PIC. 39 Código de Proteção Para a gravação em série, é muito importante que essa opção esteja ativada, pois isso impedirá que qualquer pessoa consiga ler o programa gravado dentro do PIC. Essa é a única proteção que você terá para que ninguém possa copiar o seu sistema. Essa opção impedirá que você leia a memória mas não impedirá que você grave outro programa por cima. 40

Interrupções Uma interrupção serve para interromper o programa imediatamente. As interrupções são ações tratadas diretamente pelo hardware, o que as torna muito rápidas e disponíveis em qualquer ponto do sistema. Quando uma interrupção acontece: o programa é paralisado. o programa guarda, na pilha, o endereço da próxima instrução. ocorre o desvio para um endereço fixo da memória de programa. neste endereço (0x04 no PIC16F628A) uma função específica (definida pelo programador) é executada. e depois o programa continua a ser executado no mesmo ponto em que estava. 41 Interrupções no PIC Existem modelos de PIC que nem possuem interrupções (ex: 12C50X, 16C54). Mas na maioria dos modelos de PIC, as interrupções estão presentes (em maior ou menor número). O PIC16F628A possui 10 tipos de interrupções: 3 relacionadas a timers externa mudança de estado fim de escrita na EEPROM de USART (2) de Comparador e de CCP Veremos agora detalhes de algumas destas interrupções. 42

Interrupções pelos Timers Os timers são registradores que atuam como contadores ou temporizadores. Há três timers no PIC16F628A: timer 0, timer 1 e timer 2. As interrupções pelo timer acontecem sempre que um dos contadores de tempo interno, denominados TMR0 (Timer 0), TMR1 (Timer 1) e TMR2 (Timer 2), estouram. No caso do TMR0, como ele é um registrador de 8 bits, o estouro ocorre sempre que ele passar de 0xFF para 0x00. No caso do TMR1 (registrador de 16 bits), o estouro ocorre sempre que ele passar de 0xFFFF para 0x0000. 43 Interrupções pelos Timers Já para o TMR2, que é também um registrador de 8 bits, a interrupção não acontece necessariamente quando ele estoura o limite de 0xFF, e sim quando ele atinge um valor especificado em outro registrador especial chamado PR2. A interrupção pelo timer é utilizada normalmente para a contagem de tempo. O TMR0 e TMR1 podem ser incrementados internamente tanto pelo clock da máquina como também por um sinal externo. ao usar um sinal externo, os timers passam a ser contadores de pulsos, podendo ser utilizados para outras finalidades. 44

Interrupções pelos Timers Tempo de estouro do timer corresponde ao tempo que o processador leva para ativar uma interrupção pelo timer. Cálculo do tempo de estouro: para o Timer0: TE = (2 8 TMR0) * Prescale * ciclo_de_maquina para o Timer1: TE = (2 16 (TMR1H:TMR1L)) * Prescale * ciclo_maquina para o Timer2: TE = PR2 * Prescale * Postscale * ciclo_de_maquina Obs: TMR0, TMR1H, TMR1L e PR2 são registradores de 8 bits. 45 Interrupção Externa Essa interrupção é gerada por um sinal externo ligado a uma porta específica do PIC, que no caso é o bit RB0 (pino 6), desde que esteja configurada como entrada. A interrupção externa é utilizada para diversas finalidades: comunicação entre microcontroladores, garantindo o sincronismo. reconhecimento de um botão ou outro sinal do sistema que necessite de uma ação imediata. A interrupção externa pode ser configurada para ocorrer na borda de subida ou na borda de descida do pulso. Flag de sinalização da interrupção externa: INTF. Controle de habilitação: INTE. Estas duas flags são encontradas no registrador INTCON. 46

Interrupção por Mudança de Estado Diferentemente da interrupção externa, a interrupção por mudança de estado ocorre tanto na borda de descida como na borda de subida. Essa interrupção, por sua vez, está ligada ao nibble mais significativo da porta B, ou seja, RB4, RB5, RB6 e RB7 simultaneamente. Por isso, se esses pinos forem configurados como entrada, a mudança de estado em qualquer um deles irá gerar a interrupção. Esse tipo de interrupção pode ser utilizado para verificação de uma rede de sensores conectada a esses pinos. Flag sinalizador desta interrupção: RBIF. Habilitação: RBIE. 47 Interrupção de Fim de Escrita na EEPROM Como foi visto anteriormente, alguns PICs possuem uma memória EEPROM interna. Essa interrupção serve para detectarmos o final de uma rotina de escrita nessa memória. A utilização da interrupção não é obrigatória para que a escrita funcione, mas, como a EEPROM é lenta na hora de escrever, em alguns sistemas sua utilização pode ser necessária para evitar uma parada durante a escrita na EEPROM. 48

Interrupção de Comparador Uma vez que o PIC16F628A possui dois comparadores internos, estes poderão ser utilizados de forma totalmente independente do programa, ou de forma mista. No último caso, o resultado da comparação poderá ser analisado pelo programa para a tomada de decisões. Para facilitar ainda mais esta função, a interrupção do comparador pode ser utilizada para avisar o sistema sempre que houve uma mudança de estado na resposta da comparação. 49 Interrupções de USART USART significa Universal Synchronous Asynchronous Receiver Transmitter. O PIC16F628A possui um sistema completo (via hardware) para comunicação serial do tipo USART, por meio do protocolo RS-232. Este sistema facilita todo o processamento para entrada e saída de dados seriais. Este sistema possui duas interrupções para informar o programa quando um dado foi recebido e quando a transmissão de outro dado já foi terminada. 50

Interrupção de CCP O módulo CCP (Capture, Compare e PWM) possui uma interrupção para informar ao programa uma das duas situações possíveis: fim da captura (Capture) fim da comparação (Compare) O modo Capture pode ser utilizado para contar o tempo (TMR1) entre duas mudanças de estado de uma entrada específica (T1CKI). com isso podemos implementar, por exemplo, um periodímetro. Já como Compare, podemos comparar o valor de TMR1 com o especificado em outro registrador especial (CCPR1). desta forma podemos monitorar a quantidade de pulsos na entrada relacionada ao TMR1 (T1CKI). 51