Table des matières:

Comment programmer un AVR (arduino) avec un autre Arduino : 7 étapes
Comment programmer un AVR (arduino) avec un autre Arduino : 7 étapes

Vidéo: Comment programmer un AVR (arduino) avec un autre Arduino : 7 étapes

Vidéo: Comment programmer un AVR (arduino) avec un autre Arduino : 7 étapes
Vidéo: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Novembre
Anonim
Comment programmer un AVR (arduino) avec un autre Arduino
Comment programmer un AVR (arduino) avec un autre Arduino
Comment programmer un AVR (arduino) avec un autre Arduino
Comment programmer un AVR (arduino) avec un autre Arduino
Comment programmer un AVR (arduino) avec un autre Arduino
Comment programmer un AVR (arduino) avec un autre Arduino

Cette instructables est utile si:

* vous avez votre arduino avec atmega168 et vous avez acheté un atmega328 dans votre magasin d'électronique local. Il n'a pas de chargeur de démarrage arduino * vous souhaitez créer un projet qui n'utilise pas arduino - juste une puce AVR ordinaire (comme USBTinyISP) - vous avez un attiny2313/attiny48 propre, etc. sur lequel vous souhaitez graver le firmware. Normalement, vous devriez avoir un FAI (In System Programmer) comme USBTinyISP pour programmer votre nouvelle puce. Ayant l'arduino, vous pouvez lui apprendre à être programmeur grâce à un excellent travail effectué par Randall Bohn. Il a créé Mega-ISP - un sketch arduino qui fonctionne comme un programmeur.

Étape 1: De quoi avez-vous besoin ?

De quoi avez-vous besoin ?
De quoi avez-vous besoin ?

* un Arduino fonctionnel (ou un clone - j'utilise le BBB - BareBonesBoard et un RBBB - RealBareBonesBoard de ModernDevices) * une puce que vous souhaitez programmer (testée avec atmega8, atmega168, atmega368, attiny2313, attiny13) * une maquette ou une carte avec en-tête ISP * 3 leds + 3 résistances * fils de maquette

Étape 2: fabrication du programmeur Mega-isp sur une planche à pain

Faire le programmeur Mega-isp sur une planche à pain
Faire le programmeur Mega-isp sur une planche à pain
Faire le programmeur Mega-isp sur une planche à pain
Faire le programmeur Mega-isp sur une planche à pain
Faire le programmeur Mega-isp sur une planche à pain
Faire le programmeur Mega-isp sur une planche à pain

Il existe deux façons de connecter votre Arduino pour programmer une puce.

Vous pouvez brancher votre puce avr sur une planche à pain et connecter 5v et GND aux broches respectives (vérifiez la fiche technique!) + une résistance de rappel pour réinitialiser et câbler les broches de votre arduino à la puce. Ce sont les lignes sur Arduino et leur fonction 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Ou vous pouvez créer un en-tête ISP 2x3pin que vous pouvez brancher sur une carte qui en fournit une (une autre carte arduino). Le brochage de l'en-tête ISP est sur la troisième image Il y a 3 leds pour indiquer l'état du programmeur. broche 9 - led bleue - c'est le battement de coeur du programmeur. broche 8 - led rouge - indique une erreur broche 7 - led verte - indique que la programmation est en cours (j'étais paresseux donc je ne correspondais pas aux couleurs de ma configuration) Voici les dessins réalisés en Fritzing Vous pouvez aussi faire un Bouclier MEGA-isp. Yaroslav Osadchyy a conçu le bouclier en aigle. Vous pouvez obtenir les fichiers eagle sur son site:

Étape 3: Téléchargement du croquis

Téléchargement du croquis
Téléchargement du croquis

Téléchargez le croquis à partir du code google mega-isp. (avrisp.03.zip au moment de la rédaction). Déballez-le et exécutez arduino ide et ouvrez avrisp.pde. Téléchargez-le sur votre carte arduino. La LED Heartbeat devrait commencer à battre.

Étape 4: Utilisation avec Avrdude

Utilisation avec Avrdude
Utilisation avec Avrdude

Pour l'utiliser avec avrdude (et toutes les interfaces graphiques qui l'utilisent), vous devez sélectionner le programmeur 'avrisp'. le débit le plus sûr est 19200.

Pour tester votre nouvel atmega168 à partir de la ligne de commande, essayez: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 est le port auquel arduino est connecté à ma machine Linux (le vôtre peut être com5). Cela peut être vérifié dans arduino IDE dans Outils -> Port série. Vous devriez obtenir: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: périphérique AVR initialisé et prêt à accepter les instructions Lecture | ##################################################### | 100 % 0,13 s avrdude: signature de l'appareil = 0x1e9406 avrdude: safemode: fusibles OK avrdude done. Merci. Cela signifie que tout va bien. Si vous obtenez des erreurs, vérifiez la dernière étape.

