Что ATtiny не может сделать, что Arduino может?


12

Вдохновленный этим видео на YouTube «Сделай журнал» , я бы хотел использовать чипы ATtiny вместо Arduino для большинства моих проектов. Автор видео предупреждает, что некоторые функции Arduino не будут работать на ATtinys. Есть ли полный список того, что есть и не поддерживается?


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

1
Здесь речь идет не о загрузчике (вы можете использовать внешний программист), но некоторые библиотеки просто не компилируются с рабочим кодом (я даже понял, что не все тоже будут выдавать ошибки). Насколько мне известно, нет списка того, какие функции работают, а какие нет, но это не помешает научиться понимать, как программировать аппаратное обеспечение напрямую, потому что большинство функций Arduino идут с небольшим количеством накладных расходов. Вы не должны хотеть таких функций, как pinMode();и digitalWrite();на ATtiny, просто прямо к соответствующим регистрам DDRx, PORTxнапрямую. Много похожих функций можно найти.
Джиппи

1
Для подавляющего большинства проектов Arduino, которые я видел, чипы ATtiny были бы достаточно способными. По большей части вы будете программировать через SPI вместо загрузчика и писать код на C или Assembly вместо типичного Arduino, копировать и вставлять из учебников.
Курт Э. Клотье

@ Курт на самом деле есть порты для большей части библиотек времени выполнения 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 (Serial или i2c) и небольшое количество выводов GPIO, меньше места для программы и гораздо меньше оперативной памяти, но поставляется в 14-контактном корпусе.

У ATMEGA328 есть 2 прерывания, 1 аппаратный UART, больше оперативной памяти, больше места для программ и больше GPIO, что отлично, если вам это действительно нужно.

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

Наконец, Arduinos полагается на загрузчик, а не на spi-программирование, поэтому для работы с загрузчиком Arduino вам потребуется ATTiny с флэш-памятью не менее 4 ~ 8 КБ.

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

Есть много ATTiny, поэтому ни одно утверждение не может быть сказано о них всех.

Также смотрите здесь: http://hlt.media.mit.edu/?p=1695


5

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

В общем, вы должны быть более осторожны при выборе attiny для вашего проекта, потому что те, как правило, не имеют полного набора функций, доступных в Arduino atmega328. Например, у attiny2313 есть UART, но нет АЦП, в attiny44 есть АЦП, но нет 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.