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):
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)