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 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.
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:
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 interligadosNota: Caso não funcione no Arduino UNO, adicione um Capacitor de 10uF entre o Reset e o Ground.
· 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²: 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