- Componenti necessari per programmare ATtiny85 tramite USB
- IC microcontrollore ATtiny85 - Introduzione
- Boot loader lampeggiante su ATtiny85 utilizzando Arduino Uno
- Schema del circuito per il programmatore ATtiny
- Installazione dei driver Digispark
- Configurazione dell'IDE di Arduino per programmare ATttiny85
La famiglia ATtiny è una serie di uno dei microcontrollori più piccoli nel mercato AVR. Questi microcontrollori sono in grado di utilizzare molte delle librerie disponibili sulla piattaforma Arduino. Il chip del microcontrollore ATtiny85 è un microcontrollore AVR a 8 pin e 8 bit. Le sue dimensioni ridotte e il basso consumo energetico lo rendono un ottimo abbinamento per progetti portatili con ingombri ridotti e bassi requisiti di alimentazione. Ma inserire il codice nel chip può essere un po 'una sfida in quanto non ha alcuna interfaccia USB come le schede del microcontrollore.
Nel nostro precedente tutorial, abbiamo programmato l'ATtiny85 utilizzando Arduino Uno. Ma collegare Attiny85 ad Arduino e utilizzare Arduino come ISP può essere difficile e richiedere molto tempo. Quindi, in questo tutorial, costruiremo una scheda di programmazione ATtiny85, in modo da poterla inserire e programmare direttamente come altre schede microcontrollore.
Componenti necessari per programmare ATtiny85 tramite USB
- Arduino UNO (solo per la prima volta durante il caricamento del bootloader)
- ATtiny85 IC
- Connettore USB tipo A maschio
- 3 resistori (2 × 47Ω e 1 × 1kΩ)
- 3 diodi (2 x diodo Zener e 1 x diodo IN5819)
- Base IC a 8 pin
- Breadboard
- Cavi per ponticelli
IC microcontrollore ATtiny85 - Introduzione
ATtiny85 di Atmel è un microcontrollore a 8 bit ad alte prestazioni e bassa potenza basato sull'architettura RISC avanzata. Questo chip del microcontrollore presenta una memoria flash ISP da 8 KB, 512B EEPROM, SRAM da 512 byte, 6 linee I / O per uso generico, 32 registri di lavoro per uso generico, un timer / contatore a 8 bit con modalità di confronto, uno ad alta velocità a 8 bit timer / contatore, USI, interrupt interni ed esterni, convertitore A / D a 10 bit a 4 canali, timer watchdog programmabile con oscillatore interno, tre modalità di risparmio energetico selezionabili dal software e debugWIRE per il debug su chip. Il piedino ATtiny85 è riportato di seguito:
La maggior parte dei pin I / O del chip ha più di una funzione. La descrizione dei pin ATtiny85 per ogni pin è riportata nella tabella sottostante:
N. pin |
Nome pin |
Descrizione pin |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 RESET: reimposta il pin ADC0: canale di ingresso ADC 0 dW: debug di I / O WIRE |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Pin dell'oscillatore in cristallo1 CLKI: ingresso clock esterno ADC3: canale di ingresso ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Interrupt cambio pin 0, sorgente 4 XTAL2: Pin 2 dell'oscillatore in cristallo CLKO: Uscita orologio di sistema OC1B: uscita B confronto timer / contatore1 ADC2: canale di ingresso ADC 2 |
4 |
GND |
Pin di terra |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: uscita dati master SPI / ingresso dati slave DI: ingresso dati USI (modalità a tre fili) SDA: USI Data Input (modalità a due fili) AIN0: comparatore analogico, ingresso positivo OC0A: Timer / Counter0 Compare Match A output AREF: Riferimento analogico esterno PCINT0: Pin Change Interrupt 0, Source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: ingresso dati master SPI / uscita dati slave DO: USI Data Output (modalità a tre fili) AIN1: comparatore analogico, ingresso negativo OC0B: Timer / Counter0 Compare Match B Output OC1A: Timer / Counter1 Compare Match A Output PCINT1: Pin Change Interrupt 0, Source 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: ingresso orologio seriale USCK: orologio USI (modalità a tre fili) SCL: orologio USI (modalità a due fili) ADC1: canale di ingresso ADC 1 T0: sorgente orologio timer / contatore0 INT0: ingresso interrupt esterno 0 PCINT2: Interrupt di cambio pin 0, sorgente 2 |
8 |
VCC |
Pin della tensione di alimentazione |
Boot loader lampeggiante su ATtiny85 utilizzando Arduino Uno
Per programmare l'ATtiny85 senza Arduino, dovremmo prima caricare un bootloader utilizzando una scheda Arduino UNO, questo è un processo una tantum e dopo averlo fatto, non avremo più bisogno della scheda UNO. Bootloader è un programma speciale che viene eseguito nel microcontrollore che deve essere programmato. Uno dei modi più convenienti per caricare i dati del programma sul microcontrollore è tramite un boot loader. Il boot loader si trova sull'MCU ed esegue le istruzioni in arrivo, quindi scrive le nuove informazioni sul programma nella memoria del microcontrollore. Il flashing di un boot loader su un microcontrollore elimina la necessità di hardware esterno speciale (schede di programmazione) per programmare il microcontrollore e sarai in grado di programmarlo direttamente utilizzando una connessione USB. Il Digispark ATtiny85board esegue il boot loader "micronucleus tiny85", originariamente scritto da Bluebie. Il boot loader è il codice che è pre-programmato su Digispark e gli consente di agire come un dispositivo USB in modo che possa essere programmato dall'IDE di Arduino. Inoltre eseguiremo il flash dello stesso bootloader digispark attiny85 su ATtiny85.
Di seguito viene fornita una guida passo passo per eseguire il flashing del bootloader su ATtiny85 utilizzando Arduino Uno e Arduino IDE:
Passaggio 1: configurazione di Arduino Uno come ISP:
Poiché l'ATtiny85 è solo un microcontrollore, richiede la programmazione di un ISP (In-System Programming). Quindi, per programmare ATtiny85, dobbiamo prima configurare Arduino Uno come ISP in modo che agisca come programmatore per ATtiny85. Per questo, collega Arduino Uno al laptop e apri l'IDE di Arduino. Successivamente, vai su File> Esempio> ArduinoISP e carica il codice ISP Arduino.
Passaggio 2: diagramma del circuito per il boot loader lampeggiante su ATtiny85:
Di seguito è riportato lo schema completo per il boot loader lampeggiante su ATtiny85:
Un condensatore da 10 µf è collegato tra il pin Reset e GND di Arduino. I collegamenti completi sono riportati nella tabella seguente:
Pin ATtiny85 |
Pin di Arduino Uno |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Pin 1 |
12 |
Pin 0 |
11 |
Ripristina |
10 |
Ora collega Arduino Uno al laptop e apri Arduino IDE. Trova a quale porta COM è connesso Uno. Nel mio caso, è COM5.
Successivamente, scarica i file del caricatore di avvio ATtiny85 dal collegamento indicato. Apri " Burn_AT85_bootloader.bat " e cambia il numero di porta COM "PCOM5" con qualsiasi numero di porta COM a cui è connesso Uno. Salva le modifiche prima di uscire.
Ora sposta i file modificati " Burn_AT85_bootloader.bat " e " ATtiny85.hex " nella cartella principale dell'IDE di Arduino (C: \ Program Files (x86) Arduino).
Successivamente, fai clic con il pulsante destro del mouse su " Burn_AT85_bootloader.bat " e seleziona "Esegui come amministratore". Occorrono circa 5-6 secondi per eseguire il flashing del boot loader. Se tutto è andato bene, dovresti ricevere questo messaggio "AVRdude fatto. Grazie. Premi un tasto qualsiasi per continuare…".
Con questo, il boot loader viene installato con successo sul chip ATtiny85. Ora è il momento di collegare l'USB con ATtiny85 in modo da poterlo programmare direttamente. Di seguito è riportato lo schema elettrico per la programmazione di ATtiny85 tramite USB:
Schema del circuito per il programmatore ATtiny
Lo schema è tratto dallo schema della scheda Digispark ATtiny85 ma poiché miriamo a costruire un programmatore per ATtiny85, stiamo collegando solo la spina USB maschio con ATtiny85.
L'R3 è un resistore pull-up collegato tra i pin Vcc e PB3 dell'IC mentre i diodi Zener (D1-D2) vengono aggiunti per la protezione totale dell'interfaccia USB. Dopo aver saldato tutti i componenti sulla scheda perf, apparirà qualcosa di simile di seguito:
Installazione dei driver Digispark
Per programmare l'ATtiny85 tramite USB, è necessario che i driver Digispark siano installati sul laptop, se non li si dispone, è possibile scaricarli utilizzando il collegamento sopra riportato. Quindi, estrarre il file zip e fare doppio clic sull'applicazione " DPinst64.exe " per installare i driver.
Una volta che i driver sono stati installati correttamente, collega la tua scheda ATtiny85 al laptop. Ora vai a Gestione dispositivi su Windows e il dispositivo ATtiny85 sarà elencato in "dispositivi libusb-win32" come "Digispark Bootloader". Se non riesci a trovare "dispositivi libusb-win32" in Gestione dispositivi, vai su Visualizza e fai clic su "Mostra dispositivi nascosti".
Configurazione dell'IDE di Arduino per programmare ATttiny85
Per programmare la scheda ATtiny85 con l'IDE di Arduino, prima dobbiamo aggiungere il supporto della scheda Digispark all'IDE di Arduino. Per questo, vai su File> Preferenze e aggiungi il link sottostante negli URL di Gestione schede aggiuntive e fai clic su "OK".
Successivamente, vai su strumenti> Board> Board Manager e cerca "Digistump AVR" e installa la versione più recente.
Dopo averlo installato, ora potresti vedere una nuova voce nel menu Board intitolata "Digispark".
Ora vai su file> Esempi> Nozioni di base e apri l'esempio Blink.
Cambia il numero del pin lì da LED_BUILTIN a 0.
Ora torna su Strumenti -> Scheda e seleziona la scheda " Digispark (Default - 16 mhz) ". Quindi fare clic sul pulsante di caricamento nell'IDE di Arduino.
Nota: collegare la scheda ATtiny85 al computer, solo quando l'IDE di Arduino visualizza un messaggio che dice "Plugin device now".
Una volta caricato il codice, il LED collegato ad ATtiny85 dovrebbe iniziare a lampeggiare.
È così che puoi costruire la tua scheda di programmazione Arduino ATtiny85. Di seguito viene fornito un video funzionante dello stesso. Se hai domande, lasciale nella sezione commenti. Per qualsiasi altra domanda tecnica, puoi anche avviare una discussione sui nostri forum.