Table des matières:
- Étape 1: De quoi avez-vous besoin ?
- Étape 2: fabrication du programmeur Mega-isp sur une planche à pain
- Étape 3: Téléchargement du croquis
- Étape 4: Utilisation avec Avrdude
- Étape 5: gravure du micrologiciel USBtinyISP sur un Attiny2313
- Étape 6: gravure du chargeur de démarrage Arduino
- Étape 7: Dépannage
Vidéo: Comment programmer un AVR (arduino) avec un autre Arduino : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:11
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 ?
* 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
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é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
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
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
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
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é:
Encore une autre instruction sur l'utilisation du DIYMall RFID-RC522 et du Nokia LCD5110 avec un Arduino : 8 étapes (avec photos)
Encore un autre instructable sur l'utilisation du DIYMall RFID-RC522 et du Nokia LCD5110 avec un Arduino : Pourquoi ai-je ressenti le besoin de créer un autre Instructable pour le DIYMall RFID-RC522 et le Nokia LCD5110 ? Eh bien, pour vous dire la vérité, je travaillais sur une preuve de concept l'année dernière en utilisant ces deux appareils et en quelque sorte "mal placé"
Comment programmer une carte AVR à l'aide d'une carte Arduino : 6 étapes
Comment programmer une carte AVR à l'aide d'une carte Arduino : Avez-vous une carte de microcontrôleur AVR qui traîne ? Est-ce compliqué de le programmer ? Eh bien, vous êtes au bon endroit. Ici, je vais vous montrer comment programmer une carte de microcontrôleur Atmega8a en utilisant une carte Arduino Uno en tant que programmeur. Alors sans plus
Comment ajouter du fil EL à un manteau ou à un autre vêtement : 10 étapes (avec photos)
Comment ajouter du fil EL à un manteau ou à un autre vêtement : En tant que costumière éclairée, je reçois beaucoup de questions de la part de personnes qui veulent savoir comment confectionner leurs propres costumes en fil EL. Je n'ai pas le temps d'aider tout le monde individuellement, alors j'ai pensé que je consoliderais mes conseils en un seul instructable. Espérons que
Comment émuler une télécommande TV ou autre avec Arduino Irlib : 3 étapes (avec photos)
Comment émuler une télécommande TV ou autre avec Arduino Irlib: IntroductionSalut à tous et bienvenue dans mon premier Instructable.Aujourd'hui, nous allons apprendre, comme le titre l'indique, à émuler une télécommande TV ou quelque chose de similaire qui fonctionne avec les signaux infrarouges en utilisant Arduino (n'importe quel modèle) .Le problème était : Comment puis-je transmettre des codes à un
Comment faire votre propre chargeur de voiture USB pour n'importe quel iPod ou autre appareil qui se charge via USB : 10 étapes (avec photos)
Comment créer votre propre chargeur de voiture USB pour tout iPod ou autre appareil qui se charge via USB La partie la plus importante de ce projet est de s'assurer que la sortie de votre adaptateur de voiture choisi est pari