Scheda Digispark basata su ATtiny85

La scheda Digispark con ATtiny85 è nata su Kickstarter nel 2017. Si tratta di una piccola scheda di sviluppo che misura solamente 18×18 mm circa; il microcontrollore ATtiny85, simile a quello montato sulla Schede serie Arduino, solo più economico, più piccolo e un po’ meno potente.

scheda Digispark basata ATtiny85

Confronto dei moduli CJMCU LilyTiny ,Adafruit Trinket Digispark,

Digispark  ATtiny85

La scheda Digispark  è nata su Kickstarter nel 2017.
Si tratta di una piccola scheda di sviluppo che misura solamente 18×18 mm circa.
Il microcontrollore Attiny85, simile a quello montato sulla Schede serie Arduino, solo più economico, più piccolo e un po’ meno potente.
Con la presenza di molti shield si possono però estendere le sue funzionalità. Con la capacità di utilizzare l’IDE di Arduino, il Digispark è un ottimo modo per entrare nell’elettronica; è perfetto per quando ad esempio un Arduino UNO è troppo grande.
Il Digispark viene venduto completamente assemblato, tranne per i due connettori facili da saldare che possono essere scelti secondo le proprie esigenze.

scheda Digispark basata ATtiny85

scheda Digispark basata ATtiny85

scheda Digispark basata ATtiny85

scheda Digispark basata ATtiny85

Caratteristiche

  • Supporto per Arduino IDE  (OSX / Win / Linux)

  • MCU AVR ATtiny85 da 16 MHz:
  • 8k Memoria Flash (circa 6k dopo il bootloader)
  • Alimentazione tramite USB o sorgente esterna – 5v o 7-35v (consigliato 12v o meno, selezione automatica)

  • Regolatore con uscita 5V – 500mA

  • Integrato USB incorporato

  • 6 pin I / O (2 usano solo USB se il programma comunica attivamente tramite USB, altrimenti è possibile utilizzare tutti i 6 pin anche se si sta programmando tramite USB)

  • I2C e SPI

  • PWM su 3 piedini (altri con Software PWM)

  • ingresso ADC su 4 pin

  • LED di alimentazione e LED di test/stato (sul pin 1)

Digispark-ATtiny85 - PIN

Differenze con Arduino

Cambiando il tipo di MCU vi sono alcune limitazioni:

  • I pin digitali 3 e 4 sono utilizzati per la comunicazione USB. Per cui occorre disconnettere  eventuali collegamenti durante la programmazione.
  • Tenendo conto della nota precedente, il pin 3 ha anche una resistenza di pull-up da 1.5kΩ
  • A bordo c’è un ATtiny85 anziché un ATmega328, per cui alcune librerie potrebbero non funzionare correttamente. Questo porta chiaramente anche a limitazioni di memoria (il Digispark ha disponibili circa 6kB di memoria Flash contro i circa 32kB di Arduino UNO, 512B di RAM contro 2k). Per questo motivo occorre utilizzare le librerie appositamente create per Digispark.
  • L’ATtiny85 non ha una periferica UART per cui i programmi che fanno uso di essa non funzionano, vedi il Serial Monitor, ma ci sono degli esempi per dare l’output seriale utilizzando la libreria digispark e in più per il collegamento a dispositivi possiamo usare softwareSerial.
  • Per l’utilizzo di periferiche I2C è consigliato l’utilizzo della libreria TinyWireM che è specifica per il modulo I2C degli ATtiny.
  • I Pin analogici si trovano sui pin digitali ma in maniera diversa. Ad esempio se diamo l’istruzione AnalogRead(1), il sistema si aspetta di fare la lettura analogica sul pin digitale 2, dato che A1 è posizionato li.
  • Il programma caricato non parte subito ma ha un ritardo di alcuni secondi: in questo tempo il bootloader cerca di capire se si sta tentando di programmarlo.

Schema elettrico

Lo schema elettrico della scheda Digispark è basata sul  chip ATtiny85 collegato direttamente all’USB, la tensione è regolata tramite un regolatore tipo MC78M00 in grado di fornire 500 mA Sulla scheda sono presenti 6 pin connessi alle porte del microcontrollore, mentre altri tre sono dedicati all’alimentazione.
Tutti i pin possono essere usati come I / O digitali:

