Como fazer upload de programas para um ATmega na protoboard usando um Arduino
O sketch ArduinoISP vem incluído na IDE do Arduino, e pode ser usado para gravar programas no seu standalone ou montagem com ATmega.
Você pode usar um Arduino como intermediário para enviar programas para o seu ATmega na protoboard, e é mais simples do que parece.
Já vimos anteriormente como identificar a configuração do ATmega, como instalar bootloader e como fazer upload de programas por meio de um conversor USB–Serial. Agora chegou a vez de unir técnicas que vimos em 2 desses artigos anteriores para explorar a capacidade de um sketch muito especial: o ArduinoISP, criado por Randall Bohn.
O ArduinoISP vem na coleção de exemplos instalada junto com a IDE do Arduino. Abra-o no menu File | Examples | ArduinoISP, e transfira-o para o seu Arduino Uno do mesmo modo como transferiria qualquer outro programa para ele.
A conexão física é simples, e já vimos anteriormente (no artigo sobre como identificar a configuração do ATmega) uma praticamente igual, pois também fazia uso do protocolo SPI. Basta conectar, pino a pino:
Pino no Arduino
Pino no ATmega | |
10 | RST (1) |
11 (MOSI) | 11 (17) |
12 (MISO) | 12 (18) |
13 (SCK) | 13 (19) |
5V | VCC (7) e AVCC (20) |
GND | GND (8 e 22) |
Os números entre parênteses indicam o pino físico do ATmega, que é aquele marcado em letras brancas sobre o corpo do chip, que você pode ver no diagrama de pinagem alguns parágrafos acima.
Como fazer upload de programas
Com o sketch ArduinoISP já transferido para o seu Uno, e as conexões físicas realizadas como descrito acima, é hora de configurar a IDE, assim:
- em Tools / Programmer, selecione “Arduino as ISP”
- em Tools / Board, selecione a placa que corresponde à configuração do seu ATmega na protoboard (se ele estiver com a configuração que eu descrevi no artigo sobre bootloaders, será o “Lilypad Arduino w/ ATmega328”)
- em Tools / Port mantenha selecionado a porta à qual está conectado o seu Uno
Agora abra no editor o programa que deseja enviar para o seu ATmega na protoboard, e use um pequeno truque: ao invés de simplesmente pressionar o botão de upload na janela da IDE, mantenha apertada a tecla Shift ao pressioná-lo.
Você verá que, enquanto o Shift estiver pressionado, a tradicional função “Upload” vai se transformar em “Upload using Programmer”:
E, neste caso, o “Upload using Programmer” significa: “envie o código para o meu ATmega externo, usando o Uno como intermediário”.
É só isso. Configure tudo corretamente, e dê um shift+click onde normalmente daria um click. Seu programa será compilado e instalado no ATmega externo, com uma ajuda importante do Uno que fica de intermediário ;-)
Minha preferência pessoal é usar a alternativa do artigo anterior, fazendo o upload de programas por meio de um conversor USB–serial como o da foto acima, mas acredito que seja apenas uma questão de conveniência: ele está permanentemente configurado, independe de fazer algum upload prévio, e não exige procedimento especial na operação da IDE.
Por outro lado, para usar o procedimento que eu prefiro é necessário possuir esse acessório, e é bom dispor de alternativas que dispensem essa dependência e a substituam por outra mais simples de satisfazer ;-)
Comentar