Arduino за 1$



В качестве вступления, я не буду пространно рассказывать о том, как люди, в руках паяльника не державшие, слова «программатор» не знающие, вместе с детьми радостно втыкают провода в разъемы электронного «конструктора» под названием Arduino. И никаким словом не помяну лагерь «хардкорщиков», считающих это баловством и/или надругательством над самой идеологией микроконтроллеров.

Скажу за себя — мне Arduino нравится. Тем, что можно быстро что-нибудь работающее соорудить. По сути, мне не нравятся только цены. Ну, дорого же. Модуль на порядок дороже использованного в нем микроконтроллера. Такие размышления неоднократно подталкивали меня к тому, чтобы «соскочить», но потом я открывал Aliexpress и заказывал очередную порцию. Китайская версия Arduino Nano — 3-4$. Pro Mini (без USB) — 2-3$.

Потом стало интересно — а где предел минимальной розничной (или микрооптовой) цены. Но так, чтобы можно было работать, а не искать хаки с целью сэкономить пару байт. Пара вопросов к всемирному разуму, кратчайшее изучение матчасти, решение: «Буду ковыряться с ATTiny, но чтобы с Arduino».

Прежде чем перейти к железу, софту, граблям и проклятиям, упомяну о характере решаемых задач. Всего два примера. Первый — это четырехканальный таймер для включения и выключения светильников над клетками с птичками. Второй — контроллер светодиодной ленты для освещения неэлектрифицированного гаража (защита от переразряда свинцового аккумулятора, ШИМ-управление яркостью). Примитивно, но за копейки готовых решений нет.

ATtiny 44 ATtiny 84 ATtiny 45 ATtiny 85 Примечание
Макс. частота, МГц 8 8 8 8 От внутреннего генератора
RAM, байт 256 512 256 512
Flash, Кб 4 8 4 8
I/O выводов 11 11 5 5 RESET не считаем
Цена, $ 1.66 1.8 1.49 1.69 Розница DigiKey, просто для сравнения


Ладно, к делу. Рассматривать будем микроконтроллеры ATtiny 44/84 и 45/85. Базовые характеристики приведены в табличке. У меня в качестве подопытных 85-е в DIP-корпусе, с ценою в 1$ за штуку при покупке десятка у китайцев.

Чего можно добиться?

На ATTiny 85 можно использовать 5 выводов (RESET не рассматриваем, его полезное использование в случае с Arduino сопряжено с битьем в бубен приличного диаметра). На трех доступен АЦП, на двух — ШИМ. То есть, моя вторая задачка-иллюстрация (там нужно 2 канала АЦП, один ШИМ и один светодиод) уже отлично решается. ATtiny 84 позволяет использовать 11 выводов, но дороже — а у нас спортивное удешевление.

Как программировать?



Проще всего — через ISP. В качестве программатора можно использовать плату Arduino, или копеечный ISP-программатор.

На сцене появляются первые грабли

Для экспериментов были заказаны ATtiny 85 и, собственно, программатор. Последний уверенно определялся ПК как USB HID устройство. Это плохо, в таком виде гаджет можно использовать с минимальным количеством ПО, Arduino IDE туда не входит. Впрочем, беглое гугление показало — проблема известна и решаема. Есть готовая прошивка, превращающие чудо китайской науки в USBASP.



Да-да, я беру второй программатор (это было найденное в закромах сомнительное поделие под названием SP300), соединяю его ISP-кабелем с первым, оба втыкаю в USB, ставлю в софте SP300 пункт назначения — ATmega8 ISP, и через долю секунды получаю вожделенный USBASP.

Arduino IDE



Для того, чтобы работать с ATtiny, нужно добавить в IDE описания плат (по факту — чипов). Я использовал вот эти. Описания кладутся в папку со скетчами следующим образом: %папка-со-скетчами%\hardware\attiny, там будут каталог Variants и файл boards.txt.

Материализация вторых граблей

Устанавливаю чип в «хлебную доску», подключаю к программатору, устанавливаю резистор в 10 КОм (Потенциально лишняя рекомендация, подтягивающий резистор встроен. Но в электромагнитно-шумной среде, как пишут в комментах, в апноуте рекомендуют его ставить, чтобы исключить случайный сброс.) между плюсом питания и выводом RESET (т.к. сигнал сброса низкого уровня). Выбираю в IDE программатор USBASP, пытаюсь прошить bootloader — и тишина. Точнее, AVRDude утверждает, что нет связи с микроконтроллером.



