Mensagem

"Sonhar mais um sonho impossível, lutar quando é fácil ceder, vencer o inimigo invencível, negar quando a regra é vender."
Miguel de Cervantes.

"Os microprocessadores RISC funcionam a partir do princípio genial de se encarregar das coisas mais fáceis e deixar todas as partes difíceis para outras pessoas resolverem."
Douglas Adams.

Mostrando postagens com marcador Gravando Arduino. Mostrar todas as postagens
Mostrando postagens com marcador Gravando Arduino. Mostrar todas as postagens

Gravando o Bootloader do Arduino no ATmega328

Para substituir o ATmega do Arduino é necessário gravar nele o Boot loader. Isso é feito externamente com um gravador In-System (conectado no Arduino na barra de pinos ICSP). Nesse caso, é necessário o uso de um gravador. Caso se deseje utilizar o Arduino para gravar um ATmega isso também é possível (existem explicações na internet). Não é possível substituir o ATmega original do Arduino por outro que não contenha o chamado programa de Boot loader (ver explicação abaixo).

Boot loader é um pequeno programa escrito no final da memória de programa e serve para que o microcontrolador gerencie a gravação de sua memória. Para tal, é necessário uma interface de comunicação externa com o software de desenvolvimento. Isso é feito através da USART, por isso os pinos RX e TX do ATmega328 (pinos 0 e 1 no Arduino, respectivamente) são conectados ao conversor Serial/USB (da placa do Arduino) para comunicação com o computador. Obs.: é possível utilizar o conversor Serial/USB do Arduino para outra atividade, basta retirar o ATmega328 do soquete ou configurar os pinos 0 e 1 para serem entradas (alta impedância). Dessa forma, os pinos RX e TX do conversor podem ser acessados externamente (pinos 0 e 1).

Para gravar o Boot loader no ATmega328 é necessário seguir os seguintes passos (é necessário saber o que isso significa e ter um programa adequado para a gravação, ver marcador Gravação Arduino): 

1 - gravar os Fuses: 
   EXTENDED BYTE = 0xFD
   HIGH BYTE = 0xDE
   LOW BYTE = 0xFF 

2 - gravar a memória flash (programa de boot loader *.hex), encontrado, por exemplo, em:
C:\arduino-1.0.1\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.hex 
Válido para o Arduino UNO

3 - gravar os LOCK BITS (valor 0xCF)

Instalando o Arduino no Atmel Studio

É possível gravar e programar diretamente o Arduino no Atmel Studio. A configuração do Atmel Studio é uma tarefa árdua, com inúmeros passos, mas vale a pena poder gravar diretamente o Arduino sem depender de um programa externo, não  há a necessidade de procurar o arquivo *.hex, tudo é feito automaticamente.



Abaixo a forma simplificada e mais eficiente:
http://omarfrancisco.com/arduino-programing-using-atmel-studio-6-0/

Nestes dois vídeos um processo mais longo:
http://www.youtube.com/watch?v=F74khQnh9pM
http://www.youtube.com/watch?v=qEcWR5EUNdk

Como eu não sou expert no assunto, se precisares de ajuda será necessário consultar algum dos autores dos  posts supracitados.

COMO GRAVAR O ARDUINO SEM O SEU PROGRAMA

Quando se programa o Arduino muitas vezes se deseja gravar o hardware independentemente da sua IDE. Isto permite desenvolver projetos em programas profissionais e com mais recursos que a limitada IDE do Arduino.
Um bom programa para a gravação dos AVRs é o AVRdude, confiavel em muito utilizado. Para gravar o Arduino esse programa é empregado em conjunto com uma interface gráfica (inclusive pela IDE do Arduino).  Comecei utilizando o AVRdude-GUI, entretanto acabei encontrando o AVR8 Burn_O_Mat mais completo e facil de utilizar. Abaixo o video explicativo e o programa.

Obs.: para o Arduino Uno e/ou para a versão 1.0 (ou superior) do programa do Arduino, deve-se selecionar em <Programmer> arduino (Arduino). Nesse caso, deve-se selecionar os arquivos avrdude.exe e avrdude.conf, respectivamente, da pasta onde foi descompatado o programa do Arduino, por exemplo: C:\arduino-1.0.1\hardware\tools\avr\bin\avrdude.exe e C:\arduino-1.0.1\hardware\tools\avr\etc\avrdude.conf



Como Gravar um Arquivo *.hex no Arduino (AVRDUDE - GUI)


Neste tutorial é explicado como empregar o programa AVRdude para gravar qualquer programa compilado (*.hex) no Arduino. Isto permite o desenvolvimento de programas em outras IDEs que não a do Arduino. Neste exemplo o AVRStudio foi empregado.
As vantagens de utilizar outras IDEs na programação do Arduino são as facilidades que estas dispõem, tais como: debug do programa e otimização.

Arquivos de programa
Detalhes + Vídeo