Що не може Аттині зробити те, що може Arduino?


12

Натхненний цим відео на YouTube Make Magazine , я хотів би використати фішки ATtiny замість Arduino для більшості моїх проектів. Автор відео попереджає, що деякі функції Arduino не працюватимуть на ATtinys. Чи є повний перелік того, що є, а що не підтримується?


1
З того, що я прочитав (що, правда, не дуже), не всі ATtinys мають достатньо спалаху для завантажувача Arduino. Можливо, ви все ще можете компілювати через Arduino та завантажувати через AVRdude окремо, хоча.
Ігнасіо Васкес-Абрамс

1
Тут не йдеться про завантажувач програми (ви можете використовувати зовнішній програміст), але деякі бібліотеки просто не компілюються в робочий код (я навіть зрозумів, що не всі також викличуть помилки). Наскільки мені відомо, не існує списку, які функції працюють, а які не, але це не завадить навчитися розуміти, як правильно програмувати апаратне забезпечення, оскільки більшість функцій Arduino оснащені досить трохи. Ви не повинні хотіти функції , як pinMode();і digitalWrite();на Attiny, тільки право на відповідні регістри DDRx, PORTxбезпосередньо. Можна знайти багато подібних функцій.
jippie

1
Для переважної більшості проектів Arduino, які я бачив, фішки ATtiny були б досить здатні. Здебільшого ви б програмували через SPI замість завантажувача, а писали код на C або Assembly замість типової копії та вставки Arduino з навчальних посібників.
Курт Е. Клотьє

@Kurt насправді є порти більшої частини бібліотек виконання Arduino і навіть програмне забезпечення USB - але, звичайно, вони мають накладні витрати.
Кріс Страттон

1
@ChrisStratton Добрий момент. Я просто уявляю, що той, хто не знає різниці між голою ATtiny або навіть чіпом ATmega та платою Arduino, не має уявлення, що це означає (порти, налагодження під час роботи, USB-програмне забезпечення тощо), тож я сумніваюся, що коли-небудь їм потрібно буде користуватися. Якщо так, то їм дійсно потрібно дізнатися трохи більше про те, що вони роблять, щоб вони могли вирішити прості проблеми, як стикаються. Знову ж таки, я здогадуюсь, такий спосіб мислення всіх антиардуїнських людей, як я.
Курт Е. Клотьє

Відповіді:


10

Оновлення: Щоб краще відповісти на питання, ATTiny може зробити все, що не вимагає апаратного забезпечення, відсутнє в ATTiny, серед яких послідовний порт обладнання, апаратний i2c або кілька переривань. Оскільки це приховано далеко в бібліотеках Arduino, якщо ви добре не розумієте, як вони працюють чи читають фактичні бібліотечні файли, такі речі, як бібліотека Wire (апаратне i2c), не працюватимуть.

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

Наприклад, ATTINY84 має 1 переривання, без апаратних UART (серійний або i2c) і невелику жменю GPIO-штифтів, менше програмного простору та набагато менше оперативної пам’яті, але постачається у 14-контактному пакеті.

ATMEGA328 має 2 переривання, 1 апаратне UART, більше оперативної пам’яті, більше програмного простору та більше GPIO, що чудово, якщо вам це справді потрібно.

Крім того, більшість ATTiny не мають апаратного множення, тому компілятору доведеться робити множення не на базі-2 у програмному забезпеченні.

Нарешті, Arduinos покладається на завантажувач, а не програмування spi, тому для роботи з завантажувачем Arduino вам потрібна ATTiny з принаймні 4 ~ 8 кбіт спалахом.

ATTiny44 / 45/84/45/2313 користуються популярністю як мікро-Arduinos. У них близько четвертої або восьмої частини тарана і спалаху ATMega328, який використовує офіційний Arduino Uno.

Є багато ATTiny, тому про них не можна сказати жодної заяви.

Також дивіться тут: http://hlt.media.mit.edu/?p=1695


5

Більшість атрибутів не мають апаратного модуля USART, тому ви не зможете спілкуватися з ними за допомогою серійної. Для деяких attinys замість виділених апаратних периферійних пристроїв I2C та SPI існує спрощена периферія USI, для якої вам потрібно написати трохи клейового коду, щоб здійснити комунікацію SPI або I2C. У деяких аттинів немає АЦП.

Взагалі, ви повинні бути обережнішими при виборі уваги для свого проекту, оскільки вони, як правило, не мають повного набору функцій, доступних в atmega328 Arduino. Наприклад, attiny2313 має UART, але не має АЦП, attiny44 має ADC, але не має UART тощо.

Просто перевірте таблицю вибору мікроконтролерів Atmel та таблицю даних на початку.


1
Відсутність апаратного UART! = Не зможе спілкуватися через серійний.
Кріс Страттон

@ChrisStratton правда, ви можете покусати емуляцію через USI
miceuz

1

Тривіальна, якщо відповідна точка, вище та вище відмінні відповіді, вже розміщені:

Більшість плат Arduino, не рахуючи Pro Mini / Pro Micro і, можливо, рідкісні інші, містять, крім основного мікроконтролера, або другий AVR або іншу частину інтерфейсу USB. Це дозволяє не просто програмувати Arduino з комп'ютера, але і налагоджувати послідовний налагодження послідовного терміналу. Це ж USB-з'єднання також забезпечує живлення Arduino.

Хоча, очевидно, вимоги до живлення ATTiny будуть розглянуті у вашому дизайні, відладочний код під час виконання програми за допомогою термінального програмного забезпечення може бути дуже зручним.


1
Деякі дощові дошки вирішують цю проблему із програмним USB.
Кріс Страттон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.