Étape 5: gravure du micrologiciel USBtinyISP sur un Attiny2313

Gravure du micrologiciel USBtinyISP sur un Attiny2313
Gravure du micrologiciel USBtinyISP sur un Attiny2313
Gravure du micrologiciel USBtinyISP sur un Attiny2313
Gravure du micrologiciel USBtinyISP sur un Attiny2313
Gravure du micrologiciel USBtinyISP sur un Attiny2313
Gravure du micrologiciel USBtinyISP sur un Attiny2313

L'USBTinyISP est un excellent programmeur de LadyAda qui est vraiment bon marché - 22$. J'avais un attiny2313 de rechange et quelques pièces alors j'ai décidé d'en fabriquer un moi-même. Si vous n'avez aucune expérience dans la fabrication de PCB, je vous conseille d'acheter le kit car il est de meilleure qualité que ce que vous pouvez fabriquer vous-même:). Achetez au moins le PCB si vous voulez en construire un. Vous pouvez l'obtenir auprès d'Adafruit. Connectez l'ATtiny2313Dans la dernière image, vous pouvez voir l'attiny2313 avec les broches utilisées pour l'ISP en rouge. L'image provient du tutoriel avr de LadyAda. Gravure du firmware: Déballez le firmware USBTinyISP. Allez dans le répertoire spi et exécutez $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 pour vérifier si tout va bien avec la puce. Réglez maintenant les fusibles: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Maintenant, vous devez attacher l'oscillateur externe 12mhz à la puce. Et gravez le firmware: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. Votre attiny2313 a le firmware USBTinyISP.

Étape 6: gravure du chargeur de démarrage Arduino

Graver le chargeur de démarrage Arduino
Graver le chargeur de démarrage Arduino
Graver le chargeur de démarrage Arduino
Graver le chargeur de démarrage Arduino
Graver le chargeur de démarrage Arduino
Graver le chargeur de démarrage Arduino

ConnexionJ'ai un peu triché car j'ai utilisé un RBBB pour simplifier les connexions. Le schéma est sur la photo #2. Si vous utilisez 2 arduinos, utilisez l'image n°3 et connectez la broche ISP à l'en-tête ICSP 2x3 sur le deuxième arduino (esclave). Connectez uniquement l'alimentation USB à la première carte. La manière de l'interface graphique C'est un peu délicat car vous ne pouvez pas simplement utiliser Outils-> Graver le chargeur de démarrage -> avec AVR ISP car la vitesse par défaut est trop grande pour mega-ISP. Recherchez avrdude.conf fourni avec arduino IDE (dans arduino/hardware/tools/avrdude.conf) et modifiez le taux de limitation pour le programmeur avrisp de 115200 à 19200 (autour de la ligne 312) Recherchez et modifiez l'identifiant du programmeur avrdude.conf = "avrisp"; desc = "Atmel AVR ISP"; débit en bauds = 115200; # par défaut est 115200 type = stk500;; à: id du programmeur = "avrisp"; desc = "Atmel AVR ISP"; débit en bauds = 19200; # par défaut est 115200 type = stk500;; Maintenant, vous pouvez utiliser Outils -> Graver Bootloader -> avec AVR ISP (après avoir sélectionné la carte appropriée dans le menu Outils)Commanline Vous pouvez également utiliser la ligne de commande: Modifier arduino/hardware/bootloaders/atmega/Makefile et modifier ISPTOOL/PORT /SPEED to: # entrez les paramètres de l'outil avrdude isp ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 non, vous pouvez écrire $ make diecimila_isp pour graver les fusibles et le chargeur de démarrage. Testez maintenant connectez votre nouvel arduino à l'usb et brûle le clin d'oeil !

Étape 7: Dépannage

Dépannage
Dépannage

Erreurs avrdude: avrdude: ser_open(): impossible d'ouvrir le périphérique "/dev/ttyUSB0": aucun fichier ou répertoire de ce type Vous avez spécifié le mauvais port (-P) ou votre arduino n'est pas connecté. vérifiez la connexion avrdude: Signature de l'appareil = 0x000000 avrdude: Yikes ! Signature de l'appareil non valide. Vérifiez les connexions et réessayez, ou utilisez -F pour annuler cette vérification. C'est une sorte d'erreur générale. Votre puce n'est pas reconnue. Vérifiez la connexion sur la carte (GND/5V connecté aux broches ?) Vous obtiendrez cette erreur lorsque votre puce est configurée pour utiliser un oscillateur externe et qu'elle ne fonctionne pas (il n'y en a pas ou elle n'oscille pas correctement - 22pf caps disparu ?)

Conseillé: