Pages: [1] 2   Go Down
Author Topic: Projet Arduino avec les ATtiny  (Read 10253 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce doc porte majoritairement sur les ATtiny 25/45/85 puisque ceux sont eux que j'utilise principalement.
Les ATtiny 24/44/84 sont  compatibles.

Informations préalables:

- je travail avec l'IDE Arduino 1.0.3
- j'utilise un Arduino Nano Rev.3
- j'utilise ce "core" Arduino-tiny (détails plus loin)

La famille ATtiny utilisable avec l'interface Arduino:

On va les classer par sous-familles

-ATtiny 24 / 44 / 84 avec une mémoire de  2K 4K ou 8K bytes. 14 broches dont 8 ADC, 3 PWM.
   http://www.atmel.com/Images/doc8006.pdf
-ATtiny 25 / 45 / 85 avec une mémoire de  2K 4K ou 8K bytes. 8 broches dont 3 ADC, 2 PWM.
   http://www.atmel.com/Images/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf

               ATtiny 24/44/84                               ATtiny 25/45/85   
 
                 VCC -I 1       14 I- GND                           Reset -I 1         8 I- VCC
               Pin10 -I 2       13 I- Adc0/Pin0             Adc3/Pin3 -I 2         7 I- Adc1/Pin2
                 Pin9 -I 3       12 I- Adc1/Pin1             Adc2/Pin4 -I 3         6 I- Pwm/Pin1
               Reset -I 4       11 I- Adc2/Pin2                     GND -I 4         5 I- Pwm/Pin0
         Pwm/Pin8 -I 5       10 I- Adc3/Pin3
 Adc7/Pwm/Pin7 -I 6        9 I- Adc4/Pin4
 Adc6/Pwm/Pin6 -I 7        8 I- Adc5/Pin5/Pwm

Ce sont tous des µ-Controleurs 8Bit avec une horloge interne programmable à 1MHz et 20MHz
   

Programmer un ATtiny:

-Première étape : la prise en charge des Tiny par Arduino

Il existe deux principaux codes (ou core) :

Le core développé par le MIT :
https://github.com/damellis/attiny/

Le core du projet Arduino-Tiny :
http://code.google.com/p/arduino-tiny/

Quel que soit le core, le procédé d'installation est le même :

déziper les fichiers
dans le dossier des croquis Arduino (trouver le dossier croquis dans les préférence),
créer un dossier hardware.Copier dans ce dossier le core
On obtient : Documents/Arduino/hardware/attiny
            Ou : Documents/Arduino/hardware/tiny
Relancer l'IDE arduino : dans le menu Outils<type de carte . On peut désormais choisir les ATtiny.

-Seconde étape : utiliser une carte arduino comme programmateur.

-on va d'abord charger le sketch ArduinoISP sur la carte (le sketch se trouve d'origine dans les exemples.

-ensuite on procède au branchement :

   -ATtiny Pin2 au pin 13 de la carte arduino (ou pin SCK)
   -ATtiny Pin1 au pin 12 de la carte Arduino (ou pin MISO)
   -ATtiny Pin0 au pin 11 de la carte Arduino (ou pin M0SI)
   -ATtiny Pin reset au pin10de la carte Arduino (ou pin RESET)

En plus il faut alimenter le ATtiny à ses broches VCC (+5V) et GND (Masse).
Et mettre un condensateur chimique 10µF entre le Pin reset et GND de la carte arduino. (Attention à la polarité du condensateur)

-Troisième étape : faire un test.

-Ouvrir le sketch Blink. Changer le pin 13 en pin 0.
-dans Outils>Programmateur,  choisir Arduino as ISP
-dans Outils>Type de carte, choisir celle qui correspond à votre ATtiny en 1Mhz
-charger le sketch. A la fin, si tout c'est bien passé vous obtenez deux fois le même message d’erreur :
avrdude: please define PAGEL and BS2 signals in the configuration file for part Attiny85.
Ne pas y faire attention.

-En laissant l'alimentation branchée et une led (avec sa résistance) sur la broche 5 (Pin0).
Cette dernière doit clignoter !!!!!!.


Note : Par défaut les ATtiny sont configurés pour une fréquence de 1Mhz.Pour configurer à 8Mhz
-refaites les étapes 1 et 2
-dans Outils>Type de carte, choisissez votre ATtiny à 8Mhz.
-enfin dans Outils cliquer sur « graver la séquence d'initialisation ».
Voilà.
La fréquence reste à valeur de dernière configuration tant que vous ne la changez pas.Donc pas besoins de refaire ce changement à chaque fois
(méthode tirée du site http://hlt.media.mit.edu/?p=1695 )

A suivre :
Les librairies spécifiques aux ATtiny (I2C, Servo, LCD…)

Si vous voyez des erreurs faites moi signe.Si vous avez des remarques n'hésitez pas. Si vous avez des questions c'est fait pour ça.
« Last Edit: January 28, 2014, 10:27:20 am by skimeur » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les librairies spécifiques aux ATtiny

Il fallait des librairies spécifiques aux ATtiny car :

-ils ne possèdent pas par défaut de communication sérial
-pas non plus de communication I²C
-un nombre limité de broche (seul 5 utiles pour les 25/45/85)
-un processeur 8 Bit
-une mémoire réduite


I²C :

Les ATtiny grâce au travail de la communauté arduino, gère la communication I²C.
Dans le lien qui suit vous trouverez les librairies
TinyWire Master et Slave pour les ATtiny 25/45/85
En bas de la page vous trouverez également pour les Attiny24/44/84.
http://playground.arduino.cc/Code/USIi2c

Également un très bon tuto pour transformer un capteur analogique en capteur I²C grâce aux ATtiny :
http://kasey.fr/ATTiny-capteur-universel-en-I2C.html

Servo :
une librairie pour la gestion des servomoteur (uniquement ATTiny 25/45/85)
https://github.com/fri000/Servo8Bit/blob/master/Makefile

LCD :
Pour le LCD vous pouvez utiliser la communication I²c (encore faut il avoit un LCD qui le supporte).
Ou utiliser la librairie classique LCD qui utilise 6 broches donc impossible sur les ATtiny 25/45/85 limités à 5 broches utilisables.
La solution peut également être un LCD standard qui n'utilise que 3 fils grâce à un petit composant : un shift registers et une librairie spécifique : ShiftLCD.
Vous trouverez un tuto complet pour réaliser l'interface :
http://www.instructables.com/id/ATTiny4585-LCD-display-control-with-a-shift-regis/?ALLSTEPS
et la librairie Shift LCD  au lien suivant ( en bas de la page avant les commentaires :
http://cjparish.blogspot.fr/2010/01/controlling-lcd-display-with-shift.html

Autres:

Vous trouverez, pour finir, d'autes librairies optimisées pour le ATtiny mais que je n'ai pas testé personnellement :
http://arduino.cc/forum/index.php?topic=118794.0

Bref:

Grâce à ces librairies il est possible sur seulement 5 broches de pouvoir brancher un grand nombre de capteur et un LCD pour le debug ou tout simplement pour un affichage.
Bien sûr dans la limite de la mémoire du µ-controleur.


Voilà pour l'instant.

Si vous voyez des erreurs faites moi signe.Si vous avez des remarques n'hésitez pas. Si vous avez des questions c'est fait pour ça.
« Last Edit: February 25, 2013, 04:19:31 pm by skimeur » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gestion de la partie Hardware :

Petit conseil, pensez un faire un shield pour la programmation des ATtiny. Vous allez passez votre temps à le brocher/débrocher :
une plaque de C.I à pastilles, des connecteurs droits, un condensateur 10µF et surtout un support pour ATTiny double Lyre plus facile à débrancher que les support tulipe.

Ainsi qu'une plaque test avec un régulateur de tension 3,3v ou 5V (attention aux spécification tension VCC et fréquence cf datasheet), un interrupteur pour le reset, une led avec directement sa résistance correspondante.

Pour aller plus loin :


Il existe également une troisième sous-famille ATtiny 2313/4313.
Ceux qui sont observateur les ont aperçu lors du choix de la carte dans l'IDE Arduino. Ces derniers ne diposent pas de convertisseur analogique en numérique (ADC).
http://www.atmel.com/Images/doc2543.pdf

Il y a des différences dans les fonctions entre les 2 cores (MIT/Tiny).

Pour facilité le debuggage, il y a un équivalent de la fonction sérial (pas testé).

Il serait compliquer de modifier la fonction de la broche reset. Cela entraine l'impossibilité de programmer l'ATtiny  avec un arduino

Il existe de plus en plus de Kit ATtiny chez les fournisseurs.

Voilà

EDIT: J'ajoute des petites observations au fur et à mesure que j'utilise les ATtiny

27/03/13: à 1 MHz la fonction Tone() produit un son qui grésille.

Si vous voyez des erreurs faites moi signe.Si vous avez des remarques n'hésitez pas. Si vous avez des questions c'est fait pour ça.
« Last Edit: March 27, 2013, 03:21:34 am by skimeur » Logged

Oise (FR)
Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour skimeur

Merci pour les informations que tu partages.

A bientôt
Logged

Arduino 0023 et Python 3.2.3

Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@nolimit60.

merci
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu devrais aller faire un tour sur http://digistump.com/

Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3755
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Petite "mésaventure" que je viens de rencontrer : pas de soucis sur attiny45 mais sous 44A mon pinout n'est pas le même que celui qu'on trouve partout, à savoir :



Je n'ai trouvé qu'un site qui en avait un qui correspondait :



Je n'ai pas creusé le problème plus que ça encore, mais si quelqu'un a la réponse direct ça m'évitera de rechercher xD
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Dans ce tuto il s'agit principalement des micro contrôleur Tiny 44 (standard) ou Tiny 44V (basse tension) mais pas les Tiny44A

Le 44a est un mélange du 44 et du 44v : il peut travailler à basse tension et peut être configurer à 20 Mhz.

Cependant sur les datasheet fournies par Atmel les 44 et 44a ont le même brochage.

Peut être le tiens est-il réalisé par un autre fabricant ????
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3755
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nan c'est de l'Atmel smiley-wink
Logged


Oise (FR)
Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

Peut-on utiliser un ATtiny85v avec tes manipulations ?
Faut-il changer a un endroit la fréquence car pour un ATtiny85v = 10Mhz et le ATtiny85 = 20Mhz.

Merci
« Last Edit: August 01, 2013, 01:01:45 am by nolimit60 » Logged

Arduino 0023 et Python 3.2.3

Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

effectivement on peut utiliser l'ATtiny 85v avec ces manip'.
Le 10Mhz correspond à la fréquence max des 85v qui initialement sont configurés à 1Mhz
Pour changer la fréquence (si besoins et en fonction des compatibilité des librairies utilisées) suis les indications de ce tuto (voir Note après la partie programation).

Voilà !!!
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ce tutoriel  smiley


Où achètes tu tes ATtiny ? Je vais surement acheter un kit chez semageek mais après il ne vend pas d'ATtiny séparément.
Logged


Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3755
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hors frais de port (12€) Farnell sont très bien placés, et pas que sur les Attiny
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Moi je les commande chez limpulsion.fr (magasin à côté de chez moi).
ils ont les 85 et 85V mais je connais pas leur frais de port.
Logged

Sherbrooke, Québec, Canada
Offline Offline
Full Member
***
Karma: 1
Posts: 246
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour B@tto,

Je suis nouveau avec les AT Tiny et j'utilisais, jusqu'à il y a quelques minutes, votre charte des broches des Tiny ! Mais il y a des omissions dans ce charte, par exemple, il n'y a pas de broche pour « MOSI » concernant le Tiny84.

...
Je n'ai trouvé qu'un site qui en avait un qui correspondait :


...

Cela fut source d'erreurs et de confusions pour moi, cette dernière semaine. Je suis donc à la recherche d'une charte équivalente, mais qui ne comporte pas d'erreurs ou d'omissions. Mais comme je suis nouveau avec le Tiny, je ne suis pas bien placé pour juger les autres chartes sans un certain temps d'expérimentation. Mais si vous avez une autre charte que vous utilisez déjà pour vos travaux, je suis preneur !

Cordialement,

L'ami René
Logged

Tous pour un et un pour tous !

Pages: [1] 2   Go Up
Jump to: