La carte DIGISPARK 85

Digispark OTG fig.1 Digispark OTG-----

diagram Digispark fig.2 diagram Digispark

Digispark USB fig.3 Digispark USB
La carte Digispark permet de s'initier à l'ATtiny85. Ses caractéristiques sont données comme suit :
  • Alimenation via USB (5V) ou Externe Vin (7 -35V) ( selection automatique)
  • Regulateur On-board 500ma 5V
  • Built-in USB
  • 6 I/O Pins
  • 8k Flash Memory
  • I2C et SPI
  • PWM sur 3 pins
  • ADC sur 4 pins
  • LED Alimentation et LED de Test/ LED d'état ( Pin 0 ou 1 selon le modèle)
  • Poids: 4g

On trouve cett carte avec une prise USB-A ou une USB-OTG. Elle se programme soit avec un programmateur AVR via les broches ISP (MOSI, MISO, SCK, RESET), soit via le connecteur OTG et l'IDE Arduino. C'est cette dernière façon qui sera décrite plus bas.

Programmation via l'ide Arduino

(Procédure testée sur Mac 0S 10.13 High-Sierra et sur PC Windows 10)

Pour commencer, il faut ajouter la carte Digispark à la liste connue de l'IDE. Pour cela :
  • Aller dans le menu de l'IDE File -> Board -> Preferences
  • Placer dans le champ "AdditionalBoars Manager URLs", l'URL
    http://digistump.com/package_digistump_index.json
    et sauver.
  • Aller dans Tools -> Board -> Board Manager et chercher Digistrump AVR Board by Digistrump. Puis installer (à l'aide du bouton).
  • Aller dans Tools -> Board et choisir
    • la carte Digispark (default - 16.5mHz).
    • le programmer Micronucleus
  • Il est inutile de sélectionner le port

Nous sommes prêt pour programmer le micrôcontroleur.
  • S'assurer que le Digispark n'est pas brancher au PC (important).
  • Lancer la compilation - Téléversement d'un sketch (par exemple le clignotant donné plus bas. Dans la boite de dialogue au bas de l'IDE apparaît le message d'avertissement suivant :

    Running Digispark Uploader...
    Plug in device now... (will timeout in 60 seconds)
    
  • Brancher le Digispark au PC avant les 60s de Timeout.

En cas de succès, un message de ce type ( au valeur près ) apparaît alors dans la fenêtre basse de l'IDE :

> Please plug in the device ... 
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 1.6
> Available space for user applications: 6012 bytes
> Suggested sleep time between sending pages: 8ms
> Whole page count: 94  page size: 64
> Erase function sleep duration: 752ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!

Exemple de "sketch" faisant clignoter une LED de test présente sur la carte :


void setup()
{
  // Mettre les pins 0 et 1 en sorties.
  // En effet, selon le modele (A ou B), certaines cartes 
  // Digispark ont leur LED de test soit sur la pin 0, soit
  // sur  la pin 1. Pour être sur d'y voir quelque chose, 
  // on applique le signal de test sur les 2 pins.
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
}
void loop()
{
  // Allumer la LED ( port a l'etat HIGH).
  digitalWrite(0, HIGH);
  digitalWrite(1, HIGH);

  // Laisser la LED de test allumee pendant 100mS
  delay(100);

  //// Eteindre la LED ( port a l'etat LOW)
  digitalWrite(0, LOW);
  digitalWrite(1, LOW);

  // Laisser la LED de test eteinte pendant 100mS
  delay(100);
}


Sources et références

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

[ 2] Site Digistrump du Digispark

[ 3] Github Spence Konde : Optiboot