Partagez

Suivez moi

Twitter

Google+

LinkedIn

ATtiny85 vs ATmega328

Je vais rapidement comparer le micro-contrôleur ATtiny85 au micro-contrôleur ATmega328 (celui qui équipe l'Arduino Uno rev 3) et expliquer comment utiliser l'IDE Arduino pour y transférer des sketches.

 

Quelques généralités sur l'ATtiny85

Le micro-contrôleur ATtiny85 est un micro-contrôleur AVR, comme l'ATmega328 qui équipe les carte Arduino UNO de dernière génération. Ce qui veut dire qu'il est possible, à l'aide des fichiers de support nécessaires, d'y transférer des programmes fait avec l'environnement de développement Arduino, avec les quelques restrictions que j'aborderai plus loin.

Tout d'abord, quelques comparaisons entre l'ATtiny85 et l'ATmega328, pour savoir où l'on met les pieds.

Ci-dessous une photo permettant de comparer la taille des micro-contrôleurs (de gauche à droite) :

  • Une carte à puce standard (pour l'échelle).
  • Une carte Arduino Uno.
  • Un micro-contrôleur ATmega328.
  • Un micro-contrôleur ATtiny85.
  • Une pièce de 2 euros coin (25mm, pour l'échelle).

Arduino and ATtiny85

  ATiny85 ATmega168 ATmega328
Nombre de broches 8 28 28
Fréquence max 1 ou 8 MHz (avec oscillateur interne) / jusqu'à 20 MHz (avec oscillateur externe) 1 ou 8 MHz (avec oscillateur interne) / jusqu'à 20 MHz (avec oscillateur externe) 1 ou 8 MHz (avec oscillateur interne) / jusqu'à 20 MHz (avec oscillateur externe)
Taille Flash (ko) 8 16 32
Taille SRAM (octets) 512 1024 2048
Taille EEPROM (octets) 512 512 1024
Canaux ADC (Analog to Digital Converter) 4 (dont 3 disponibles sans désactiver le fusible de reset ) 6 6
Canaux PWM 2 6 6
Canaux numériques (en comptant les ADC et PWM) 6 (dont 5 disponibles sans désactiver le fusible de reset ) 23 (dont 20 exposées sur les anciens Arduino Uno) 23 (dont 20 exposées sur Arduino Uno)
Connectivité I2C oui (via USI - Universal Serial Interface) oui oui
Connectivité SPI oui (via USI - Universal Serial Interface) oui oui
Connectivité UART (a.k.a. série) non oui oui
† Désactiver le fusible de reset permet d'utiliser la broche 1 comme canal analogique ou numérique, mais désactive la possibilité de programmer le micro-contrôleur. Si vous désactivez accidentellement le fusible de reset, vous pouvez suivre ces étapes pour le réactiver.

Comme vous pouvez le voir, l'ATtiny85 est assez limité en mémoire et en entrées / sorties disponibles par rapport à une carte Arduino standard. Cela nécessite de faire certains choix dans le cadre de tout projet l'utilisant. Il reste possible d'étendre le nombre de d'entrée / sorties numériques à l'aide d'un étendeur de ports MCP3008 ou MCP23017 (interfacé via I2C), mais ça contreviendrai à l'idée d'une réalisation compacte.

Un des points plus génant est l'absence d'une connectique UART pour la programmation de la puce. En effet, les cartes Arduino standards se basent sur ce type de connectique via un adaptateur USB <--> UART pour le transfert du programme. Dans le cas de l'ATiny85, il reste deux solutions possibles :

  • Acheter un programmateur AVRUSB : la puce ATtiny85 se place sur le support idoine du programmateur, le programmateur se branche sur un port USB de l'ordinateur, et on transfère ainsi le programme depuis l'environnement Arduino.
  • Acheter un Arduino UNO, et s'en servir (entre autres) comme programmateur AVR pour le transfert du programme vers l'ATtiny85. La méthode est simple et parfaitement documentée ici : Programming an ATtiny w/ Arduino 1.0. Vous pouvez voir ci-dessous une vidéo en montrant le fonctionnement.



comments powered by Disqus