Arduino

download Arduino

of 10

description

arduino

Transcript of Arduino

Universidade Estadual Paulista Jlio de Mesquita FilhoCampus Experimental de Sorocaba

Arquitetura Arduino

Rodrigo Daniel da Silva 1110314Tiago Carvalho 122270347

Sumrio

1.Arquitetura Arduino11.1.Introduo11.2.Arquitetura11.3.Microcontrolador ATmega328P42.Interrupo na famlia Arduino53.Bibliografia7

Arquitetura Arduino Introduo

O Arduino uma plataforma eletrnica open-source baseada em hardware e software de simples utilizao. Seu principal objetivo a utilizao universal da plataforma com o intuito de desenvolvimento de projetos onde h a necessidade de controle de acionamentos. Atualmente existem vrios modelos de hardware e software. Como o objetivo desse trabalho a apresentao da arquitetura e principalmente a utilizao da interrupo na famlia Arduino simplificaremos o trabalho demostrando apenas a aplicao denominada Arduino Uno.

Arquitetura

O Arduino Uno uma placa que utiliza o microcontrolador ATmega328. Possui 14 pinos de entrada e sada de dados (onde 6 podem ser utilizados como sadas PWM), 6 entradas analgicas, um cristal de 16MHz de frequncia de oscilao, conexo USB, interruptor de energia, um cabealho ICSP (In-Circuit Serial Programming) e um boto de reinicializao. Ou seja, possui todo o suporte que o microcontrolador necessita podendo ser conectado de forma simples a um computador atravs da conexo USB.A verso Uno difere das demais porque no utiliza o chip FTDI USB para conexo serial UBS. Para isso, utiliza-se do chip ATmega16U2 programado como conversor USB-serial.O Arduino Uno pode ser programado com o software da Arduino. O microcontrolador ATmega328 do Arduino Uno j possui um programa de inicializao para o Arduino pr-carregado que permite o upload dos cdigos sem a necessidade de utilizar um programa para hardware externo. A comunicao se baseia no protocolo STK500.Tambm possvel ignorar o programa de inicializao do microcontrolador atravs do cabealho ICSP utilizando o Arduino ISP ou similar

Resumindo:Microcontrolador ATemga328Tenso de Operao 5VTenso de Entrada 7-12VLimite de Tenso de Entrada 6-20VPinos E/S 14 (6 com sada PWM)Entradas Analgicas 6Corrente contnua por E/S 40mACorrente contnua para pinos de 3.3V 50mAMemria de dados 32KB (0.5KB inicializao sist.)SRAM 2KBEEPROM 1KBFrequncia do Cristal 16MHzComprimento 68.6mmLargura 53.4 mmPeso 25g

Figura 1 Esquema do Arduino UnoMicrocontrolador ATmega328P

O chip ATmega328P um microcontrolador de 8 bits baseado na tecnologia CMOS com arquitetura RISC (Reduced Instruction Set Computer); algumas das suas principais caractersticas so: 4K/8K bytes disponvel para o sistema na memria programvel com leitura e escrita disponvel, 1Kbytes EEPROM, 2Kbytes SRAM, 23 E/S para propsito geral, 32 registradores de propsito geral, 3 Timers/Counters com modo comparativo, interrupes internas e externas, uma serial programvel USART, um interface serial de 2 bytes, uma porta serial SPI.

Figura 2 Esquema do Microcontrolador ATmega328P

Interrupo na famlia Arduino

Existem basicamente dois tipos de interrupes. O primeiro caso acionado atravs de um evento que habilita a Flag de interrupes. Para esse tipo de interrupo o PC apontado para a posio atual do vetor de interrupes a fim de executar a rotina que manipula a interrupo e o hardware zera a flag correspondente da interrupo. Flags de interrupes podem ser zeradas tambm atravs de programa. Se uma situao de interrupo ocorre enquanto o bit que habilita a interrupo estiver zerado, a Flag de interrupo ser habilitada e memorizada at que a interrupo seja habilitada ou a flag zerada por software. Igualmente, se uma condio de interrupo ocorre enquanto o bit de interrupo global estiver zerado a flag de interrupo correspondente ser habilitada e memorizada at que o bit de interrupo global seja habilitado, e assim a interrupo ser executada conforme sua ordem de prioridade. O segundo tipo de interrupo ser executado sempre que uma condio de interrupo acontecer. No necessariamente, esses casos possuem flags. Se a condio de interrupo termina antes da interrupo ser habilitada a interrupo no ser executada. Note que o registrador de status no armazenado automaticamente quando uma rotina de interrupo executadas, essa situao deve ser pensada pelo software. Durante chamadas de interrupes ou sub-rotinas (atravs das instrues CALL, ICALL, RCALL), o endereo de retorno do PC (Program Counter) armazenado na Pilha (2 bytes). A pilha alocada na SRAM e consequentemente o tamanho da pilha e limitado apenas pelo tamanho da SRAM e seu uso. Todos os programas devem inicializar o SP (Stack Pointer) na rotina de reinicializao (antes da execuo de sub-rotinas ou interrupes). Normalmente o SP decrementado de 2bytes nas chamadas e incrementado de 2 bytes no retorno das interrupes ou sub-rotinas. Um modulo flexvel de interrupes tem seu registrador de controle no espao reservado para as E/S com um bit adicional para interrupo no registrador de status. Todas as interrupes possuem um vetor de interrupes separado na tabela de vetores de interrupo. As interrupes possuem prioridade de acordo com sua posio no vetor de interrupes. Quanto menor o endereo da interrupo no vetor maior a prioridade da interrupo. O registrador de status no armazenado automaticamente quando uma interrupo solicitada ou finalizada, essa operao deve ser realizada pelo programador.O Bit 7 ou I-bit do registrador de status o responsvel por habilitar (1) ou desabilitar (0) as interrupes. O controle de interrupes individuais manipulado atravs de outro registrador. Se o habilitador global de interrupes estiver desabilitado nenhuma das interrupes podem ser habilitadas individualmente. O Bit 7 zerado por hardware aps a ocorrncia de uma interrupo, e habilitado pela instruo RETI para habilitar interrupes subsequentes. O I-bit tambm pode ser habilitado/desabilitado por software atravs das instrues SEI e CLI.

Figura 3 Registrador de Status

Figura 4 Exemplos de cdigos de interrupo utilizando as instrues CLI ou SEI.

Bibliografia

[1] Arduino UnoDisponvel em http://www.arduino.cc/en/Main/ArduinoBoardUno Acesso 05/06/2015

[2] Datasheet do microcontrolador ATmega328P Disponvel em http://www.atmel.com/Images/doc8161.pdf. Acesso 05/06/20157