Ларчик открывается просто, но не совсем очевидно. Дело в том, что «голая» ATtiny не прошивается с настройками AVRDude, используемыми в Arduino IDE. Слишком высокая частота тактирования при ISP-программировании. Более того, эту частоту нельзя указать в настройках IDE.

Решение: берем AVRDude и прошиваем посредством командной строки фьюзы ATTiny таким образом, чтобы чип тактировался от внутренего генератора с частотой 8 МГц. При этом указываем малую частоту (если быть точным — указывается не частота, а длительность такта) тактирования при ISP-программировании (ключ -B). В итоге, «волшебная строка» выглядит следующим образом:

avrdude -p t85 -c usbasp -U lfuse:w:0xC2:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -B 5

После этого ATtiny 85 нормально прошивается через Arduino IDE. Проверка работоспособности производится с помощью легендарного демонстрационного проекта Blink. Меняем в скетче пин с 13-го на 4-й (это 3-й вывод ATtiny 85), подключаем светодиод и резистор, выполняем загрузку с помощью программатора. Светодиод мигает, цель достигнута.

Итого

Делаем вывод, что с микроконтроллерами ATtiny 85 (а также 44, 84, 45) вполне можно работать через Arduino IDE. Желающие могут придти в ужас от того, что код моргания светодиодом бодренько кушает почти килобайт памяти (при 8 доступных).



Сделать однозначный вывод о практической ценности проведенных изысканий я не могу (экономия небольшая, а памяти и выводов мало), но это было достаточно забавно.

Источник вдохновения (англ.)
Share post

