Cosa non può fare l'ATtiny che l'Arduino può fare?


12

Ispirato da questo video di YouTube per Make Magazine , vorrei usare i chip ATtiny anziché Arduino per la maggior parte dei miei progetti. L'autore del video avverte che alcune funzioni di Arduino non funzioneranno su ATtinys. Esiste un elenco completo di ciò che è e non è supportato?


1
Da quello che ho letto (che non è certo molto), non tutti gli ATtinys hanno abbastanza flash per il bootloader di Arduino. Probabilmente puoi comunque compilare tramite Arduino e caricarlo tramite AVRdude separatamente.
Ignacio Vazquez-Abrams,

1
Qui non si tratta del bootloader (è possibile utilizzare un programmatore esterno), ma alcune librerie non si compilano solo nel codice di lavoro (ho anche capito che non tutti genereranno errori). Per quanto ne so, non esiste un elenco di quali funzioni funzionano e quali no, ma non fa male imparare a capire come programmare direttamente l'hardware, poiché la maggior parte delle funzioni di Arduino ha un certo sovraccarico. Non devi volere funzioni come pinMode();e digitalWrite();su un ATtiny, giusto per i registri appropriati DDRx, PORTxdirettamente. Molte funzioni simili possono essere trovate.
jippie,

1
Per la stragrande maggioranza dei progetti Arduino che ho visto, i chip ATtiny sarebbero stati in grado di farlo. Per la maggior parte, dovresti programmare tramite SPI invece del bootloader e scrivere il codice in C o Assembly anziché la tipica copia e incolla di Arduino dai tutorial.
Kurt E. Clothier,

@Kurt in realtà ci sono porte per la maggior parte delle librerie di runtime di Arduino e persino il software USB - ma ovviamente queste hanno un sovraccarico.
Chris Stratton,

1
@ChrisStratton Un buon punto. Immagino solo che qualcuno che non conosca la differenza tra un ATtiny nudo o persino un chip ATmega e una scheda Arduino non abbia idea di cosa significhi qualcosa del genere (porte, debug di runtime, software USB, ecc.), Quindi io dubito che avrebbero mai avuto bisogno di usarli. In tal caso, devono davvero imparare un po 'di più su ciò che stanno facendo in modo che siano in grado di risolvere semplici problemi quando vengono rilevati. Poi di nuovo, immagino che sia un po 'la mentalità di tutte le persone anti-arduino come me.
Kurt E. Clothier,

Risposte:


10

Aggiornamento: per rispondere meglio alla domanda, ATTiny può fare tutto ciò che non richiede hardware che manca a ATTiny, che include la porta seriale hardware, hardware i2c o più interrupt. Poiché questo è nascosto nelle Librerie Arduino, a meno che tu non abbia una buona comprensione di come funzionano o leggono i file della libreria effettiva, cose come la libreria Wire (hardware i2c) non funzioneranno.

Da http://forum.arduino.cc/index.php/topic.5582.0.html :

Ad esempio un ATTINY84 ha 1 interrupt, nessun UART hardware (seriale o i2c) e una manciata di pin GPIO, meno spazio per i programmi e molto meno ram ma viene fornito in un pacchetto a 14 pin.

Un ATMEGA328 ha 2 interrupt, 1 hardware UART, più RAM più spazio per il programma e più GPIO, il che è fantastico, se ne hai davvero bisogno.

Inoltre, la maggior parte di ATTiny non ha moltiplicazioni hardware, quindi un compilatore dovrebbe fare moltiplicazioni non di base 2 nel software.

Infine, gli Arduinos si affidano a un bootloader anziché alla programmazione SPI, quindi è necessario un ATTiny con almeno 4 ~ 8kb di flash per poter funzionare con il bootloader di Arduino.

ATTiny44 / 45/84/45/2313 sono popolari come micro-Arduinos. Hanno circa un quarto o ottavo della ram e del flash di un ATMega328 che Arduino Uno ufficiale usa.

Ci sono molti ATTiny, quindi nessuna singola affermazione può essere detta su tutti.

Vedi anche qui: http://hlt.media.mit.edu/?p=1695


5

La maggior parte degli operatori non ha un modulo USART hardware, quindi non sarai in grado di comunicare con loro via seriale. Per alcuni operatori invece di periferiche hardware I2C e SPI dedicate esiste una periferica USI semplificata per la quale è necessario scrivere un po 'di codice colla per implementare la comunicazione SPI o I2C. Alcuni attinys non hanno ADC.

In generale, devi essere più attento quando scegli l'attiny per il tuo progetto, perché quelli tendono a non avere un set completo di funzionalità disponibili in atmega328 di Arduino. Ad esempio attiny2313 ha un UART ma non ha ADC, attiny44 ha ADC, ma non ha un UART, ecc.

Basta controllare la tabella di selezione del microcontrollore Atmel e un foglio dati all'inizio.


1
La mancanza di un UART hardware! = Non sarà in grado di comunicare via seriale.
Chris Stratton,

@ChrisStratton vero, puoi sbatterlo un po 'di emulare via USI
miceuz

1

Un punto banale se rilevante, oltre alle eccellenti risposte già pubblicate:

La maggior parte delle schede Arduino, senza contare Pro Mini / Pro Micro e forse altre rare, contengono oltre al microcontrollore principale, un secondo AVR o qualche altra parte dell'interfaccia USB. Ciò consente non solo la programmazione di Arduino da un computer, ma anche il debug del terminale seriale di runtime. La stessa connessione USB fornisce anche alimentazione ad Arduino.

Mentre ovviamente i requisiti di alimentazione di ATTiny saranno stati risolti nella progettazione, il debug del codice in fase di esecuzione utilizzando il software del terminale può essere molto utile.


1
Alcune schede attiny risolvono questo problema con il software USB.
Chris Stratton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.