Tutorial: Gravando Bootloader do Arduino UNO (ATmega328P-PU) com o AVR Programmer Shield

 

Adquira estes componentes na Loja do Lab de Garagem

Olá Garagistas! Neste tutorial mostraremos como você pode gravar o Bootloader do Arduino UNO em um microcontrolador ATmega328P-PU. E como demonstração, passaremos o LED Blink para ele e o utilizaremos em um Arduino UNO e também em um Garagino.

 

Materiais Utilizados:

1x AVR Programmer Shield

1x ATmega328P-PU

1x Arduino UNO

1x Kit Garagino

 

 

1. Família AVR

Imagem 1 - Microcontrolador da família AVR utilizado no Garagino/Arduino UNO (ATmega328P-PU)

 

AVR é um microcontrolador RISC de chip único com uma arquitetura Harvard modificada de 8-bit (µC), desenvolvido pela Atmel em 1996Foi um dos primeiros da família de microcontroladores a utilizar uma memória Flash com o intuito de armazenar a programação, diferentemente de seus concorrentes da época, que utilizavam memórias do tipo PROM EPROM e E²PROM. Veja abaixo alguns microcontroladores AVR utilizados por placas Arduino:

 

ATmega168: Duemilanove, Nano, Pro, Pro Mini

ATmega328: UNO, Duemilanove, Ethernet, Mini, Nano, Pro, Fio

ATmega32u4: Leonardo, Yún, Tre, Micro, Robot, Esplora

ATmega2560: Mega 2560, Mega ADK

 

 

2. Bootloader Arduino

Como já foi dito, a maioria das placas Arduino, são baseadas em microcontroladores da família AVR (Atmel). E já que todo software a ser executado por um AVR precisa estar em sua Flash, o programa escrito na Arduino IDE (Integrated Development Environment / Ambiente Integrado de Desenvolvimento) precisa ser gravado lá. Para que você não precise utilizar um gravador externo para tal, a gravação da Flash é feita por um software que reside nela própria, chamado de Bootloader. Assim que o microcontrolador (AVR) é energizado, ou após ter recebido um RESET, o primeiro programa que o mesmo executa será o Bootloader.

No que diz respeito ao protocolo para receber o programa pela serial, o Bootloader utiliza um subconjunto do protocolo usado por um programador externo, o STK-500. Isto permite usar softwares padrão de programação no PC, a IDE do Arduino usa o AVRDUDE por exemplo.

Ao longo dos anos o Bootloader do Arduino passou por alterações, a versão atual (Fev/2014) é o chamado Optiboot (Bootloader "Otimizado"). A otimização consistiu em reduzir o tamanho para caber em 512 bytes, aumentar a velocidade na serial para 19200 e receber os dados de uma página enquanto a apaga.

 

 

3. AVR Programmer Shield

Imagem 2 - AVR Programmer Shield

 

O AVR Programmer Shield é um shield que pode gravar microcontroladores AVR Atmel (ATtiny e ATmega) utilizando a placa Arduino com o sketch ArduinoISP.

Com este shield, pode-se gravar Bootloaders utilizando o próprio programa da Arduino (IDE) ou gravar códigos utilizando o AVRDUDE.

 

 

4. Configurando o Arduino como ISP

Com o Arduino conectado ao computador, siga os passos abaixo:

 

4.1) Execute o software Arduio IDE 1.0.5.
Imagem 3 - Iniciando a Arduino IDE

 

4.2) Abra o Sketch exemplo ArduinoISP.
Imagem 4 - Selecionando o exemplo ArduinoISP

 

4.3) Faça o UPLOAD do sketch para o Arduino.
Imagem 5 - UPLOAD do sktech ArduinoISP

 

4.4) Após o término do UPLOAD, configure a opção programmer para "Arduino as ISP".
Imagem 6 - Configurando o programmer como "Arduino as ISP"

 

 

5. Gravando o Bootloader no ATmega328P-PU

5.1) Conecte o AVR Programmer Shield ao Arduino

Imagem 7 - Conectando AVR Programmer Shield ao Arduino

5.2) Conecte o ATmega328P-PU no Soquete ZIF e feche-o

Animação 1 - Conectando o ATmega328P-PU ao AVR Programmer Shield

5.3) Selecione a placa Arduino UNO:

Imagem 8 - Selecionando a placa Arduino UNO

5.4) Clique em Burn Bootloader

Imagem 9 - Clicando em Burn Bootloader

 

5.5) O LED "PROG" piscará uma vez e depois ficará aceso. Quando terminar, este LED apagará e o software do Arduino mostrará a mensagem "Done Burn Bootloader"

 

Imagem 10 - Fim de gravação do Bootloader

6. LED Blink

6.1) Conecte seu ATmega328P-PU em um Garagino ou Arduino UNO

6.2) Faça o upload LED Blink.

Imagem 11 - Upload LED Blink

6.3) Se tudo correu certo, o LED do pino 13 deverá piscar a cada 1 segundo.

OBS: Se você desejar gravar outro ATmega328P-PU em sequência, basta conectar o chip ao ZIF, fechá-lo e clicar em Burn Bootloader novamente.

Então é isso Garagistas! Agora você podem facilmente gravar o bootloader do Arduino UNO para seus ATmega328P-PU utilizando esse Shield. Espero que tenham gostado deste tutorial! Até a Próxima.

 

Referências:

http://arduino.cc/

http://dqsoft.blogspot.com.br/2011/07/arduino-o-bootloader_18.html

http://pt.wikipedia.org/wiki/Atmel_AVR

 

 

Exibições: 25745

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Arthur Feriotti em 3 maio 2016 às 13:42

É possível fazer upload do código usando o AVR programmer shield? Ou tenho que colocar o ATMega na placa do Arduino sempre?

Comentário de Euclides Franco de Rezende em 20 março 2015 às 12:58

Seria possível colocar jumpers entre este shield e os pinos adequados e gravar o Boot do Arduino Mega em uma placa Mega 2560?

Comentário de Renato Lôbo Rodrigues em 11 outubro 2014 às 15:49

Alguém pode me ajudar? sou principiante com arduino e preciso de usar um comando usando a biblioteca SD.H para extrair o tamanho do arquivo lido do SD Card. Fico grato pela ajuda. 

Comentário de Diego Alves de Sousa em 16 março 2014 às 19:05

Boa noite pessoal fiz o teste além de gravar o bootloader, ele também grava o código ,fiz o teste com o blink

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço