ATmega328P без ансамбля

«Ардуино без Ардуино»
 
+
+1
-
edit
 

Balancer

администратор
★★★★★
После того, как вчера разобрался с программированием stadalone ATtiny85, решил сегодня повторить то же самое с ATmega328P :)

Парочка микросхем была давно в заначке, на всякий случай. На глаза также попадались регулярные рецепты об их включении на макетках. Но собрался поковыряться только сейчас :)

Как и с ATtiny85 проблем была масса. Даже больше. Поэтому, по свежей памяти, складирую тут опыт и впечатления :)

Сперва не стал рыться в своих копилках, а погуглил варианты компактной сборки на макетных платах. Больше других примечателен вот такой вариант:

Bareduino328: Building your Barebones Microcontroller - Virtuabotix LLC

Bareduino328: Building your Barebones Microcontroller // www.virtuabotix.com
 


(По ссылке — подробная последовательность монтажа)

Подобная сборка заняла минут 5-10 и дальше встал вопрос программирования. Первая мысль была — задействовать программирование через последовательный порт. Благо, для Arduino это штатный способ. Но не тут-то было. Большинство рецептов даётся на использование другого Arduino в роль ISP-программатора. Как и в случае с ATtiny85. Ну, ладно, благо схема вчерашняя осталась, я и подключил в таком же стиле (с поправкой на мой вид схемы):

Дальше, в Arduino IDE, как и в случае с ATtiny, сперва на сам Arduino прошиваем ISP-скетч (Файл -> Примеры -> ArduinoISP) и выбираем Arduino as ISP в роли программатора в меню Инструменты.

Ага, щаз! :) Бутлоадер (Инструменты -> Записать загрузчик), судя по всему, прошился. Потому что после подачи питания светодиод на макетной плате стал помигивать. Но не более того. Все попытки прошить тестовый скетч обламывались отсутствием соединения. Перепробовал все платы и программаторы, пару раз перепрошивал сам ArduinoISP, т.к. сносил его прошивку.

Дальше была обширная эпопея с поиском рецептов и вариантов для прошивки через USB-serial. Останавливаться не будут, так как ничего не достиг и снова вернулся к ArduinoISP.

И вот тут, провозившись с разными комбинациями ещё минут 15, понял главное! Шить в таком варианте нужно не через загрузку скетча привычным способом, а через пункт Скетч -> Загрузить через программатор!

И всё сразу заработало :) Но чтобы дойти до этого, потратил, наверное, час или полтора экспериментов! :D
Прикреплённые файлы:
 
 44
FR JackSmith #26.03.2017 14:34  @Balancer#26.03.2017 13:05
+
-
edit
 

JackSmith

втянувшийся

Balancer> Дальше была обширная эпопея с поиском рецептов и вариантов для прошивки через USB-serial. Останавливаться не будут, так как ничего не достиг и снова вернулся к ArduinoISP.

Через USB-TTL преобразователь, прошивать микроконтроллер можно(иначе какой смысл был записывать загрузчик), но это скорее теоретическая возможность. Одновременно с записью скетча, нужно жать reset на микроконтроллере, чтобы передать управление загрузчику. Угадать время когда жать reset всегда было не просто, а в новых Arduino IDE (1.6 и выше), где предпринимается десять попыток залить скетч, это уже какой-то мазохизм.

ps загрузчик Arduino прошивается вместе с фьюзами, после чего микроконтроллер перестает работать от встроенного генератора, т.е. без кварца.

pps конденсаторы на кварце не обязательны.
 45.045.0
+
-
edit
 

Monya

опытный

JackSmith> pps конденсаторы на кварце не обязательны.
Спорный вопрос. Все от кварца зависит, иногда генератор может не запустится. Та что лучше уж пусть будут.
 49.0.2623.11249.0.2623.112

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru