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:
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 1996. Foi 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:
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://dqsoft.blogspot.com.br/2011/07/arduino-o-bootloader_18.html
http://pt.wikipedia.org/wiki/Atmel_AVR
Comentar
É possível fazer upload do código usando o AVR programmer shield? Ou tenho que colocar o ATMega na placa do Arduino sempre?
Seria possível colocar jumpers entre este shield e os pinos adequados e gravar o Boot do Arduino Mega em uma placa Mega 2560?
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.
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)