С последней версией Arduino IDE перестал работать USBASP, с помощь которого прошивал массу контролеров.
У USBASP пора обновить прошивку, а может быть и схему, а я буду использовать в качестве программатора обычный Arduino. Тем более я уже использовал эту схему для программирования ATTiny13.
Для Arduino на ATmega168/328 схема будет выглядеть так — между собой соединяем D11, D12, D13, а D10 контроллера программатора соединяем с RESET программируемого контроллера. Устанавливаем кварц для прошивки контроллеров, работающих от внешнего резонатора.
Для удобства работы собираю программатор на макетке. Для микросхем в корпусе DIP28 использую панель DIP с нулевым усилием.
Также на плате устанавливаю разъем под Arduino Pro Mini, на которых делаю все последние Arduino-проекты
Получаю такую платку
Устанавливаю на плату микроконтроллеры
Можно приступать к прошивке/
Для этого в Ардуину нужно записать скетч ISP-программатора
Затем выбираем тип программатора
И все. Программатор собран и настроен.
Немного о применении
- Загрузка скетча с 0-го адреса без загрузчика. Экономит память микроконтроллера и время загрузки. Особенно интересно в микросхемах с малой памятью — Atmega8 и различных Attiny.
- Установка загрузчика на «голую» Atmega328, чтобы в дальнейшем заливать в нее скетчи через RX/TX, как в обычную Ардуину.
- Замена загрузчика, например, на OPTIBOOT, нормально поддерживающий режимы сна и сторожевой таймер.
- Установка фьз-битов. Полезно при создании «батареечных проектов», когда отключается BOD — контроль входного напряжения и микроконтроллеру устанавливается режим работы с пониженной частотой, опять же для уменьшения напряжения питания до 2.8-3.3В и энергопотребления.
- Восстановление «мертвых» микроконтроллеров после неудачных экспериментов
Если нужно залить прошивку одной Ардуины через другую, то делается все тоже самое, только без платы. Соединяются вывод ардуин согласно схеме и точно так же программируется.
Если ATmega328P-PU пришли с завода (изначально на работу с внутреннего генератора), схему необходимо всё равно собирать с внешним кварцем и двумя конденсаторами ?
Мне в итоге нужно получить микроконтроллер с прошитым загрузчиком для работы с внешним 16MHz кварцем и питанием +5В.
Всем спасибо, уже разобрался 😉
Оказывается, проблема была в номинале керамических конденсаторов в обвязке кварца.
Решил пересобрать на маленькой 170-ти контактной макетке. На внутреннем генераторе контроллер не заработал. А при установке этих конденсаторов обратил внимание на маркировку. По типоразмеру оказались одинаковые с 22pF, но только номиналом 100nF.
Сразу же заменил — и всё заработало!
Прошивал и на новой версии IDE Arduino 1.6.7 и на старой 1.0.1 — везде загрузчик успешно прошился.
Значит можно заливать прошивки которые не будут использованы в среде Ардуино?
И что для этого надо сделать где установить и прочее
Какая то каша у вас )))
Прошивка — это бинарник для микроконтроллера AVR
Среда Ардуино IDE позволяет редактировать исходник на С++ (вернее на Wiring), компилировать при помощи входящего в состав GCC компилятора с использованием своих библиотек и заливать его в МК при помощи AVRDUDE через загрузчик, находящийся в контроллере по интерфейсу UART.
Также в Ардуино IDE можно настраивать работу с разными микроконтроллерами (не только AVR), загружать их в том числе и через различные программаторы
Прикольная статья
Если я правильно понимаю при такой схеме подключения нет необходимости в Uno ? Как вы описывали в другой статье программирование Atmega 328
В другой статье программатор USBASP а Ардуино УНО в качестве панельки для ATMega328, здесь в качестве программатора Ардуино. Любой — Nano/Uno?Pro Mini
Спасибо за ответ. я Так и понял. Если вдруг заинтересует Вас мог бы предложить тему создания умного дома начать с построения Блок схемы работы устройств.Например Orange Pi PC Plus + GL.iNet Mini WiFi Router Flash 64MB RAM. И соответственно устройств на базе ESP8266 в этой схеме.
ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn …. статья на esp8266.ru немного не дотягивает полнотой развертки…..может у Вас получиться более подробно обьяснить
Добрый вечер! А возможно ли как то сделать из ардуино уны высоковльтный программатор Fusebit Doctor?
Да. Можно
https://geektimes.ru/post/255396/
Добрый вечер! А можно уточнить?
Если я хочу по вашему способу прошить китайский заводской USBASP программатор на основе Atmega8A с кварцем на 12 MHz(чертовы китайцы льют в «камни» старые прошивки- из за них выдают ошибку и не шьют микроконтроллеры)
при помощи Arduino Pro Micro, у нее кварц на 16 MHz и кристалл Atmega32u4- мне нужна какая либо обвязка внешняя к линии SCK? Или там можно в студии ардуино как-то справиться с проблемой разницы частот?
А какая разница на какой частоте работает программатор. Прошивка же не на тактовой процессора выполняется. Этим программатором из статьи я шил Меги 8 на 8МГц, Меги 328 на 16 и 8 и тиньки на всех их рабочих частотах. Главное, подключиться по ICMP. Там есть синхронизация
Кошак зачетный. Сидит и фигеет с происходящего)))
А ведь можно ардуино сразу к USB подцепить, напрямую. Чтобы как USBAsp определялся, ток где скетч на него взять?
А это все стандартное, можно Uno или Nano использовать, тогда и TTL конвертер нах не нужен.