Comments 126

    +7
    Сказать америку вы не открыли. Такое практиковалось и уже довольно таки давно
    Пример
      +2
      У меня зато грабли прикольные. Впрочем, спасибо за намек на ATmega 8. Они стоят как ATTiny 85, но при этом возможностей побольше.
        0
        Возможностей у ATTiny85 как бы не побольше. Например встроенный ОУ.
          +1
          Ну, тут еще вопрос, что из этих возможностей беспроблемно используемо через Arduino.
          Я имел в виду тупо количество входов-выходов общего назначения.
            0
            А, ну тут да. И памяти в меге поболе.
            +1
            Да, ATTiny почему-то считают дешёвой версией, хотя в большей степени это — специализированная версия AVR'ок, которая может лучше подходить под конкретную задачу.
            +7
            Вам бы лучше на STM-ки перейти. Там возможностей в разы больше
              +1
              Думал над этим. Но пока не придумал для себя задачи, где оно бы пригодилось.
                0
                Если стоит вопрос именно «придумать» задачу, предлагаю графику. У Andy Brown есть неплохие наработки в этом направлении. Хоть Ардуино и тянут графику (вплоть до 640х360 на базе экранов от SE Vivaz) вполне прилично, особенно благодаря его наработкам по части ПО, STM все равно выглядит предпочтительней.

                andybrown.me.uk/wk/
                  +2
                  Например FFT-преобразования для тех случаев когда обычного контроллера маловато а DSP применять слишком жирно. Но в STM-ках тоже свои подводные камни есть, и менять мозги надо чтобы эффективно под них программировать. Например, напроч отучиться от ногодрыга — с таким подходом шустрая STM-ка будет работать не быстрее чем обычный контроллер ибо операция управления внешними выводами довольно затратная по времени. Там нужно по максимуму задействовать периферию, а это сродни решению сложной математической задачи или составлению сложного SQL-запроса к базе данных где участвует с десяток таблиц. Не очень многообещающая перспективка для начинающего.
                  0
                  Хочу задать вопрос про STM. Я их всегда вижу уже в готовом виде на платах. Это макетные платы? Я имею ввиду могу я к примеру как с AVR купить просто микроконтроллер и всё остальное сам навешать или получается столько всего, что легче уже с готовой работать?
                    0
                    Можете. Особо сложная внешняя периферия для STM32 не требуется.

                    Вот полезный материал.
                      0
                      Ардуино тоже на платах продают, но ничто не мешает отдельно МК, в т.ч. с заливкой взять, что (отчасти, как подход) и обсуждалось в статье. С STM абсолютно та же ситуация на рынке.
                        –1
                        Можно, и недорого. ru.aliexpress.com/item/5PCS-LOT-100-NEW-ST-STM32F103C8T6-LQFP48-IC-CHIP-STM32F103-STM32-F103C8T6-The-best-price/883946391.html чуть более 100 рублей при покупке 5 шт.
                        Но в «дубовом» DIP-корпусе не делаются, поэтому нужно чуть больше навыков при монтаже.
                          0
                          Да, только у них есть одна проблема — шаг выводов слишком мелкий, для домашнего изготовления уже напряг. И там целый ад с разводкой цепей питания.
                            +1
                            Кстати, совсем не все так страшно.
                            По одному smd керамическому конденсатору с каждого края микроконтроллера между VCC и GND по appnotes.
                            LDO на 3.3v для питания цифровой части. Ну и если используется АЦП, то отдельное питание желательно для аналоговой части. Да и корпуса с 64 выводами и меньше не имеют вход для reference напряжения, к сожалению

                              0
                              Ну и добавлю: они шикарно разводятся, если нацелиться на заводскую двухстороннюю плату. Это по крайней мере не дорого, только долго ждать.
                                +1
                                К этому добавлению также стоит добавить возможность в некотором смысле произвольного (но ограниченного) назначения пинов для периферии — то есть SPI, USART, I2C можно врулить не туда, куда пожелали создатели чипа, на туда, куда удобнее развести дорожки.

                                Руководство, страница 122
                              +2
                              На STM32 при тактирования от внутреннего RC генератора и соответствующей настройки PLL, нужно минимум внешней обвязки. Правда с USB без внешнего кварца вы не поработаете…
                              По поводу пайки, можно легко паять термофеном или нагревая печатную плату с другой стороны чип выравнивается за счет сил поверхностного натяжения припоя
                              0
                              STM хороши и по потолку, и по выхлопу с бакса ценника, но там уже уровень повыше. Об этом тоже забывать не стоит. Да, дешево и эффективно, особенно в руках знающего человека, но не всем оно надо. И уж это не минимализм ни разу.
                          0
                          Вот здесь видео как программят ATTiny.
                          www.instructables.com/id/Simple-Basement-Security-System/
                          Скотт Рулит ) как по своему понятному инглишу так и по содержанию.

                          По мне может и выглядит платка с ATTiny красивее чем нагромождение Duino(пусть минипро) и самопальных шилдов. Но точно дешевле не получится. Последний раз брал Mini Pro за $2,20. И там к слову RAM не какие-то жалкие 512 байт. А целых 2KB!!! ;)))
                            0
                            Все же, зависит от примитивности задачи. Тут вот еще оказывается, что атмега 8 тоже стоит порядка 1$, а там килобайт оперативки, 8 Кб флеша и много ножек.
                              0
                              А для меня критично что из тинек уарт есть только в богоугодной 2313.
                                0
                                Ну опять-таки вопрос задачи. 2313 на ебее находится за $1.6 с фришипом.
                                С другой стороны, если закупаться на таобао, мини про можно найти за $1.7-$1.8, фридуино уно я за $2.75-$3 находил. но там добавится местная пересылка и процент посредника кроме пересылки к себе, т.е. выгодно если брать много у одного продавца.
                                  +1
                                  На али можно найти за тот же пресловутый 1$. Например, www.aliexpress.com/item/ATTINY2313A-SU-ATTINY2313-ATTINY-2313-SOP20-ATMEL-8-bit-MCU-IC-Free-Shipping/2030701115.html. При покупке 5-10 шт вполне.
                                    0
                                    Я говорил про DIP корпус. В сопах можно найти дешевле, а уж если брать 5-10, то тем более можно подумать о тао, т.к. в этом корпусе я за 4 юаня штука что ли находил…
                                      0
                                      Да я сначала написал, а потом подумал. Да, в дипе вкусные цены при более ощутимом количестве, типа как в следующем моем ответе.
                                    +1
                                      +3
                                      Не забываем что 2313 не имеет АЦП… А то потом куча поисковых запросов вижу на свой сайт что-то типа «настройка АЦП attiny2313»…
                                        +2
                                        2313 устарела настолько, что ей место в палеонтологическом музее.
                                0
                                Помню времена, когда AVR называли «PIC-контроллеры системы AVR». Думаю скоро появятся «Как Ардуино, но stm32».
                                  0
                                  Уже есть )
                                    0
                                    Да, причем есть нечто нано-образное за 4$. Закажу поиграться, вдруг понравится.
                                    0
                                    Обалдеть. Они даже IDE клонировали.
                                      +1
                                      И библиотеки, вроде, портируются. Wire и LiquidCrystal, во всяком случае, есть готово-портированные. Надо пощупать.
                                        0
                                        В простых проектах совместимо. bootloader отличный! легко адаптировал его к своему проекту пару лет назад
                                        0
                                        и еще есть netduino, там на (micro)dotnet и visual studio
                                        и еще есть конкурнетская mbed от NXP там вообще онлайновая IDE
                                        На любой вкус и цвет, правда цены в.ру кусаются
                                          +2
                                          Ну, 60$ за нетдуину — это ценник вообще с другой планеты. Для моргания светодиодами больно жирно.
                                            0
                                            Абсолютно с вами согласен, но находятся люди готовые отдать по 50 баксов за arduino, возможностей у которой порядком меньше.
                                              +1
                                              Да, есть такое явление. Но это как раз люди «с улицы», есть у меня такое подозрение. Первый раз простительно.
                                        +2
                                        Правильно, потому что PIC = Peripheral Interface Controller, а у Microchip (даже по самому названию фирмы понятно) — туго с фантазией, поэтому они серию микросхем так обозвали — Peripheral Interface Controller 16F82, например, и так далее

                                        Так что всякий чип AVR является Peripheral Interface Controller в первоначальном смысле этого акронима.
                                          0
                                          Уже и x86 ардуино есть… только дорогая платка и несколько бестолковая в первой версии.
                                          +2
                                          То есть вы просто прикрутили Arduino IDE к голому микроконтроллеру. А зачем? Прелесть Ардуино ведь только и состоит в удобстве его хардвара.
                                            +5
                                            Для меня прелесть Arduino в быстром старте — до идиотизма простая IDE и библиотеки для всяких дисплеев-датчиков-энкодеров. Железо мне не особо нравится, я предпочитаю макетную плату и паяльник.
                                              +2
                                              На самом деле, на простых задачах — ШИМ, АЦП, какая-то несложная внешняя периферия по SPI или I2C — порожек между Arduino IDE и просто C в gcc-avr очень небольшой, а руки переход на голый gcc-avr развязывает сильно.
                                                0
                                                > руки переход на голый gcc-avr развязывает сильно.

                                                А что там такого можно найти?
                                                  +1
                                                  Использование любых AVR, в первую очередь, без плясок «как же к этому ардуиновский IDE прикрутить». Хочу — ATtiny 25, хочу — ATMega32U4.

                                                  Ну и большая скорость, меньше занимаемой памяти, больше свободы в оперировании периферией.
                                                    0
                                                    > больше свободы в оперировании периферией.

                                                    а что оно стандартно не даст?
                                                      +1
                                                      (пожав плечами) Что угодно, чего не предусмотрел автор конкретной библиотеки.
                                                        0
                                                        Там библиотеки — такой же код? Копипастишь и правишь чего тебе не хватает, не?
                                                          +1
                                                          Нет, такой же код там только в высокоуровневых библиотеках. Всё базовое моментально опускается до обычной для микроконтроллеров работы с регистрами, битовыми масками, вот этим вот всем.
                                                +3
                                                Идиотизм — это действительно подходящий эпитет для данной «IDE»
                                                Особенно когда вместо успешной компиляции в отладочное окно вываливается тонна мусора, который абсолютно никак не парсится. И все ради того, чтобы наглухо закопать под волшебными обертками вполне очевидные вещи — нехитрый набор макросов и запуск avr-g++
                                              +1
                                              ATtiny13 бывает достаточно порой.
                                                –1
                                                Читал. Но мне кажется, что если уж использовать Arduino IDE, то 1 килобайт — это жесть.
                                                  0
                                                  Смотря какая стоит задача. Я 100 строк кода забивал в ATtiny13.
                                                  Да и учиться экономить всякими способами нужно с самого начала, а то потом будет срыв стека где-то и всё, думай сутками где что не так.
                                                0
                                                Не может быть за 1$ так как нужна рассыпуха. А главное — для старта ISP и USB-Serial потому 1$ никак…
                                                  +1
                                                  Думаю, придираетесь. ISP да, нужен. Ну, он и вообще в хозяйстве пригодится, и стоит копейки. USB-Serial не знаю, зачем вы тут упомянули. Рассыпуха — возможно, но зависит от конкретной задачи.
                                                    +3
                                                    > Не может быть за 1$ так как нужна рассыпуха.

                                                    Ну, скажем, для первого проекта — поморгать светодиодом — не нужна. А для чего-нибудь серьёзного она нужна в обоих случаях.

                                                    > А главное — для старта ISP и USB-Serial потому 1$ никак…

                                                    Я стартовал припаяв к LPT разъёму 5 проводков, поэтому кроме attiny действительно ничего покупать не понадобилось.
                                                      0
                                                      Не будем обсуждать стоимость PCI-E LPT-контроллера. :) Действительно, тут от многих факторов и подхода зависит.
                                                    0
                                                    Как насчёт $0.60?
                                                      +1
                                                      Интересно, но купить сложнее, чем валяющиеся на каждом углу AVRки.
                                                      0
                                                      Вот к слову про ATTiny, вполне достойное применение ATTiny45:
                                                      sokolsp.at.ua/publ/samyj_miniatjurnyj_usb_programmator_microprog_dlja_kontrollerov_avr/1-1-0-23

                                                      image

                                                      image
                                                        –9
                                                        Скажите, а ее в какие времена начали выпускать? С виду как будто в «советское» производство, пайки сильно большие)
                                                          +3
                                                          Откройте ссылочку и посмотрите. Это старая добрая свобода для самопальщиков без заказа плат и не всем доступных SMD номиналов так по 20 на устройство (и гадай потом, куда остатки в лентах девать). Если не нравится пайка — дело ваше. Лут и навес никто не отменял. Кому-то шашечки, кому-то ехать. Те, кому ехать, уже выкладывали тут обзор кодграббера, сделанного в корпусе пульта ДУ на макетке с ЖК-экраном, многие (включая меня) были приятно удивлены. Слабо повторить?
                                                          +1
                                                          Китайский ISP, по сути, оно и есть, только на меге 8. Ну, плюс кабель и в корпусе.
                                                          0
                                                          Кто нибудь может дать ссылки на адекватное, нормальное описание фьюзов и работы с ними?
                                                          0
                                                          Ой, сколько уже статей в интернете на тему программированию attiny в Arduino…
                                                          Может для начального изучения и пойдет, но у attiny такая простая периферия, что там легко на чистом си писать…
                                                            0
                                                            Вчера получил несколько штук китайских USBISP V3.02 (это которые новые, без перемычек и без стабилизатора 3,3V).
                                                            Определяются как HID устройства. попытка перешить в USBASP не увенчалась успехом — программатор рапорует о том, что не может прошить устройство, IMHO скорее всего залочены какие-то fuse. До этого без проблем перешивал приличное количество USBISP 2.0, 3.0 и 3.01. Быстрое гугление на эту тему обнадеживающих результатов не дало. Есть смысл попробовать прошить fuse указанные в статье?
                                                              0
                                                              Программатор должен быть в состоянии хотя бы определить тип контроллера.
                                                              Он это делает? Вы используете отдельный внутрисхемный программатор?
                                                                0
                                                                Да, конечно, отельный внутрисхемный USB 2 ISP от Prottoss. Прошивал им «китайцев» десятками, а тут засада вышла…
                                                                  0
                                                                  Если программатор читает сигнатуру контроллера, значит можно все фьюзы сбросить (возможно с уничтожением родной прошивки). Если не читает, остается только один способ — внешний параллельный программатор типа такого
                                                                    0
                                                                    Понял, спасибо за наводку. Однако там чип настолько мал, что сам процесс возни с его пайкой наверное дороже выйдет.
                                                                      0
                                                                      А какой там контроллер? Для восьминогих AVR HV-программатор будет попроще, плюс, можно поискать более удобные точки на плате для подпайки.
                                                                    0
                                                                    Засада может быть в том что для контроллера существуют смертельные комбинации фузов, установив которые он может оказаться невидимым для программатора.
                                                                      0
                                                                      Для AVR таких комбинаций нет — контроллер всегда можно восстановить HV-программатором.
                                                                        0
                                                                        Вы размер чипа на V3 плате видели? Можно аппаратно, даже программатор у меня есть, но возня не стоит свеч.
                                                                        У меня даже не знаю что больше — печаль-обида от купленного китайского г-на, которое может есть маленький шанс превратить в нужную вещь или желание максимально донести до интересующихся, что V 3.02 поделку покупать категорически не нужно.
                                                                          0
                                                                          у 8-ногих нет режима параллельного программирования.
                                                                          И все же есть такая комбинация когда даже высоковольтный не поможет — когда вывод сброса сконфигурирован как программный вывод и время задержки старта равно нулю. Даже если вход в режим программирования и был бы возможен во время работы программы то программа первым делом прижимает вывод сброса к земле и адьёс амиго.
                                                                            +1
                                                                            У восьминогих есть возможность работы с HV программатором. Даташит на Tiny85, страница 155.

                                                                            По поводу описанной ситуации — нужно разбираться на эксперименте. Не зря вход в режим программирования достигается подачей 12 вольт на RESET и прочими плясками с пинами.
                                                                              0
                                                                              Сложно подать на вывод сброса 12В если он притянут на землю.
                                                                              Полностью залочить контроллер можно, не помню только в каких errata было такое предупреждение и указана комбинация фузов.
                                                                                +1
                                                                                Подача +12 на RESET — это четвертый шаг алгоритма. До этого еще выполняются манипуляции с питанием, тактовым входом и другими ножками. Нужно Errata искать.
                                                                                  0
                                                                                  Безпроблемное HV программирование подразумевает голый чип.
                                                                                  Это в офиц. документации от Atmel везде прописано.
                                                                                +1
                                                                                У них есть высоковольтный последовательный режим программирования (HVSP).
                                                                                Для HSVP можно использовать:
                                                                                1) фирменный программатор (например avr dragon)
                                                                                2) самоделки типа fuse-доктор (их полно всяких в сети)
                                                                                3) простейшую схемку типа такой
                                                                                sites.google.com/site/wayneholder/attiny-fuse-reset
                                                                                Заметка к данной статье на русском we.easyelectronics.ru/digitdroid/attiny13a-s-zavoda---obychnyy-isp-vam-ne-pomozhet.html
                                                                              0
                                                                              Та да… думаю, что вписано туда изначально что-то не то…
                                                                              Но если это сделали китайцы намеренно, то этим они роют ямку своим новым поделкам ибо народ их больше покупает для переделки в USBasp и для прошивки всяких фич, например I2C master, управление радио-модулями и т.д.

                                                                            0
                                                                            Сейчас вот попробовал ещё раз, тая-же ситуация. Пациент в режим программирования переведен, не впервой.

                                                                            Лог попытки прошить
                                                                            builder@citadel:~/usbasp# avrdude -P /dev/ttyACM0 -c avr910 -p m8 -U flash:w:usbasp_from-usbisp.hex -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m

                                                                            Found programmer: Id = «AVR ISP»; type = S
                                                                            Software Version = U.2; Hardware Version = 0.2
                                                                            Programmer supports buffered memory access with buffersize = 128 bytes.

                                                                            Programmer supports the following devices:
                                                                            Device code: 0x13 = AT90S1200
                                                                            Device code: 0x20 = ATtiny84
                                                                            Device code: 0x28 = AT90S4414
                                                                            Device code: 0x30 = AT90S4433
                                                                            Device code: 0x34 = AT90S2333
                                                                            Device code: 0x38 = AT90S8515
                                                                            Device code: 0x48 = (unknown)
                                                                            Device code: 0x4c = AT90S2343
                                                                            Device code: 0x51 = (unknown)
                                                                            Device code: 0x55 = ATtiny12
                                                                            Device code: 0x56 = ATtiny15
                                                                            Device code: 0x68 = AT90S8535
                                                                            Device code: 0x6c = AT90S4434
                                                                            Device code: 0xffffff86 = (unknown)
                                                                            Device code: 0xffffff87 = (unknown)
                                                                            Device code: 0x3a = ATMEGA8515
                                                                            Device code: 0x41 = ATMEGA103
                                                                            Device code: 0x43 = ATMEGA128
                                                                            Device code: 0x45 = ATMEGA64
                                                                            Device code: 0x5e = ATtiny4313
                                                                            Device code: 0x60 = ATMEGA161
                                                                            Device code: 0x62 = (unknown)
                                                                            Device code: 0x64 = ATMEGA163
                                                                            Device code: 0x69 = ATMEGA8535
                                                                            Device code: 0x72 = ATMEGA32
                                                                            Device code: 0x74 = ATMEGA6450
                                                                            Device code: 0x76 = ATMEGA8
                                                                            Device code: 0x78 = ATMEGA169

                                                                            avrdude: error: programmer did not respond to command: enter prog mode
                                                                              +1
                                                                              Глупое предположение: не стоит попробовать со скоростью и тактированием поиграть (-b и -B)?
                                                                                0
                                                                                Пробовал, не помогло.
                                                                                Если есть какие-то конкретные примеры, готов попробовать еще раз.
                                                                                  +1
                                                                                  Не, конкретики нет. Я в этом предположении отталкивался только от того, что у меня ATtiny не шились с настройками по умолчанию, а с -B 5 и выше — легко.
                                                                            +1
                                                                            У меня fuse указаны для ATtiny, не для программатора (мой на mega 8). Не могу вам дать какого-то внятного совета, ибо опыта пока мало.
                                                                            0
                                                                            Я могу сказать, что программирую свои ATTiny4x/5x через USBTiny ISP (стоимостью $5) просто из Arduino IDE без всяких граблей! Ставишь библиотеки для Arduino, выбираешь правильный контроллер из списка, и готово — при дефолтных fuse'ах.
                                                                              +1
                                                                              Может быть, мне не повезло с программатором или партией контроллеров. Потому что вторые грабли, как я понял, мало распространены.
                                                                              0
                                                                              У меня ситуация обратная. Раньше сидел на ATmega8 и 48, покупал их много, все проекты были на них. Когда вышла в свет Arduino отнесся к ней скептически, не понимал почему столько шума вокруг этой отладочной платы. Время шло, проекты усложнялись, и в итоге стало мало флеш памяти. Принял решение пересаживаться на ATmega328, причем в составе Arduino Pro Mini за $2.5 и считаю это выгоднее! Большой спрос на Arduino сделал свое дело, за эти деньги получаю не только чип но и полно нужных деталей: кварцевый резонатор, стаб, гребенку контактов, кнопку и т.д. Все детали с Arduino идут в дело! На мой взгляд в составе Arduino выходит дешевле, чем покупать все по отдельности.
                                                                                +2
                                                                                Эффект люто массового производства. Действительно, Pro Mini заметно дешевле используемой рассыпухи по розничным ценам.
                                                                                +2
                                                                                > устанавливаю резистор в 10 КОм между плюсом питания и выводом RESET (т.к. сигнал сброса низкого уровня).
                                                                                Это лишнее — в МК уже есть встроенный подтягивающий резистор на RESET.
                                                                                  0


                                                                                  Да, вы правы. Такую рекомендацию люди в интернетах откуда-то придумывают, а я в даташит заглянуть поленился.
                                                                                  +3
                                                                                  Это совсем не лишнее — без резистора контроллер будет ловить помехи из окружающей среды и произвольно сваливаться в RESET.

                                                                                  The reset line has an internal pull-up resistor, but if the environment is noisy it can be insufficient and reset can therefore occur sporadically. Refer to datasheet for value of pull-up resistor on specific devices.

                                                                                  This pull-up resistor makes sure that reset does not go low unintended.
                                                                                  Линия RESET имеет встроенный подтягивающий резистор, но в зашумленной окружающей электромагнитной среде его может быть недостаточно. Сверяйтесь с даташитом для того, чтобы правильно выбрать номинал резистора.

                                                                                  Этот резистор позволяет гарантировать, что сброс не произойдет случайно.

                                                                                  Оригинальный документ, страница 4.
                                                                                    0
                                                                                    Спасибо. Теперь есть ясность.
                                                                                      0
                                                                                      Я правильно понимаю, что помеха с перезагрузкой может произойти, например, в момент переключения выходов микроконтроллера, когда какое-то время начинает идти приличный ток и «земля» плывет?
                                                                                        +2
                                                                                        Да, может. Тут ещё от грамотной разводки зависит. Но больше всего вероятность этого — если на плате есть мощные коммутирующие элементы + индуктивная нагрузка, например драйвер электродвигателя, реле, и т.д.
                                                                                        Часто при проектировании таких устройств даже внешний резистор не ставят, а тупо сажают RESET на VCC в финальном варианте, это исключит возможность внутрисхеммного программирования (контроллер впаивается уже прошитый), но повысит надёжность.
                                                                                          0
                                                                                          О. А можно же просто джампер поставить. Снял, запрограммировал, вернул на место. Хотя, если контроллер в колодке и вставляется запрограммированным, ISP можно вообще не разводить.
                                                                                            +1
                                                                                            Ну, джампер опять же подразумевает, что устройство будет перешиваться/ремонтироваться.
                                                                                            Вспомнилось — мне однажды приходилось в одном проекте участвовать, там код в МК примитивный, да и устройство в принципе тоже, но работало в скважине. Плата целиком заливалась мягким герметиком, монтировалась в корпус, а потом эпоксидной смолой. То есть в принципе не ремонтопригодное и не разборное устройство, вот там такой подход применяли.

                                                                                            Потом ещё несколько раз видел в серийных изделиях, там тоже понятно — лишний резистор в партиях из десятков тысяч экземпляров нафиг не нужен, да и на цену влияет.
                                                                                              0
                                                                                              Да понятно. Я-то просто мыслю категориями штучного самопала, где нет смысла экономить на резисторе, а вот оставить возможность допиливания более чем полезно.
                                                                                                0
                                                                                                Естественно!
                                                                                              0
                                                                                              Джампер — это механический контакт, а механический контакт — проблемы с окислением, отвалом и прочими пакостями. Это если устройство эксплуатируется в ужасных климатических условиях, вроде улицы, подвала, чердака и подобного.
                                                                                                0
                                                                                                Ну, в таких условиях понятно, что надо запаивать и заливать, оставив наружу торчать один металлический разъем с накидной гайкой.
                                                                                      +3
                                                                                      Статья с заголовком «Arduino за 1$» о том, что Arduino на самом деле и не нужна. Я во всём согласен с автором и поддерживаю использование «голых» микроконтроллеров, но сам заголовок вызвал смешанные эмоции. Похоже, что слово «Arduino» уже стало синонимом слова «микроконтроллер». И это меня огорчает.
                                                                                        0
                                                                                        Посыл статьи немного другой. Arduino — это комплексное явление, а не отдельная железяка. И если хочется использовать субъективно удобную (из-за простоты) IDE и имеющиеся community-наработки для решения простейших задач, как-раз таки не обязательно использовать избыточное и относительно дорогостоящее «родное» (или совместимое) железо.

                                                                                        Понятно, что следующий (логичный и практически неизбежный) шаг, до которого осталось чуть-чуть, это переход на «нормальный» C, но акцент, все же, не на этом.
                                                                                          +1
                                                                                          Думаю, что после перехода на «нормальный» Cи Вы уже не будете считать IDE от Arduino удобной и простой. Да и библиотек под голый AVR точно так же полно.
                                                                                            0
                                                                                            Скажу по секрету, только тс-с-с. У меня Arduino прицеплено к Sublime, и код я пишу в нем :)
                                                                                            Да, это стоя и в гамаке. Но что-то пока никак не соберусь с духом.
                                                                                              +1
                                                                                              Сколько синей изолентой аквариум к пылесосу не приматывай, моющим он не станет, факт!
                                                                                                +1
                                                                                                Ну, троллейбус-то из буханки хлеба знатный получается.
                                                                                                  0
                                                                                                  Смотря каким образом его примотать…
                                                                                          +1
                                                                                          У Atmel прекрасная IDE, зачем отказываться от Ардуино но оставлять от него IDE??!
                                                                                          Ещё сильно дешевле получится, не нужно будет изворачиваться с программатором через программатор.
                                                                                          Я кстати купил в Китае высоковольтный за 1500 р и очень им доволен, гораздо быстрее ISP-шки.
                                                                                            0
                                                                                            Мне нравится минимализм. Его в Arduino хватает.
                                                                                            Программатор через программатор — это только один раз. Поскольку ISP прислали не той породы.
                                                                                            Ну, 1500 — это тоже немало, китайский ISP почти на порядок дешевле.
                                                                                              0
                                                                                              Для сравнения у нас они от 14 тысяч.
                                                                                              Можно вообще бесплатно через LPT порт =)
                                                                                              О каком минимализме речь? Хоть Atmel Studio и сделана на базе MSVS, но никаких наворотов там нет. Зато прекрасный отладчик есть.
                                                                                              Заливать можно той же самой дудкой, если вы предпочитаете ISP.
                                                                                              Плюс ASM. Я предпочитаю его.
                                                                                                0
                                                                                                Ну, про халявные пять проводков писали уже, это ультрабомж-стайл :)
                                                                                                О минимализме, прежде всего, интерфейсном.
                                                                                                Отладчик — это, конечно, аргумент. Но, не все сразу.
                                                                                                  +2
                                                                                                  О минимализме, прежде всего, интерфейсном.

                                                                                                  Любимый редактор + компилятор + дудка.
                                                                                                  Настраивается всё за пару минут.
                                                                                                    0
                                                                                                    Не спорю, я на днях это проделал.

                                                                                          Only users with full accounts can post comments. Log in, please.