scheda Digispark basata ATtiny85

Pin 0 → I2C SDA, PWM (LED sul modello B)
Pin 1 → PWM (LED sul modello A)
Pin 2 → I2C SCK, analogico in
Pin 3 → Analogico (utilizzato anche per USB + quando è in uso USB)
Pin 4 → PWM, analogico (utilizzato anche per USB – quando è in uso USB)
Pin 5 → Analogico

Processore ATtyny85 8-bit Microcontroller with 8K Bytes In-System Programmable Flash

 

Piedinatura Datasheet Foto dell’integrato

MC78M00 500 mA Positive Voltage Regulators

Piedinatura Datasheet Foto dell’integrato

Versione con connettore USB

In vendita esiste anche una versione del Digispark che di solito riporta la scritta ATTINY 85 oppure solo TINY85.

Digispark-ATtiny85 - versioni

Per il resto è molto simile, utilizzano entrambi un Attiny85, entrambi hanno lo stesso layout  dei pin.
Quello che cambia è il regolatore per una corrente cha passa a una versione 78L05 SMD che può erogare solo 100 mA a differenza dei 500 mA teorici del Digispark.
Il connettore USB del secondo è poi di tipo micro B, al cui lato sono presenti due fori di fissaggio.

Dove trovare la scheda scheda Digispark ATtiny85

Sito Amazon

AliExpress

AliExpress

Versione Digispark PRO ATtiny167

Successivamente alla commercializzazione della scheda Digispark basata su ATtiny85, sempre sulla piattaforma Kickstarter è apparsa la versione Digispark PRO. La nuova scheda non è basata sul ATtiny85, ma sull’ATtiny167.

Digispark PRO ATtiny167

Digispark PRO ATtiny167 - dimensioni

Questo chip più grande, a 20 pin, aggiunge altri 10 pin I/O e una vera interfaccia hardware SPI, ma le migliori funzionalità sono disponibili nel pacchetto Digispark Pro.

Digispark PRO ATtiny167 - confronto

Confronto delle due versioni

Questa volta c’è una vera programmazione USB, emulazione di dispositivo e seriale su USB, e la possibilità di usare il monitor seriale Arduino, qualcosa che non si trova nel Digispark originale.
Per questo modello sono disponibili anche piccoli shield per funzione WiFi e Bluetooth e atro.

Digispark PRO ATtiny167 - shield

Caratteristiche

  • Compatibile con Arduino IDE
  • Dotato di Driver
  • Programmazione USB, emulazione dispositivo USB, emulazione porta seriale virtuale USB-CDC
  • MCU AVR ATtiny167 da 16 MHz: presenza di un vero Quarzo di precisione da 16 MHz
  • Memoria Flash da 16 KB (14,5 K+ dopo il bootloader)
  • Debug e comunicazione seriale su USB
  • 14 pin i/o (2 condivisi con USB)
  • I2C, SPI, UART , LIN e USI
  • ADC su 10 pin
  • 3 canali PWM (che possono essere assegnati a una selezione di pin)
  • Alimentazione tramite USB o fonte esterna – 5 V o 6-16 V (selezione automatica)
  • Pulsante integrato che può essere utilizzato come pulsante di reset, di programmazione o utente , oppure può essere disabilitato per utilizzare quel pin come I/O generale, senza modificare il bootloader.
  • Regolatore di bordo 500ma 5V
  • LED di alimentazione e LED di test/stato (sul pin 1)
  • Ponticelli di saldatura accessibili all’utente per disattivare i LED e altre funzionalità per un consumo energetico inferiore
  • Due fori di montaggio.
  • Pin out/spaziatura compatibili con breadboardDigispark PRO ATtiny167 - pin

Installazione della scheda Digispark

Dopo questa breve introduzione vediamo come muovere i primi passi con questa piccola scheda.
Lo procedura è leggermente diversa a quella tipica per le altre schede Arduino.

  • Sarà quindi necessario scaricare e installare manualmente i driver per la scheda Digispark.
    I file del driver si trovano in questo link. Il driver funziona anche su W10. Una volta scaricato, occorre  decomprimere ed eseguire “DPInst.exe  (su sistemi a 32 bit) o ​​”DPInst64.exe” (su sistemi a 64 bit).

