0% acharam este documento útil (0 voto)
16 visualizações16 páginas

Gravação de Bootloader no Arduino

Enviado por

grangeirolcgf
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
16 visualizações16 páginas

Gravação de Bootloader no Arduino

Enviado por

grangeirolcgf
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Gravando Bootloader no Arduino

Este tutorial é baseado no tutorial: Using an Arduino as an AVR ISP (In-System Programmer)

Veremos neste tutorial como utilizar um Arduino como AVR ISP. O que isso significa? Basicamente que
poderemos gravar o bootloader no ATMega que está em uma Placa Arduino. ISP (In-System Programmer) é a
capacidade de alguns dispostivos de lógica programável, como o Arduino, de ser programado quando já
estão em um sistema, ou seja, não precisam que seu chip seja programado anteriomente a instalação do
sistema.

Para este tutorial é necessário o uso de dois Arduinos:


· Arduino de Interface: será conectado ao computador
· Arduino alvo: placa a ser gravado o Bootloader

Para utilizar sua placa Arduino para gravar o bootloader em um AVR, você precisará seguir os seguintes
passos:

· Primeiramente vamos carregar um programa no Arduino de Interface (a placa que já tem bootloader) e
somente depois será feito o circuito para gravar o BootLoader no outro Arduino.
Conecte a placa de interface ao computador, abra a IDE do Arduino e acesse: Arquivo > Exemplos >
ArduinoISP.
Nota: caso esteja na versão 1.0 da IDE você deve alterar uma linha no código. Ache na função heartbeat() a linha delay(40) e mude para
delay(20).

/
· Selecione a Placa Programadora (que está conectada ao computador).
Vá em: Ferramentas > Placa: > "Modelo do seu Arduino".

/
· Selecione a Porta COM correspondente ao seu Arduino.
Vá em: Ferramentas > Porta: > "COMx".

/
· Faça o Upload do Programa no seu Arduino.

/
· Conecte as Placas Arduino como abaixo.
· Os pinos 5V, GND, 11, 12 e 13 de ambas as placas devem estar interligados
· O pino 10 da placa que você gravou o programa anteriormente deve estar ligado ao pino de Reset da
placa que você deseja gravar o bootloader

Nota: Caso não funcione no Arduino UNO, adicione um Capacitor de 10uF entre o Reset e o Ground.
Nota²: A conexão só funcionará em placas onde os sinais do SPI são indicados por esses pinos descritos. Para placas onde isso não é possível
como a Leonardo(32u4) os sinais de SPI devem ser conectados no conector ISP.(Confira no final do tutorial a conexão).

/
· Selecione o Modelo do Arduino a ser gravado o Bootloader.
Vá em: Ferramentas > Placa: > "Modelo do seu Arduino".

/
· Mude o Programador para "Arduino as ISP".
Vá em: Ferramentas > Programador: > Arduino as ISP.

/
· Grave o BootLoader na Placa.
Vá em: Ferramentas > Gravar BootLoader.

/
· Pronto, está gravado o BootLoader conforme a imagem abaixo.

/
Abaixo segue a pinagem do Header do ICSP, uso obrigatório na Leonardo(ATMega32u4) e opcional caso
esteja utilizando Arduino Uno/BlackBoard(ATMega328), onde:

VCC no VCC

GND no GND
D10 no RST

D11 no MOSI

D12 no MISO

D13 no SCK

/
COMENTÁRIOS

Para fazer comentários é necessário estar logado. Efetuar login.

Você ainda nao é cadastrado? Cadastre-se agora!

jaderaretakis
Enviado: 2020-11-12 17:15:41

