- Composants requis pour programmer ATtiny85 via USB
- CI du microcontrôleur ATtiny85 - Introduction
- Flashing Boot-loader sur ATtiny85 en utilisant Arduino Uno
- Schéma de circuit pour ATtiny Programmer
- Installation des pilotes Digispark
- Configuration de l'IDE Arduino pour programmer ATttiny85
La famille ATtiny est une série de l'un des plus petits microcontrôleurs du marché AVR. Ces microcontrôleurs sont capables d'utiliser de nombreuses bibliothèques disponibles sur la plate-forme Arduino. La puce de microcontrôleur ATtiny85 est un microcontrôleur AVR 8 broches, 8 bits. Sa petite taille et sa faible consommation d'énergie en font un excellent choix pour les projets portables avec de petites empreintes et de faibles besoins en énergie. Mais obtenir votre code sur la puce peut être un peu un défi car il n'a pas d'interface USB comme les cartes de microcontrôleur.
Dans notre tutoriel précédent, nous avons programmé l'ATtiny85 en utilisant Arduino Uno. Mais connecter Attiny85 à Arduino et utiliser Arduino en tant que FAI peut être difficile et prendre du temps. Donc, dans ce tutoriel, nous allons construire une carte de programmation ATtiny85, afin que nous puissions directement la brancher et la programmer comme d'autres cartes de microcontrôleur.
Composants requis pour programmer ATtiny85 via USB
- Arduino UNO (Uniquement pour la première fois lors du téléchargement du chargeur de démarrage)
- ATtiny85 IC
- Prise USB de type A mâle
- 3 résistances (2 × 47Ω & 1 × 1kΩ)
- 3 diodes (2 × diode Zener et 1 × diode IN5819)
- Base IC à 8 broches
- Planche à pain
- Fils de cavalier
CI du microcontrôleur ATtiny85 - Introduction
ATtiny85 d'Atmel est un microcontrôleur 8 bits haute performance et faible consommation basé sur l' architecture RISC avancée. Cette puce de microcontrôleur comprend une mémoire flash ISP de 8 Ko, une EEPROM de 512 Go, une SRAM de 512 octets, 6 lignes d'E / S à usage général, 32 registres de travail à usage général, une minuterie / compteur 8 bits avec modes de comparaison, une haute vitesse 8 bits minuterie / compteur, USI, interruptions internes et externes, convertisseur A / N 4 canaux 10 bits, minuterie de surveillance programmable avec oscillateur interne, trois modes d'économie d'énergie sélectionnables par logiciel et debugWIRE pour le débogage sur puce. Le brochage ATtiny85 est donné ci-dessous:
La plupart des broches d'E / S de la puce ont plus d'une fonction. La description de la broche ATtiny85 pour chaque broche est donnée dans le tableau ci-dessous:
N ° de broche |
Nom de la broche |
Description des broches |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Interruption de changement de broche 0, Source5 RÉINITIALISER: réinitialiser la broche ADC0: canal d'entrée ADC 0 dW: debug WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Interruption de changement de broche 0, Source3 XTAL1: broche 1 de l'oscillateur à cristal CLKI: entrée d'horloge externe ADC3: canal d'entrée ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Interruption de changement de broche 0, source 4 XTAL2: broche 2 de l'oscillateur à cristal CLKO: sortie d'horloge système OC1B: Timer / Counter1 Compare Match B Output ADC2: canal d'entrée ADC 2 |
4 |
GND |
Broche de masse |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: sortie de données maître SPI / entrée de données esclave DI: entrée de données USI (mode trois fils) SDA: entrée de données USI (mode deux fils) AIN0: comparateur analogique, entrée positive OC0A: Timer / Counter0 Comparer la sortie Match A AREF: référence analogique externe PCINT0: Interruption de changement de broche 0, source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: entrée de données maître SPI / sortie de données esclave DO: Sortie de données USI (mode trois fils) AIN1: comparateur analogique, entrée négative OC0B: Timer / Counter0 Comparer la sortie Match B OC1A: Timer / Counter1 Compare Match A Output PCINT1: Interruption de changement de broche 0, source 1 |
sept |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: entrée d'horloge série USCK: Horloge USI (mode trois fils) SCL: horloge USI (mode deux fils) ADC1: canal d'entrée ADC 1 T0: Minuterie / Compteur 0 Source d'horloge INT0: Entrée d'interruption externe 0 PCINT2: Interruption de changement de broche 0, source 2 |
8 |
VCC |
Broche de tension d'alimentation |
Flashing Boot-loader sur ATtiny85 en utilisant Arduino Uno
Pour programmer l'ATtiny85 sans Arduino, nous devrions d'abord y télécharger un chargeur de démarrage à l'aide d'une carte Arduino UNO, il s'agit d'un processus unique et une fois cela fait, nous n'aurons plus besoin de la carte UNO. Boot-loader est un programme spécial qui s'exécute dans le microcontrôleur qui doit être programmé. L'un des moyens les plus pratiques de charger les données de votre programme sur le microcontrôleur consiste à utiliser un chargeur de démarrage. Le chargeur de démarrage se trouve sur le MCU et exécute les instructions entrantes, puis écrit de nouvelles informations de programme dans la mémoire du microcontrôleur. Flasher un chargeur de démarrage sur un microcontrôleur supprime le besoin de matériel externe spécial (cartes de programmation) pour programmer le microcontrôleur et vous pourrez le programmer directement à l'aide d'une connexion USB. Le Digispark ATtiny85board exécute le chargeur de démarrage «micronucleus tiny85», initialement écrit par Bluebie. Le boot-loader est le code préprogrammé sur Digispark et lui permet d'agir comme un périphérique USB afin qu'il puisse être programmé par l'IDE Arduino. Nous allons également flasher le même chargeur de démarrage digispark attiny85 sur ATtiny85.
Un guide étape par étape pour flasher le chargeur de démarrage sur ATtiny85 en utilisant Arduino Uno et Arduino IDE est donné ci-dessous:
Étape 1: Configuration d'Arduino Uno en tant que FAI:
Étant donné que l'ATtiny85 n'est qu'un microcontrôleur, il nécessite la programmation d'un FAI (Programmation In-System). Donc, pour programmer l'ATtiny85, nous devons d'abord configurer Arduino Uno en tant que FAI pour agir en tant que programmeur pour l'ATtiny85. Pour cela, connectez l'Arduino Uno à l'ordinateur portable et ouvrez l'IDE Arduino. Après cela, accédez à Fichier> Exemple> ArduinoISP et téléchargez le code Arduino ISP.
Étape 2: Schéma de circuit pour le chargeur de démarrage clignotant sur ATtiny85:
Le schéma complet pour Flashing Boot-loader sur ATtiny85 est donné ci-dessous:
Un condensateur de 10 µf est connecté entre la broche Reset et GND d'Arduino. Les connexions complètes sont données dans le tableau ci-dessous:
ATtiny85 Pin |
Broche Arduino Uno |
Vcc |
5V |
GND |
GND |
Broche 2 |
13 |
Broche 1 |
12 |
Broche 0 |
11 |
Réinitialiser |
dix |
Connectez maintenant l'Arduino Uno à l'ordinateur portable et ouvrez Arduino IDE. Trouvez le port COM auquel l'Uno est connecté. Dans mon cas, c'est COM5.
Après cela, téléchargez les fichiers du chargeur de démarrage ATtiny85 à partir du lien donné. Ouvrez " Burn_AT85_bootloader.bat " et modifiez le numéro de port COM "PCOM5" avec le numéro de port COM auquel votre Uno est connecté. Enregistrez les modifications avant de quitter.
Déplacez maintenant les fichiers modifiés « Burn_AT85_bootloader.bat » et « ATtiny85.hex » dans le dossier racine de l'IDE Arduino (C: \ Program Files (x86) Arduino).
Après cela, faites un clic droit sur " Burn_AT85_bootloader.bat " et sélectionnez "Exécuter en tant qu'administrateur". Il faut environ 5 à 6 secondes pour flasher le chargeur de démarrage. Si tout s'est bien passé, vous devriez recevoir ce message "AVRdude terminé. Merci. Appuyez sur n'importe quelle touche pour continuer…".
Avec cela, le chargeur de démarrage est installé avec succès sur la puce ATtiny85. Il est maintenant temps de connecter l'USB à ATtiny85 afin que nous puissions le programmer directement. Le schéma de circuit pour la programmation de ATtiny85 via USB est donné ci-dessous:
Schéma de circuit pour ATtiny Programmer
Le schéma est tiré du schéma de la carte Digispark ATtiny85, mais comme nous visons à construire un programmeur pour ATtiny85, nous ne connectons que la prise USB mâle avec ATtiny85.
Le R3 est une résistance pull-up qui est connectée entre les broches Vcc et PB3 de l'IC tandis que les diodes Zener (D1-D2) sont ajoutées pour une protection totale de l'interface USB. Après avoir soudé tous les composants sur la carte de performance, cela ressemblera à quelque chose comme ci-dessous:
Installation des pilotes Digispark
Pour programmer l'ATtiny85 en utilisant USB, vous devez avoir les pilotes Digispark installés sur votre ordinateur portable, si vous ne les avez pas, vous pouvez le télécharger en utilisant le lien ci-dessus. Ensuite, extrayez le fichier zip et double-cliquez sur l' application « DPinst64.exe » pour installer les pilotes.
Une fois les pilotes installés avec succès, branchez votre carte ATtiny85 sur l'ordinateur portable. Maintenant, allez dans le Gestionnaire de périphériques sur votre Windows et le périphérique ATtiny85 sera répertorié sous «périphériques libusb-win32» en tant que «Digispark Bootloader». Si vous ne trouvez pas «périphériques libusb-win32» dans le gestionnaire de périphériques, allez dans Affichage et cliquez sur «Afficher les périphériques cachés».
Configuration de l'IDE Arduino pour programmer ATttiny85
Pour programmer la carte ATtiny85 avec Arduino IDE, nous devons d'abord ajouter le support de la carte Digispark à Arduino IDE. Pour cela, allez dans Fichier> Préférences et ajoutez le lien ci-dessous dans les URL du gestionnaire de tableaux supplémentaires et cliquez sur 'OK'.
Après cela, allez dans Outils> Carte > Gestionnaire de carte et recherchez 'Digistump AVR' et installez la dernière version.
Après l'avoir installé, vous pourrez maintenant voir une nouvelle entrée dans le menu du tableau intitulée «Digispark».
Maintenant, allez dans fichier> Exemples> Bases et ouvrez l'exemple Blink.
Changez le numéro de broche de LED_BUILTIN à 0.
Revenez maintenant à Tools -> Board et sélectionnez la carte « Digispark (Default - 16mhz) ». Cliquez ensuite sur le bouton de téléchargement dans Arduino IDE.
Remarque: connectez la carte ATtiny85 à l'ordinateur, uniquement lorsque l'IDE Arduino affiche un message indiquant «Plugin device now».
Une fois le code téléchargé, la LED connectée à ATtiny85 devrait commencer à clignoter.
C'est ainsi que vous pouvez créer votre propre carte de programmation Arduino ATtiny85. Une vidéo de travail de la même chose est donnée ci-dessous. Si vous avez des questions, laissez-les dans la section des commentaires. Pour toute autre question technique, vous pouvez également lancer une discussion sur nos forums.