В небольших «проектах выходного дня» я предпочитаю использовать Arduino. Причин тому две — чрезвычайная легкость программирования и отсутствие необходимости изготовления печатной платы (макетка + МГТФ). Например, понадобилось мне сделать контроллер для светодиодной ленты (питание от аккумулятора, контроль разряда, ШИМ-управление яркостью) — берется китайский клон Arduino Nano, три транзистора, еще немножко рассыпухи, несколько взмахов паяльником, полчаса топтания клавиатуры, и готово. Куда больше времени ушло на подбор корпуса, радиатора, установку разъемов и т.д.
В процессе «брожения» вокруг Arduino мне всегда хотелось минимизировать затраты. Поэтому только Aliexpress. Клон Arduino Nano — 3-4$. Pro mini (без USB) — 2-3$. А можно еще дешевле? Как оказалось, да. Для примитивных проектов (когда не нужно МНОГО входов-выходов), вполне годятся микроконтроллеры ATtiny. Так, например, в ATtiny 85 можно использовать пять выводов. На трех доступен АЦП, на двух — ШИМ. Стоимость этой мелочи — порядка 1$ (при покупке десятка).
Работать с ATtiny проще всего через ISP. Программатор, стало быть, нужен. Тоже китайский, чтобы работал как USBASP. Мне попался девайс, определяющийся как USB HID, что добавило перцу — для превращения этого чуда в USBASP потребовался второй программатор. В качестве ISP-программатора также можно использовать плату Arduino, но мы же не ищем легких путей.
Казалось бы, дальше все просто — подключаем к Arduino IDE описания ATtiny, выбираем программатор, заливаем bootloader, а затем — скетчи. Но не тут-то было.
AVRDude, работающий в составе Arduino, категорически отказывался записывать что-либо в ATtiny. Я перепробовал много всякого, обложил макетную плату сначала осциллографами и бубнами, затем — матами. Озарение через некоторое время пришло. В «голую» ATtiny надо прошить фьюзы, потому что в изначальном состоянии (на дефолтной скорости тактирования при программировании) она просто НЕ ПРОГРАММИРУЕТСЯ.
Волшебная строка AVRDude выглядела так:
avrdude -p t85 -c usbasp -U lfuse:w:0xC2:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -B 5
После этого ATtiny 85 стала работать на 8 МГц с тактированием от внутреннего генератора и корректно прошиваться через Arduino IDE.
Что характерно, можно использовать и другие ATtiny, например, у 84-й больше входов-выходов. Но целесообразность уже сомнительна — стоимость их приближается к цене готовой Arduino Pro mini на базе ATmega.