[TUTORIEL] Programmer un ATtiny84 avec Arduino

Informations et questions sur les composants tiers de la boutique (émetteur/récepteur RF, capteurs...)

[TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude Laetitia » Lun 22 Juil 2013 10:49

Bonjour,

Aujourd'hui nous allons apprendre à programmer un ATtiny84 avec un Arduino Uno.
L'Arduino Uno est capable d'agir en programmateur, et vous pouvez vous en servir pour uploader des sketchs sur des microcontrôleurs Atmel, qu'il s'agisse d'un ATmega comme celui présent sur votre carte ou d'un ATtiny. J'ai porté mon choix sur l'ATtiny84 puisque c'est un composant populaire dans le monde du DIY et que nous allons bientôt le mettre en boutique ;)

- PRÉPARATION DE L'ARDUINO -

• Ouvrir l’IDE Arduino
• Sélectionner le port connecté à l’Arduino : Tools > Serial Port > COMxx
• Sélectionner le type de carte Arduino : Tools > Board > Arduino Uno
• Sélectionner le programmateur : Tools > Programmer > AVR ISP
• Uploader le sketch ArduinoISP : File > Examples > ArduinoISP

Votre Arduino est désormais prêt à programmer un autre microcontrôleur !
Le sketch ArduinoISP permet également de brancher trois LEDs : une sur la pin D9 (ici elle est rouge), dont le "heartbeat" témoignera de la mise en route de l'ISP sur l'Arduino ; une seconde sur la pin D8 (jaune), qui s'allumera en cas d'erreur ; et enfin une sur la pin D7 (verte), qui clignote au passage des données vers le composant programmé. Elles sont optionnelles mais j'ai choisi de les intégrer à ce tutoriel car elles permettent d'avoir un visuel sur ce qui se passe.
Passons maintenant au montage :

- MATÉRIEL -

- Arduino Uno (x1)
- ATtiny84 (x1)

Facultatif (témoins de fonctionnement de l'ISP) :
- LEDs 3mm (x3)
- Résistances 150 Ohms (x3)

- SCHÉMA DU MONTAGE -

Schéma_ISP.png
Schéma_ISP.png (48.1 Kio) Vu 3906 fois

- UPLOAD SUR L'ATTINY -

Il nous faut tout d'abord télécharger les fichiers qui vont permettre le dialogue entre Arduino et ATtiny :

• Fermez l'IDE Arduino
• Créez un nouveau dossier appellé "tiny" dans votre dossier "hardware" Arduino (C:\Documents and Settings\NomUtilisateur\Mes documents\Arduino\hardware\tiny)
• Téléchargez le dossier Arduino-Tiny (faites attention de toujours avoir la dernière version)
• Copiez-collez son contenu dans le dossier "tiny"
• Si vous savez exactement ce que vous voulez, copiez-collez ce qui vous intéresse dans le fichier "Prospective Boards.txt" dans un nouveau fichier texte "boards.txt" (C:\Documents and Settings\NomUtilisateur\Mes documents\Arduino\hardware\tiny\boards.txt), le cas échéant vous pouvez simplement renommer le fichier en "boards.txt"
• Enregistrez, fermez, et redémarrez votre IDE Arduino

Vous êtes désormais capable de communiquer avec un ATtiny via un Arduino, il n'y a plus qu'à se lancer !

• Sélectionner le programmateur : Tools > Programmer > Arduino as ISP
• Sélectionner la carte destinataire : Tools > Board > ATtiny84 @ 1 MHz (internal oscillator; BOD disabled)
• Modifier le sketch Blink pour que la LED soit sur la pin 0 : Examples > 01. Basics > Blink (ou refaites-le vous-mêmes ;) )
• Uploadez le sketch modifié, le message suivant apparaît à la fin de l'upload : avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny84, ne pas s'en soucier...

:!: Note : au moment du choix de la carte, ne sélectionnez pas Tools > Board > ATtiny84 @ 16 MHz (external oscillator; 4.3V BOD) si vous n'avez pas de quartz connecté à l'ATtiny, vous ne pourrez pas vous en servir jusqu'à ce que ce soit le cas :o

Il ne reste plus qu'à vérifier que l'upload s'est bien passé, pour cela nous nous servirons de l'Arduino juste pour alimenter l'ATtiny, et brancherons la LED sur la pin voulue :

Schéma_test.png
Schéma_test.png (26.76 Kio) Vu 3906 fois

Pour info, le brochage de l'ATtiny tel que compris par l'IDE Arduino :

Pinout_ATtiny84_simple.png
Pinout_ATtiny84_simple.png (23.09 Kio) Vu 3906 fois

Pour plus d'infos sur le fonctionnement de l'ATtiny84, se référer à sa datasheet.

J'espère que ce petit tutoriel vous aura plu, bonne bidouille en attendant le prochain !
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse

Re: [TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude Philippe Martorell » Dim 4 Aoû 2013 19:16

Merci pour le boulot !

Mais bien sûr, j'ai quelques questions;

* Perso, par défaut, le bon répertoire chez moi (Xp, IDE 1.0.5) est "C:\Documents and Settings\philippe\Mes documents\Arduino\hardware\tiny", "philippe" étant le nom d'utilisateur. Ca n'a pas beaucoup de liens avec ; "C:\Projects\Arduino\hardware\tiny)". Machine en mono-utilisateur ? Autre Windows ? Et j'imagine que pour mac et linux, c'est encore autre chose.

* Je ne comprends pas très bien l'intérêt de nommer le fichier de config "Prospective Boards.txt" dans l'archive alors que c'est "Board.txt" qui marche.

* J'ai eu l'occasion de jouer avec des 85, et j'ai été un peu déçu. C'est petit, ok, je m'y attendais plus ou moins mais pas autant. Par contre, au niveau de l'oscillateur interne, la précision supérieure à 10 % ( plus grande que ) ne permet pas des trucs comme un chronométrage ou une transmission série. J'ai vu qu'il y avais un étalonnage pour les 84. Est-ce que la précision est meilleure qu'avec les 85 ?
Philippe Martorell
 
Messages: 20
Inscription: Ven 14 Jan 2011 09:28

Re: [TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude caco74 » Dim 4 Aoû 2013 23:12

Peut etre un semblant de reponse avec ce lien.

http://samuel.goutenoir.com/wiki/index. ... rduino_Uno

Regarder les autres pages avec des explications sur les liaisons serie , I2C et UHF avec un atiny.
caco74
 
Messages: 59
Inscription: Sam 7 Mai 2011 19:09

Re: [TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude Laetitia » Lun 19 Aoû 2013 11:10

Perso, par défaut, le bon répertoire chez moi (Xp, IDE 1.0.5) est "C:\Documents and Settings\philippe\Mes documents\Arduino\hardware\tiny", "philippe" étant le nom d'utilisateur. Ca n'a pas beaucoup de liens avec ; "C:\Projects\Arduino\hardware\tiny)". Machine en mono-utilisateur ? Autre Windows ? Et j'imagine que pour mac et linux, c'est encore autre chose.

> Corrigé, je m'étais inspiré de plusieurs tutoriels dont j'ai fait la traduction pour celui-ci, j'avais laissé échapper une ou deux coquilles :roll:
Je ne suis en revanche utilisatrice ni de Mac ni de Linux et conseillerais de se tourner vers les connaisseurs :oops:

Je ne comprends pas très bien l'intérêt de nommer le fichier de config "Prospective Boards.txt" dans l'archive alors que c'est "Board.txt" qui marche.

> L'auteur de l'archive a renommé le fichier différemment pour que chacun puisse sélectionner les cartes qui l'intéressent (par exemple, je n'ai choisi que les ATtiny84 & 85, n'ayant pas besoin des ATtiny44, 24, 4313...)

J'ai eu l'occasion de jouer avec des 85, et j'ai été un peu déçu. C'est petit, ok, je m'y attendais plus ou moins mais pas autant. Par contre, au niveau de l'oscillateur interne, la précision supérieure à 10 % ( plus grande que ) ne permet pas des trucs comme un chronométrage ou une transmission série. J'ai vu qu'il y avais un étalonnage pour les 84. Est-ce que la précision est meilleure qu'avec les 85 ?

> Après lecture des datasheets, il semblerait que non... on peut calibrer les horloges sur les deux, en obtenant une précision d'environ 1% :
IntCLK_ATtiny84.png
IntCLK_ATtiny84.png (51.67 Kio) Vu 3735 fois

IntCLK_ATtiny85.png
IntCLK_ATtiny85.png (84.44 Kio) Vu 3735 fois

...il faut voir avec les schémas à la fin des datasheets, puisque les fréquences d'horloge dépendent de la température et de la tension d'alimentation !
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse

Re: [TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude philippemartorell » Dim 19 Jan 2014 17:42

Toujours pas de nouvelle de la mise en boutique?

Si non, c'est dommage, j'avais justement un truc qui aurais été bien avec avec un 84. Un aTmega328 ça va faire gros...
philippemartorell
 
Messages: 42
Inscription: Ven 9 Déc 2011 11:37

Re: [TUTORIEL] Programmer un ATtiny84 avec Arduino

Message non lude Laetitia » Mar 22 Juil 2014 15:00

La mise en boutique aura été plus longue que prévu mais l'ATtiny84 est enfin dispo en boutique :mrgreen:
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse


Retourner vers Composants tiers

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron