Arduino за 1$ / Geektimes. В качестве вступления, я не буду пространно рассказывать о том, как люди, в руках паяльника не державшие, слова «программатор» не знающие, вместе с детьми радостно втыкают провода в разъемы электронного «конструктора» под названием Arduino. И никаким словом не помяну лагерь «хардкорщиков», считающих это баловством и/или надругательством над самой идеологией микроконтроллеров. Скажу за себя — мне Arduino нравится. Тем, что можно быстро что- нибудь работающее соорудить.
По сути, мне не нравятся только цены. Ну, дорого же. Модуль на порядок дороже использованного в нем микроконтроллера. Такие размышления неоднократно подталкивали меня к тому, чтобы «соскочить», но потом я открывал Aliexpress и заказывал очередную порцию. Китайская версия Arduino Nano — 3- 4$.
Pro Mini (без USB) — 2- 3$. Потом стало интересно — а где предел минимальной розничной (или микрооптовой) цены.
Но так, чтобы можно было работать, а не искать хаки с целью сэкономить пару байт. Пара вопросов к всемирному разуму, кратчайшее изучение матчасти, решение: «Буду ковыряться с ATTiny, но чтобы с Arduino». Прежде чем перейти к железу, софту, граблям и проклятиям, упомяну о характере решаемых задач. Всего два примера. Первый — это четырехканальный таймер для включения и выключения светильников над клетками с птичками. Второй — контроллер светодиодной ленты для освещения неэлектрифицированного гаража (защита от переразряда свинцового аккумулятора, ШИМ- управление яркостью). Примитивно, но за копейки готовых решений нет.
ATtiny 4. 4ATtiny 8. ATtiny 4. 5ATtiny 8. Примечание. Макс. Рассматривать будем микроконтроллеры ATtiny 4. Базовые характеристики приведены в табличке. У меня в качестве подопытных 8. DIP- корпусе, с ценою в 1$ за штуку при покупке десятка у китайцев.
Чего можно добиться? На ATTiny 8. 5 можно использовать 5 выводов (RESET не рассматриваем, его полезное использование в случае с Arduino сопряжено с битьем в бубен приличного диаметра). На трех доступен АЦП, на двух — ШИМ. То есть, моя вторая задачка- иллюстрация (там нужно 2 канала АЦП, один ШИМ и один светодиод) уже отлично решается.
ATtiny 8. 4 позволяет использовать 1. Как программировать? Проще всего — через ISP. В качестве программатора можно использовать плату Arduino, или копеечный ISP- программатор. На сцене появляются первые грабли.
Для экспериментов были заказаны ATtiny 8. Последний уверенно определялся ПК как USB HID устройство.
Микроконтроллеры AVR Atmel семейства ATmega и ATtiny: описания, характеристики, даташиты на русском языке, подбор . Вальтер Скотт Произведения на этой странице. Вот полное описание МК AVR на русском языке - перевод ДатаШита : AVR ATmega русский ДШ.
Это плохо, в таком виде гаджет можно использовать с минимальным количеством ПО, Arduino IDE туда не входит. Впрочем, беглое гугление показало — проблема известна и решаема.
Есть готовая прошивка, превращающие чудо китайской науки в USBASP. Да- да, я беру второй программатор (это было найденное в закромах сомнительное поделие под названием SP3. ISP- кабелем с первым, оба втыкаю в USB, ставлю в софте SP3. ATmega. 8 ISP, и через долю секунды получаю вожделенный USBASP. Arduino IDEДля того, чтобы работать с ATtiny, нужно добавить в IDE описания плат (по факту — чипов). Я использовал вот эти.
Описания кладутся в папку со скетчами следующим образом: %папка- со- скетчами%\hardware\attiny, там будут каталог Variants и файл boards. Материализация вторых граблей. Устанавливаю чип в «хлебную доску», подключаю к программатору, устанавливаю резистор в 1. КОм (Потенциально лишняя рекомендация, подтягивающий резистор встроен. Но в электромагнитно- шумной среде, как пишут в комментах, в апноуте рекомендуют его ставить, чтобы исключить случайный сброс.) между плюсом питания и выводом RESET (т.
Выбираю в IDE программатор USBASP, пытаюсь прошить bootloader — и тишина. Точнее, AVRDude утверждает, что нет связи с микроконтроллером. Ларчик открывается просто, но не совсем очевидно. Дело в том, что «голая» ATtiny не прошивается с настройками AVRDude, используемыми в Arduino IDE. Слишком высокая частота тактирования при ISP- программировании.
Более того, эту частоту нельзя указать в настройках IDE. Решение: берем AVRDude и прошиваем посредством командной строки фьюзы ATTiny таким образом, чтобы чип тактировался от внутренего генератора с частотой 8 МГц. При этом указываем малую частоту (если быть точным — указывается не частота, а длительность такта) тактирования при ISP- программировании (ключ - B). В итоге, «волшебная строка» выглядит следующим образом: avrdude - p t. U lfuse: w: 0x. C2: m - U hfuse: w: 0x.
DF: m - U efuse: w: 0x. FF: m - B 5. После этого ATtiny 8. Arduino IDE. Проверка работоспособности производится с помощью легендарного демонстрационного проекта Blink. Меняем в скетче пин с 1. ATtiny 8. 5), подключаем светодиод и резистор, выполняем загрузку с помощью программатора.
Светодиод мигает, цель достигнута. Итого. Делаем вывод, что с микроконтроллерами ATtiny 8. Arduino IDE. Желающие могут придти в ужас от того, что код моргания светодиодом бодренько кушает почти килобайт памяти (при 8 доступных). Сделать однозначный вывод о практической ценности проведенных изысканий я не могу (экономия небольшая, а памяти и выводов мало), но это было достаточно забавно. Источник вдохновения (англ.).