Programmer un Attiny13 avec l'Arduino

Préparation

Voici la bête:

image non disponibleimage non disponible

image non disponible

Si on a un programme peu gourmand et n'utilisant que 6 broche max, on peut le faire tourner sur un Attiny

J'en avait commander un une fois juste par curiosité, mais je voulais un Attiny85 car j'avais lu pas mal de doc dessus sur la toile, mais j'ai reçu un Attiny13 et je trouvais aucune doc sur ce modèle et surtout comment le programmer.

J'ai repris mes recherches et j'ai enfin trouvé ce que je cherchai sur github.

Il faut donc ajouter les cartes Attiny13 à l'IDE de l'Arduino, ouvrez-le, puis allez dans Fichier puis Préférences :

image non disponibleimage non disponible

Une fenêtre s'ouvre, il faut renseigner l'adresse suivante :

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

Comme ceci:

image non disponible

Faite ok, puis allez dans Outils, Type de cartes et Gestionnaire de carte :

image non disponible

Puis on attend un peu le rafraîchissement des librairies et on tape MicroCore dans la barre de recherche

image non disponible

Et on clic sur more options, puis installer

image non disponible

Bon maintenant l'IDE Arduino va pouvoir flasher l'Attiny13

Le montage pour programmer l'Attiny13

image non disponible

image non disponible

Une fois le montage effectué, on branche l'Arduino au port USB du PC

Dans un premier temps, on va lancer le programme d'exemple ArduinoISP

image non disponible

On vérifie que le type de carte est bien son Arduino

image non disponible

Et on téléverse le programme

image non disponibleimage non disponible

Ensuite, on sélectionne dans Outils, Type de carte, l'Attiny13 (en vert) et on vérifie que le port est OK (COM sur Windows ou TTY sur Linux) et le programmateur comme dans les encadrés rouge

image non disponible

On va ajouter une LED au montage pour faire un test

Le montage :

image non disponible

Le programme :

image non disponible

On clic sur la flèche pour téléverser le programme dans l'Attiny13

Et la LED clignote mais si vous êtes observateur, vous remarquerez que le délai de 100 ms ne fait pas 100 ms, il est bien plus long, je vais pas rentrer dans les détails mais il faut modifier le fichier Board.txt de l'Attiny13

Le chemin de ce fichier diffère selon son système, faite une recherche par fichier, mais ne vous trompez pas il y a un fichier board.txt pour l'Arduino et un pour l'Attiny , c'est ce dernier qui nous intéresse.

par exemple, sur mon système (Linux Ubuntu Mate) le chemin est celui-ci:

/home/manu/.arduino15/packages/MicroCore/hardware/avr/1.0.1/boards.txt

Il faut remplacer, dans la dernière ligne de ce paragraphe, 9600000L par 1000000L :

	######################
	#### Clock speeds ####
	######################

	### 9.6 MHz internal osc.
	attiny13.menu.clock.9M6=9.6 MHz internal osc.
	attiny13.menu.clock.9M6.bootloader.low_fuses=0x3A
	attiny13.menu.clock.9M6.build.f_cpu=9600000L

Deviens

	######################
	#### Clock speeds ####
	######################

	### 9.6 MHz internal osc.
	attiny13.menu.clock.9M6=9.6 MHz internal osc.
	attiny13.menu.clock.9M6.bootloader.low_fuses=0x3A
	attiny13.menu.clock.9M6.build.f_cpu=1000000L

Quand la modification est faite, fermez l'IDE Arduino et relancez le, puis téléversez de nouveau le programme

Maintenant les 100 ms font 100ms.

Un autre exemple

Le montage :

image non disponible

Le programme :

image non disponible

Une fois le programme téléversé, si on appuie sur le bouton, le programme lance les séquences avec les leds.

Le programme est dans l'Attiny, on peut donc à présent se passer de l'Arduino

image non disponible