Anatomia do Arduino Bootloader

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

Sistemas Embarcados:

Arquitetura do Microcontrolador Atmega 328

Disciplina : Microcontroladores AVR

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Programação C para Arduino

Introdução à robótica

Microcontrolador 8051:

Aula 10 Microcontrolador Intel 8051 Parte 1

ARDUINO. Profº. Engº. Robson Dias Ramalho

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

Jadsonlee da Silva Sá

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Microcontrolador 8051

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

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

Introdução ao Arduino

Conjunto de Instruções e Modelos de Arquiteturas

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

Família de Microcontroladores AVR

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

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Sistemas Microprocessados

Robótica com Arduino Professor: Paulo Marcos Trentin

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

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

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

Introdução à Plataforma ARDUINO

Introdução do Arduino para aquisição de dados e controle de instrumentos

SISTEMAS MICROCONTROLADOS

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

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

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

MSP430 - Arquitertura

Curso introdutório de microcontroladores - Plataforma Arduino

Curso Arduino ESP8266. Aula #1 - Introdução

EPOS: Um Sistema Operacional Portável para Sistemas Profundamente Embarcados

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

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

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2

PSI3441 Arquitetura de Sistemas Embarcados

Conjunto de Instruções e Modelos de Arquiteturas

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

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A

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

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

O microcontrolador Quatro partes importantes

KIT DE DESENVOLVIMENTO 8051 BASEADO NO AT89S8252 MANUAL DO UTILIZADOR. Rui Marcelino (Nov. 2005)

Conhecendo o PIC24 e o mikropascal

FACULDADE LEÃO SAMPAIO

Sistemas Embarcados:

1.ARQUITETURA INTERNA DE UM MICROPROCESSADOR

Programação Básica em Arduino

Hardware Livre Arduino. Givanaldo Rocha de Souza

Disc.: Sistemas Microprocessados Curso Técnico em Eletrônica

Estrutura Básica de um Computador

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

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Microprocessadores. Organização de Memória

Programação do Arduino. Parte 1. IDE Wiring

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Microcontroladores 8051

ARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto

Introdução. O que é o Arduino?

Aula 8 Microcontrolador 8051

Organização de Memórias

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Sistemas Operacionais. Sistema de entrada e Saída

I2C PROTOCOLO DE COMUNICAÇÃO

Sistemas Microcontrolados

Guia da Placa de desenvolvimento PD Mega16 N1

EEC2104 Microprocessadores

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Microcontroladores: Programação em C

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

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

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

Aula 8 Microcontrolador 8051

Programação Básica em Arduino Aula 1

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

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

Microcontroladores PIC16 - XM 116 -

Arduino - Primeiros Passos

Transcrição:

Anatomia do Arduino Bootloader Fábio Olivé (fabio.olive@gmail.com)

Tópicos A plataforma Arduino A família Atmel AVR ATmega Padronização da configuração e uso do ATmega Detalhando o ATmega328P Especificações técnicas Registradores de controle e layout da memória O papel do bootloader O que o microcontrolador faz quando é ligado? Quais funcionalidades o bootloader implementa? Conversando com o bootloader pela serial

A plataforma Arduino

A Família Atmel AVR ATmega µcontroladores RISC de 8bits, contendo: 32 registradores de 8bits de uso geral Memória de programa em Flash Arquitetura Harvard, programa separado dos dados Códigos de operação de 16bits (estilo RISC, tamanho fixo) Memória SRAM para registradores, controle, periféricos Memória EEPROM para retenção de dados Várias funções selecionáveis de I/O por pino Cada pino é uma surpresa!

Padronização de Uso do ATmega Simplificação da configuração do µcontrolador Define usos padronizados para cada pino Define formas de identificar cada pino Simplificação da linguagem de programação C++ facilitado, pré-processado para gerar o programa final Abundância de bibliotecas padronizadas Padronização de layouts e barramentos de I/O Padronização do bootloader e gravação da flash Desvantagem: perde um pouco na eficiência do código e na flexibilidade do uso

Detalhando o ATmega328P

ATmega328P

Especificações Técnicas 32KB de memória de programa em flash Organizado em 16K palavras de 16bits Separado entre área de aplicação e área de boot (final) Área de boot pode ter 2KB, 1KB ou 512B (optiboot) 2KB de Static RAM para dados e registradores Registradores de uso geral, de controle e I/O e RAM todos no mesmo espaço de endereçamento Estranho mas interessante :-) Arquitetura Harvard, e só a flash é vista como memória de programa (não executa a RAM)

Pinagem do ATmega328P

Pinagem padronizada pelo Arduino

Registradores de Controle Regiões de memória que afetam o funcionamento e a configuração do µcontrolador Funções de I/O como porta serial, seleção de direção dos pinos de I/O, seleção do canal analógico, etc PinMode(8, OUTPUT), por exemplo, muda alguns bits em registradores de controle que habilitam o pino PB0 para funcionar como saída Acesso a timers, interface de leitura e escrita na EEPROM, etc É a parte mágica do ATmega328P, que define como ele interage com o mundo externo :-)

Layout da Memória FLASH Vetores de Int Aplicação 0000h 0068h SRAM Registradores Registradores de Controle e I/O 0000h 0020h 0100h Boot 7800h 7e00h 7fffh RAM Dados e Pilha 08ffh

O papel do bootloader

O que o 328P faz quando é ligado? Inicializa todos os pinos como INPUT Inicializa registradores de controle e status Identifica fusíveis de configuração básica Incluindo onde começa o bootloader Inicializa SRAM e Stack Pointer Executa o bootloader A partir daqui é só software

Funcionalidades do Bootloader Configurar o µcontrolador de acordo com a especificação da plataforma Arduino Identificar comandos de programação Identificar o µcontrolador (modelo, etc) Realizar inicialização da plataforma Executar (saltar para) a aplicação gravada na flash Atualmente o Arduino usa o optiboot, que é muito simplificado e ocupa apenas 512 bytes

Falando com o Bootloader pela Serial Protocolo STK500 Funções bastante básicas Identificação do µcontrolador (modelo, etc) Configuração de fusíveis e bits persistentes de controle Leitura e gravação das memórias Programa especializado: avrdude

Conhecendo o Optiboot Demonstração prática :-)

Referências http://arduino.cc/en/hacking/bootloader http://code.google.com/p/optiboot/ http://www.atmel.com/devices/atmega328p.aspx AVR Instruction Set Reference http://www.atmel.com/images/doc0856.pdf STK500 Communication Protocol http://www.atmel.com/images/doc2591.pdf