🛠 Convertir la Duemilanove en programmateur AVR (ArduinoISP) pour graver des puces nues

Arduino Duemilanove — Ficha de placa · avance · Schéma : IMG-duemilanove-avance-1-duemilanove-programmateur-avrisp.svg — Arduino Duemilanove reliée par son connecteur ICSP 2×3 à une ATmega328P sur plaque d'essai, six fils MOSI/MISO/SCK/VCC/GND/RESET étiquetés, IDE affichant le programmeur « Arduino as ISP », broche 10 en RESET du circuit cible annotée.

Objetivos

La Duemilanove posee un conector ICSP de 2×3 y el ATmega168/328 habla el mismo lenguaje que cualquier AVR: con el ejemplo ArduinoISP del core, la placa se convierte en un programador AVR-ISP serie. Vas a grabar un bootloader en un ATmega328P virgen para transformarlo en un clon autónomo de Uno/Duemilanove — el gran clásico de la producción de placas caseras, documentado en el tutorial oficial «Programmer».

Material

Código completo

1) Charger l'exemple : Fichier > Exemples > 11.ArduinoISP > ArduinoISP
   (sur les vieux IDE : Examples > ArduinoISP). Televerser sur la
   Duemilanove avec le bon processeur (328 : 57600 / 168 : 19200).
2) Cables cible (Duemilanove -> ATmega nu, boitier DIP-28) :
   MOSI = broche 11 -> broche 17 (PC4)
   MISO = broche 12 -> broche 18 (PC5)
   SCK  = broche 13 -> broche 19 (PC6)
   RESET= broche 10 -> broche 1 (avec pull-up 10k vers VCC)
   VCC  = 5V        -> broches 7 et 21 ; GND -> broches 8 et 22
3) IDE : Outils > Programmateur > "Arduino as ISP" (le vieux nom
   "Arduino as ISP (ATmega328)" selon les versions).
4) Graver les fusibles puis le bootloader :
   Outils > Graver les fusibles (optionnel, cf. valeurs ci-dessous)
   Outils > Graver la sequenceur de demarrage  (bootloader "Arduino on a Breadboard")
   puis televerser un Blink en choisissant "Arduino Duemilanove or
   Diecimila / ATmega328" comme carte et "Arduino as ISP" si besoin.

Valeurs de fusibles officielles (ArduinoCore-avr boards.txt) :
  ATmega328 : low=0xFF  high=0xDA  extended=0xFD  (lock bits 0x0F)
  ATmega168 : low=0xFF  high=0xDD  extended=0xF8
Ligne de commande equivalente :
  avrdude -c arduino -p m328p -P COM7 -b 19200 -U lfuse:r:-:h -U hfuse:r:-:h

Verificación esperada

«Grabar los fusibles» termina sin error «not responding»; la lectura de los fusibles devuelve low=0xFF, high=0xDA, extended=0xFD para un 328. Tras grabar el bootloader, un Blink cargado (placa Duemilanove/ATmega328) hace parpadear el LED del objetivo alimentado de forma autónoma — el chip virgen se ha convertido en una placa por derecho propio.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales