Programmer un ATTiny avec Arduino et avrdude

De Le Glitch Wiki
Aller à : navigation, rechercher

Avant propos

Pour le hobbyiste amateur comme chevronné, il existe un microcontrôleur qui, par sa simplicité (sans être simpliste), son faible encombrement ainsi que son coût est un moyen simple de répondre à des problématiques parfois complexes. Le but ici ne sera pas de vous apprendre la programmation du composant mais plutôt de faire l'interface avec le composant pour téléverser un code qu'on aura crée par ailleurs, ou récupéré sous la forme d'un fichier codé en binaire ou hexadécimal (.bin , .hex)

ATTiny


L'attiny est un micro controlleur de chez Atmel.

il en existe plusieurs sortes; selon la fréquence interne, son nombre d'entrées /sorties, la quantité de mémoire... un très bon tableau synthétique ce trouve sur wikipédia : https://en.wikipedia.org/wiki/Atmel_AVR_ATtiny_comparison_chart

Pins attiny85

Le programmeur

partie logicielle

WinAVR dont vous trouverez la dernière version ici C'est ce programme qui permet d'envoyer des instructions à certains composants ATMEL, de diagnostiquer ou programmer ces derniers.

calculateur de fusibles: avec / sans resonateur externe, avec / sans reset externe, permission modification eeprom ... a retrouver sur le site www.engbedded.com/fusecalc

partie matérielle

Version easy peasy, lemon sqeezy (rien à voir avec le chianteur/yentubeur)

Arduino As ISP ...

programmation Attiny85 avec un Arduino as ISP


On va simplement programmer l'arduino uno afin qu'il se comporte comme une simple interface USB <-> SPI, émulé comme un port COM sous windows), interface qu'on va pouvoir piloter en ligne de commande (ou GUI) avec AvrDude (WinAVR, AVRDudess et autres versions). Une bonne explication du protocole SPI peut être trouvée sur le site de Sparkfun (en anglais) : https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi Dans le cas où on choisit d'utiliser une horloge externe, on va pouvoir brancher notre composant sur les pins correspondants à CLKI (2) et CLKO (3). Se reporter au schéma du dessus.

Usb ASP(relou avec resonateur externe)...

Programmer avec avrdude

méthode arduino as ISP (linux)

Brûler les fusibles

' avrdude -pattiny85 -cstk500v1 -P/dev/ttyUSB0 -b19200 -U lfuse:w:0xfe:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m '

Charger le binaire

' avrdude -pattiny85 -cstk500v1 -P/dev/ttyUSB0 -b19200 -U flash:w:binary.hex '

méthode arduino as ISP (Windows)

Brûler les fusibles

' avrdude -p t85 -c stk500v1 -P COMX -b 19200 -U lfuse:w:0xfe:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m '

Charger le binaire

' avrdude -p t85 -c stk500v1 -P COMX -b 19200 -e -U flash:w:binary.hex '

méthode USBASP avec pogo pins (les lignes qui suivent sont un brouillon et ne fonctionne pas encore)

Brûler les fusibles

' avrdude -p t85 -c usbasp -P usb -b19200 -U lfuse:w:0xfe:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m '

Charger le binaire

' avrdude -p attiny85 -c usbasp -P usb -b19200 -U flash:w:binary.hex '