ATtiny (également connu sous le nom de TinyAVR ) est une sous-famille des microcontrôleurs AVR 8 bits populaires , qui ont généralement moins de fonctionnalités, moins de broches d'E/S et moins de mémoire que les autres puces de la série AVR. Les premiers membres de cette famille ont été lancés en 1999 par Atmel (racheté plus tard par Microchip Technology en 2016). L'Attiny85 apparait en 2005.

ATtiny 85

.
Le ATtiny85 est sorti en 2005. Un résumé de ses caractéristiques données ici :

  • Cœur AVR (même cœur que les ATmega donc des Arduino)
  • alimentation 2.7 à 5.5V
  • 6 I/O Pins
  • 8k Flash Memory
  • 512 SRAM Memory
  • 512 EEPROM Memory
  • Horloge 20MHz (max.), 8MHz (interne)
  • PWM sur 3 pins
  • ADC sur 4 pins (10 bits)
  • 2 Timer

en font un contrôleur économique très utilisé.

Broches

Programmation via IDE Arduino

Programmateur Attiny85 fig.3 Attiny85 Programmateur
Programmateur Attiny85 fig.4 Attiny85 Programmateur

Il s'agit là d'un procédé simplifié de programmation via une carte Arduino UNO R3 ( ou Nano). Celle-ci va communiniquer avec l'Attiny par 3 fils (MISO, MOSI, SCK) et le protocole ISP. L'Attiny, comme de très nombreux microcontrôleurs, est prévu pour communiquer en ISP pour être programmé.

L'Arduino doit être préalablement programmé avec un script prévu à cet effet.

Il faut :
  1. Installer, sur la carte Arduino, un script nommé ArduinoISP qui va transformer la carte en programmateur. Une fois configurée, la carte va lire un flux de données binaires issu de la compilation d'un programme C/C++.



    Configurer la compilation pour un Arduino Uno (ou Nano)

    Compiler et téléverser. La carte Arduino Uno est maintenant un "programmateur ISP".
  2. Relier quelques broches de l'Arduino à l'attiny85. Cette opération est simple et rapide. Personnellement, j'ai installé un Nano dédié sur petite plaque "Veroboard" avec un support DIL8 et quelques LED de contrôle de progression.
    SignauxArduinoAttiny85
    RESETD10 RESET (br.1)
    GNDGND GND (br.4)
    MOSID11 PB0 (br.5)
    MISOD12 PB1 (br.6)
    SCKD13 PB2 (br.7)
    VCC5V VCC (br.8)
    Table T1.
    Il faut connecter les signaux : MISO, MOSI, SCK, RESET et l'alimentation 5V : VCC, et GND de l’Arduino à l’ATtiny de la manière décrite dans la table T1
    Ensuite, sur l’Arduino placer un condensateur chimique de 10µF entre la broche RESET et la masse (GND) pour éviter un reset de l'Arduino.
    SignauxArduinoSignification
    RUND7 Programmation en cours (cligne)
    ERREURD8Erreur (fixe)
    STATUS
    D9Fixe durant la progammation. Puis bat comme un coeur. Indique qu'il n'y a pas plantage.
    Table T2. Couleurs des LED indicatrices de progression

    Les broches D7, D8, D9 sont chacune reliée à une LED de couleur en série avec une résistance de 680Ω



  3. Ecrire le programme prévu pour l'Attiniy85 à l'aide de l'IDE Arduino. Configurer l'IDE pour une compilation de programme Attiny85.
  4. Compiler un programme C/C++ (bink par exemple) et téléverser celui-ci. Ce téléversement ira alors du PC vers l'Attiny via l'Arduino
Avant tout cela, il faut préparer l'IDE Arduino en :
  1. Ajoutant dans le champ "URL de gestionnaire de cartes supplémentaires" du panneau de réglages, l'URL suivante :
    https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
  2. Sélectionnant l'item "Outils" dans le Menu et en choisissant les paramètres suivants :


Maintenant, pour téléverser du code ATTINY vers un Attiny85, il faudra sélectionner le pragrammateur "Arduino as ISP", comme montré ci-dessous.

Programmateur ATtiny85/série

Bootloader Optiboot

Le bootloader "Optiboot" est un petit bout de code qui une fois installé en mémoire flash permet le téléchargement de

Sources et références

[ 1] Datasheet du Attiny85. Atmel - PDF (3.6Mo)

[ 2] Github Spence Konde : Optiboot