scheda Digispark basata ATtiny85

scheda Digispark basata ATtiny85

Nota: Attenzione, se inserite la scheda in una porta USB quando non richiesto dall’IDE, la scheda non sarà riconosciuta, ma questo è normale.

A questo punto, supponendo che l’IDE sia già installato (il test è stato fatto con la versione 2.3.4) andare al menu “File” e selezionare “Impostazioni”

Digispark ATtiny85 - installazione

Nella casella con l’indicazione “URL aggiuntive per il Gestore schede“, immettere:

“https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

e fare clic su OK.

Andare ora al menu “Strumenti” e poi nel sottomenu “Gestore schede“, nel campo di ricerca digitate “digistump“. Selezionare il pacchetto “Digitump AVR Boards” e fare clic sul pulsante “Installa” e fare clic su INSTALLA.
Nota:
se provate a cliccare su Maggiori informazioni, il PC segnalerà che è Impossibile raggiungere il sito, ma ciò è normale, in quanto il sito non esiste più ma il gestore delle schede è disponibile sulla piattaforma GITUB a questo link.

Digispark ATtiny85 - installazione

Verrà visualizzato il progresso di download nella barra di fondo della finestra “Gestore schede”, quando sarà completata verrà visualizzato “INSTALLED” accanto a quella voce dell’elenco.

Con l’installazione completa, chiudere la finestra “Gestore schede” e selezionare Digispark dal menuStrumenti → Schede. “Digispark (Default – 16.5mhz)

a questo punto l’installazione può considerarsi completa

Digispark ATtiny85 - scelta versione

Uso della scheda Digispark con l’IDE

La scheda Digispark funziona un po’ diversamente da altri prodotti compatibili con Arduino.

La programmazione segue una procedura diversa.

  • Verificare che dal menu Strumenti sia selezionata la Scheda → Digispark (default- 16.5Mhz), non è necessario modificare la voce programmatore.

  • Scrivere un codice, aprire un codice precedentemente salvato o aprire un esempio Digispark.

  • Non si deve collegare il Digispark prima di richiamare il caricamento

  • Premere il pulsante di caricamento. Dopo la compilazione nella casella di stato inferiore sarà richiesto di collegare il vostro Digispark – a questo punto è necessario collegarlo.

Digispark ATtiny85 - caricamento programma

  • Si vedrà il progresso del caricamento e al termine la scritta “running: 100% complete“, il codice sarà eseguito immediatamente sul Digispark.Digispark ATtiny85 - caricamento programma

  • Se si scollega il Digispark e si inserisce nuovamente o si collega ad un’altra sorgente di alimentazione, si verificherà un ritardo di 5 secondi prima che il codice programmato sia eseguito. Questo ritardo è dovuto al controllo di Digispark per verificare se si sta cercando di programmarlo.

Primo test

Per testare la scheda Digispark basata ATtiny85, si può utilizzare il semplice programma per far lampeggiare il led

a questo punto inserite la vostra Digispark ed attendete che il caricamento vada a buon fine. Il led sulla scheda lampeggerà al ritmo di 1Hz.

Gestione con Digispark di un display OLED 128×64

Proviamo ora a collegare il Digispark ad un display OLED 128×64. In questo caso è un display OLED con driver SSD135 perfettamente compatibile con quello con SSD1306, vedere articolo Display OLED 0.91″ 128×32 pixel – SSD1306

Per la gestione occorre una speciale libreria scritta appositamente per il Digispark. Questa insieme a molte altre potrete vedere a questo link.
Per il resto potrete caricare moltissimi esempi  che troverete

File -> Esempi -> Esempi per Digispark (Default 16,5mhz)

nel nostro caso lo Sketch è basato sull’esempio DigisparkOED

Digispark ATtiny85 - test OLED

Sotto è riportato lo schema dei collegamenti tra il Digispark e il display OLED, che utilizza le due linee SDA e SCL più le due di alimentazione.

Digispark ATtiny85 - test OLED - schema

Sotto la foto test con il programma in esecuzione

Digispark ATtiny85 - test OLED - Foto

Sotto è invece riportato lo Sketch utilizzato