Boa tarde! Fiz um bootloader de um UNO pra um NANO e funcionou normal (gravação com sucesso). Logo em seguida,
peguei um segundo Nano e repeti o procedimento (tirei só os fios do primeiro nano do ISP e coloquei no segundo
nano “virgem”. Quando coloquei pra gravar, apareceu a mensagem de erro assinatura (Yikes! Invalid device
signature. Double check connections and try again, or use -F to override this check). Já mudei o arquivo
[Link] pra 0x1e 0x95 0x14 e NADA. Instalei o miniCore no IDE e gravei por ele e NADA. Alguma ideia?

Francois Resposta Oficial


Enviado: 2020-11-12 18:28:14
 jaderaretakis

Verifique que as duas placas são idênticas, inclusive o microcontrolador. O problema de assinatura inválida
geralmente está associado ao uso de um microcontrolador diferente ou a um microcontrolador queimado.

jaderaretakis
Enviado: 2020-11-13 14:37:45
 jaderaretakis

No caso pra fazer o bootloader a placa do doador tem que ser igual a placa do receptor pra funcionar? Outra
coisa, nesse primeiro nano que teve a gravação bem sucedida, percebi q pra ativar uma saída digital dele eu
preciso dar um comando LOW ao invés de HIGH como eh o habitual no uno. O nano funciona invertido ou eu fiz
alguma coisa errada ?

Francois Resposta Oficial


Enviado: 2020-11-13 18:47:54
 jaderaretakis

Você pode usar duas placas diferentes para fazer a gravação. O importante é programar o código "ArduinoISP"
como "Arduino Uno" na sua placa Uno e depois selecionar o modelo "Arduino Nano" antes de gravar o bootloader
na sua placa Nano. Além disso, deve-se prestar atenção nas conexões, pois os pinos de SPI variam entre os
modelos.

/
A placa Nano deveria funcionar como a placa Uno, com o nível HIGH indicando 5 V no pino de saída. Às vezes o
circuito externo pode estar invertido, por exemplo para acionar um LED com LOW ao invés de HIGH.

cargretter
Enviado: 2020-09-22 08:55:19

Bom dia Giovanni. Eu estou utilizando um ATmega2560 em modo stand alone e consegui gravar o bootloader nele
utilizando um Arduino Uno (utilizei este tutorial: [Link]
Using-Arduino-UNO/). Após gravar o bootloader, passei um programa blink para testar se funcionou na placa do
ATmega2560 e funcionou corretamente. Porém, quando eu tento gravar novamente algum outro programa, ele não
reconhece, e então é preciso regravar o bootloader novamente e dai sim consigo gravar um novo programa nele.
Você sabe o que esta sendo feito de errado?

Giovanni5 Resposta Oficial


Enviado: 2020-09-22 13:55:33
 cargretter

Você alterou o valor de "high fuse" do bootloader da Mega, como mostrado no tutorial citado? Essa alteração
é útil quando a ideia é gravar códigos utilizando sempre a comunicação SPI, como a gravação de bootloader.
Entretanto, se a ideia é gravar o microcontrolador por UART, talvez seja melhor manter o valor configurado
com o padrão.

AndreFeliciano
Enviado: 2020-09-07 13:45:06

Giovanni, ótima explicação. Eu tenho um Arduino Mega com defeito que acredito que seja o conversor USB
interno Atmega 8U2. Eu consigo gravar no Mega algum sketch usando o ISP de um Arduino Uno e aproveitar o
Mega??

Giovanni5 Resposta Oficial


Enviado: 2020-09-08 09:08:28
 AndreFeliciano

Sim, você ainda consegue gravar códigos na sua Mega utilizando a UNO, porém seria necessário montar o
circuito e seguir o processo de gravação de bootloader toda vez que você quiser carregar um código. Além
disso não ser nada prático, também requer que você tenha sempre uma UNO disponível. Talvez a melhor opção
para o seu caso seja a utilização de um módulo conversor USB/UART, como o módulo FTDI
([Link] Assim você conseguirá carregar os códigos diretamente
para a sua Mega sem precisar de uma UNO, e sem esse processo de gravação de bootloader.

AndreFeliciano
Enviado: 2020-09-08 12:34:11
 AndreFeliciano

Obrigado pelo retorno. Uma otima idéia a sua já que não estou conseguindo gravar por esse método. Antes de
comprar um eu gostaria de testar para ter certeza. Vou tirar o Atmega do Uno e ligar o conversor USB do Uno
para gravar o Mega. Consigo fazer isso?

Giovanni5 Resposta Oficial


Enviado: 2020-09-08 13:50:28
 AndreFeliciano

Sim, você consegue fazer isso, apenas tome cuidado na hora de remover o ATmega328 da UNO, para não danificá-
lo. Vale lembrar que, você terá de usar os pinos 0 e 1 (RX e TX) de ambas as placas para esse teste.

/
AndreFeliciano
Enviado: 2020-09-08 16:09:22
 AndreFeliciano

Valeu. Vou testar ainda hoje e coloco aqui o resultado.

AndreFeliciano
Enviado: 2020-09-09 09:04:24
 AndreFeliciano

Não deu certo. Primeiro eu tentei em um Uno generico, não gravou e nem pela USB grava mais. Vou pesquisar
mais.

[Link]
Enviado: 2020-08-11 16:27:30

Tem algum tutorial sobre gravar o bootloader em um atmega328p-pu utilizando o oscilador interno de 8MHz em uma
protoboard usando usbasp e/ou avrdude? Ou sobre como remover o bootloader desse chip? Eu instalei o
bootloader, rodei o chip em um circuito e ele funcionou bem, mas num segundo teste não rodou mais e também não
consigo mais passar códigos para ele. Não sei se é um problema no bootloader, mas gostaria de tentar
"reinstalar" ele.

Giovanni5 Resposta Oficial


Enviado: 2020-08-11 17:20:27
 [Link]

Para "reinstalar" o bootloader, basta regravá-lo no microcontrolador, pois toda vez que o bootloader é
gravado, o antigo é completamente apagado, e você pode fazer isso em modo "standalone" (sem componentes
externos), seguindo o tutorial a seguir [Link]
[Link] . Entretanto, vale lembrar que, o oscilador interno do ATmega328P possui uma tolerância
muito alta (em torno de 10%), portanto isso pode ser um problema para algumas aplicações.

Giovanni5 Resposta Oficial


Enviado: 2020-08-11 17:21:18
 [Link]

Ainda assim é possível calibrá-lo, como comentado no fórum a seguir,


[Link] .

redbio
Enviado: 2020-08-07 22:42:50

Olá boa noite.

Primeiramente parabéns pelo tutorial. Queria saber se dá para instalar o bootloader no uno usando o pro micro?
Procurei referências na internet e está difícil. ;-(

Giovanni5 Resposta Oficial


Enviado: 2020-08-10 08:11:34
 redbio

Infelizmente não há uma referência online exatamente sobre isso, porém ainda assim deve ser possível gravar
o bootloader de uma placa UNO usando uma Pro Micro. Como base para isso você pode utilizar a imagem a
seguir, [Link] . Entretanto note
que, esta imagem está usando uma UNO para gravar a Pro Micro, para o seu caso, basta conectar o pino 10 da
/
Pro Micro ao pino de reset da UNO, ignorando a conexão inversa (pino 10 da UNO ao pino de reset da Pro
Micro).

gilvaneud
Enviado: 2020-07-17 14:57:23

como gravar bootloader do at mega 2560 para o leonardo ???

Giovanni5 Resposta Oficial


Enviado: 2020-07-17 15:20:58
 gilvaneud

Para gravar o bootloader de uma Mega para uma Leonardo, é necessário utilizar o conector ICSP da placa
Leonardo, como comentado acima, e como na imagem a seguir, [Link]
[Link] .

gustavofulber
Enviado: 2020-07-14 15:54:35

Boa tarde, ficarei muito grato se puder me ajudar, tô gravando de um mega para um uno, fiz todos os passos e
os revisei, entretando quando vou gravar o bootloader aparece a seguinte mensagem "Yikes! Invalid signature.
Double check conections and try again, ir use -F tô overdose this check", alguma ideia de como resolver? Desde
já agradeço

Giovanni5 Resposta Oficial


Enviado: 2020-07-14 16:29:00
 gustavofulber

Para gravar o bootloader de uma placa Mega, para uma placa UNO, é necessário montar o circuito da imagem a
seguir, [Link] . Vale lembrar que o capacitor entre o pino
de RESET e o GND não é obrigatório. Além disso, lembre-se de selecionar o modelo da placa que será gravada,
antes de iniciar a gravação do bootloader.

gustavofulber
Enviado: 2020-07-14 16:45:41
 gustavofulber

GOSTARIA DE AGRADECER A SUA EXISTÊNCIA NESSE PLANETA, ESTOU A UMA SEMANA NESSA BAGACA TRAVADO E NAO VOU PRA
FRENTE, SE QUISER, TE MANDO UM PEQUENOAGRADECIMENTO MONETARIO, MUITO OBRIGADO

Giovanni5 Resposta Oficial


Enviado: 2020-07-14 17:01:24
 gustavofulber

gustavofulber, ficamos felizes em saber que tenha dado certo, se tiver outras dúvidas/dificuldades entre em
contato.

guistriquer
Enviado: 2020-05-21 16:34:13

/
Eu tenho um arduino MEGA e um arduino Uno, quero deixar o uno com bootloader ativado, quais conexções devo
usar para ligar o Uno no MEGA nesse caso?

Francois Resposta Oficial


Enviado: 2020-05-21 17:44:27
 guistriquer

Você quer gravar usar a placa Mega para gravar o bootloader na placa Uno? A base do procedimento é igual:
grave o programa "ArduinoISP" na placa gravadora; conecte os sinais de SPI (SCK <> SCK, MISO <> MISO, MOSI
<> MOSI), a alimentação (5V e GND) e o pino de reset (D10 da gravadora no Reset da gravada); selecione o
modelo da placa que será gravada; selecione o programador e execute a gravação do bootloader pela IDE.

guistriquer
Enviado: 2020-05-21 17:48:27
 guistriquer

Pergunta... um tanto idiota (sou leigo). o bootloader deve estar ativado na placa gravadora?

guistriquer
Enviado: 2020-05-21 17:54:45
 guistriquer

desculpe minha ignorancia, não querendo abusar da sua boa vontade mas ja abusando... pode me dizer quais são
as conexões SPI? onde ligo elas? qual é o pino reset do Uno?

Francois Resposta Oficial


Enviado: 2020-05-21 17:55:04
 guistriquer

O bootloader é o firmware que permite que você grave os códigos na placa pela porta USB. Ele não precisa
estar gravado na placa gravadora, pois o importante é que a placa esteja com um programa nela que permita o
carregamento do bootloader na placa gravada. Todavia, o bootloader na gravadora te ajuda para programá-la
com o código "ArduinoISP".
Lembrando que as placas Arduino são vendidas já com o bootloader, pois são gravadas pela porta USB.

guistriquer
Enviado: 2020-05-21 17:55:46
 guistriquer

desculpe minha ignorancia, não querendo abusar da sua boa vontade mas ja abusando... pode me dizer quais são
as conexões SPI? onde ligo elas? qual é o pino reset do Uno?

Francois Resposta Oficial


Enviado: 2020-05-21 18:07:41
 guistriquer

Segue um link sobre a conexão SPI nos Arduinos: [Link]


Na segunda tabela é possível observar quais são os pinos associados aos diferentes modelos. Por exemplo, o
pino 51 da placa Mega é o sinal MOSI. A partir daí, você consegue fazer as conexões de SPI entre as duas
placas (SCK <> SCK, MISO <> MISO, MOSI <> MOSI). Já para o reset, o pino correspondente está indicado com o
texto RESET ou RST ao lado dele.

[Link]
Enviado: 2020-04-25 11:19:35

Cara valeu fico muito grato, o meu queimo apenas a entrada usb agora estou programando ele só assim. Mais nao
deu com o programador arduinoisp ai mudei para o [Link] e deu tudo certo.
/
Giovanni5 Resposta Oficial
Enviado: 2020-04-27 08:31:11
 [Link]

A gravação de código por bootloader é uma opção para estes casos, porém é necessário usar uma placa da
plataforma Arduino dedicada para isso. Uma solução mais indicada para esses casos é a utilização do módulo
FTDI ([Link] que foi desenvolvido justamente para converter a
comunicação USB do computador em Serial UART das placas Arduino, sendo muito recomendado para a gravação de
código destas placas.

odiloluckemeier
Enviado: 2019-09-04 13:24:28

Eu tenho dois arduino leonardo, um com bootloader e outro sem, eu consigo fz bootloader no outro usando o
mesmo modelo de arduino pq daí vou usar um leonardo pra fz bootloader em outro leonardo ???

Giovanni5 Resposta Oficial


Enviado: 2019-09-04 13:36:16
 odiloluckemeier

Sim, é possível gravar o bootloader de uma placa Leonardo para outra placa Leonardo, porém é obrigatório o
uso dos pinos ICSP. Caso você tenha dúvidas sobre como realizar essa gravação, você pode utilizar a
discussão a seguir como base para esse procedimento, [Link] .
Caso tenha dúvidas sobre a montagem, um dos comentários possui, em anexo, uma imagem demonstrando como fazer
a conexão corretamente.

Você também pode gostar