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

Dos leds ao Arduino, ESP8266 e mais

Aprenda eletrônica com as experiências de um geek veterano dos bits e bytes que nunca tinha soldado um led na vida, e resolveu narrar para você o que descobre enquanto explora esse universo – a partir da eletrônica básica, até chegar aos circuitos modernos.

Por Augusto Campos, autor do BR-Linux e Efetividade.net.

Recomendados

Livro recomendado


Artigos já disponíveis

Comunidade Arduino

O BR-Arduino é integrante da comunidade internacional de entusiastas do Arduino, mas não tem relação com os criadores e distribuidores do produto, nem com os detentores das marcas registradas.

Livros recomendados