Czego ATtiny nie mogą zrobić, co potrafi Arduino?

12

Zainspirowany tym filmem z youtube Make Magazine , chciałbym używać układów ATtiny zamiast Arduino w większości moich projektów. Autor wideo ostrzega, że ​​niektóre funkcje Arduino nie będą działać na ATtinys. Czy istnieje pełna lista tego, co jest obsługiwane i nie jest obsługiwane?

DudeOnRock
źródło
1
Z tego, co przeczytałem (co nie jest zbyt wiele), nie wszystkie ATtinys mają wystarczającą ilość pamięci flash dla bootloadera Arduino. Prawdopodobnie nadal możesz kompilować przez Arduino i przesyłać osobno za pośrednictwem AVRdude.
Ignacio Vazquez-Abrams
1
Tu nie chodzi o bootloader (możesz użyć zewnętrznego programatora), ale niektóre biblioteki po prostu nie kompilują się do działającego kodu (nawet zrozumiałem, że nie wszystkie też będą zgłaszały błędy). Według mojej najlepszej wiedzy nie ma listy, które funkcje działają, a które nie, ale nie szkodzi, że i tak rozumiem, jak programować sprzęt bezpośrednio, ponieważ większość funkcji Arduino wiąże się z dość dużym obciążeniem. Nie musi chcieć funkcje jak pinMode();i digitalWrite();na ATtiny, tylko prawo do odpowiednich rejestrów DDRx, PORTxbezpośrednio. Można znaleźć wiele podobnych funkcji.
jippie
1
W przypadku większości projektów Arduino, które widziałem, chipy ATtiny byłyby bardzo zdolne. W przeważającej części programujesz za pomocą SPI zamiast bootloadera i piszesz kod w C lub asemblerze zamiast typowej kopii i wklejania Arduino z samouczków.
Kurt E. Clothier
@Kurt faktycznie ma porty większości bibliotek uruchomieniowych Arduino, a nawet oprogramowania USB - ale oczywiście mają one narzut.
Chris Stratton
1
@ChrisStratton Dobra uwaga. Po prostu wyobrażam sobie, że ktoś, kto nie zna różnicy między czystym układem ATtiny, a nawet układem ATmega, a płytką Arduino, nie ma pojęcia, co to w ogóle oznacza (porty, debugowanie w czasie wykonywania, oprogramowanie USB itp.), Więc wątpię, by kiedykolwiek musieli ich użyć. Jeśli tak, to naprawdę muszą dowiedzieć się nieco więcej o tym, co robią, aby byli w stanie rozwiązać proste problemy w miarę ich napotykania. Z drugiej strony, wydaje mi się, że taki jest sposób myślenia wszystkich ludzi przeciw arduino, takich jak ja.
Kurt E. Clothier

Odpowiedzi:

10

Aktualizacja: Aby lepiej odpowiedzieć na pytanie, ATTiny mogą zrobić wszystko, co nie wymaga sprzętu, którego brakuje ATTiny, w tym sprzętowy port szeregowy, sprzętowy i2c lub wiele przerwań. Ponieważ jest to ukryte w bibliotekach Arduino, chyba że dobrze rozumiesz, jak one działają lub czyta rzeczywiste pliki bibliotek, rzeczy takie jak biblioteka Wire (sprzęt i2c) nie będą działać.

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

Na przykład ATTINY84 ma 1 przerwanie, brak sprzętowego UART (szeregowy lub i2c) i niewielką garść styków GPIO, mniej miejsca na program i znacznie mniej pamięci RAM, ale jest w pakiecie 14-pinowym.

ATMEGA328 ma 2 przerwań, 1 sprzętowy UART, więcej pamięci RAM i więcej przestrzeni programowej i więcej GPIO, co jest świetne, jeśli naprawdę tego potrzebujesz.

Dodatkowo, większość ATTiny nie ma mnożenia sprzętowego, więc kompilator musiałby wykonać mnożenie oprogramowania inne niż base-2.

Wreszcie Arduinos polegają na bootloaderze zamiast na programowaniu spi, więc potrzebujesz ATTiny z co najmniej 4 ~ 8kb flash, aby mogły współpracować z bootloaderem Arduino.

ATTiny44 / 45/84/45/2313 są popularne jako mikro-Arduinos. Mają około czwartej lub ósmej pamięci RAM i flashowania ATMega328, którego używa oficjalne Arduino Uno.

Istnieje wiele ATTiny, więc nie można powiedzieć o nich wszystkich.

Zobacz także tutaj: http://hlt.media.mit.edu/?p=1695

Przechodzień
źródło
5

Większość attinys nie ma sprzętowego modułu USART, więc nie będziesz w stanie komunikować się z nimi przez port szeregowy. Dla niektórych attinys zamiast dedykowanych urządzeń peryferyjnych I2C i SPI istnieje uproszczone urządzenie peryferyjne USI, dla którego musisz napisać trochę kodu kleju, aby zaimplementować komunikację SPI lub I2C. Niektóre attinys nie mają ADC.

Ogólnie rzecz biorąc, musisz być bardziej ostrożny przy wyborze attiny dla swojego projektu, ponieważ zwykle nie mają pełnego zestawu funkcji dostępnych w atmega328 Arduino. Na przykład attiny2313 ma UART, ale nie ma ADC, attiny44 ma ADC, ale nie ma UART itp.

Wystarczy sprawdzić tabelę wyboru mikrokontrolera Atmel i arkusz danych na początku.

miceuz
źródło
1
Brak sprzętu UART! = Nie będzie w stanie komunikować się przez port szeregowy.
Chris Stratton
@ChrisStratton true, możesz bit hukiem emulować przez USI
miceuz
1

Trywialny, w razie potrzeby, punkt powyżej doskonałych odpowiedzi już opublikowanych:

Większość płyt Arduino, nie licząc Pro Mini / Pro Micro i być może rzadkich innych, zawiera oprócz głównego mikrokontrolera drugą AVR lub inną część interfejsu USB. Umożliwia to nie tylko programowanie Arduino z komputera, ale także debugowanie szeregowego terminala w czasie wykonywania. To samo połączenie USB zapewnia również zasilanie Arduino.

Chociaż oczywiście zapotrzebowanie na moc ATTiny zostanie uwzględnione w twoim projekcie, debugowanie kodu w czasie wykonywania przy użyciu oprogramowania terminala może być bardzo przydatne.

Anindo Ghosh
źródło
1
Niektóre karty Attiny rozwiązują ten problem z oprogramowaniem USB.
Chris Stratton