Платформа Arduino стала нынче практически мейнстримом.
В этой статье напишу о том, как собрать минимальную платформу на контроллере Amega 328P-PU, чтобы ее можно было программировать на платформе Arduino IDE.
Контроллер Atmega 328 от компании ATMEL является сердцем платформ Arduino UNO , Arduino Nano, Arduino Pro Mini и ряда других. Данные платы вместе с многочисленными «шилдами» и модулями удобны для создания прототипов, но довольно громоздки и избыточны для готовых устройств.
Конечное устройство можно собрать на макетной или печатной плате. Для этого приобретаем контроллеры Atmega. Я покупал наплощадке aliexpress.com.
Цена на момент покупки была $20 за 10 контроллеров, 10 панелек и 10 кварцевых резонаторов на 16МГц. (Сейчас цена стала немного дороже)
Ссылка на товар на сайте aliexpress.com
Буковка «P» в названии микросхемы означает низкое энергопотребление, а PU-корпус DIP28, который удобно паять обычным паяльником.
Контроллеры пришли, как их теперь готовить?
Yеобходимо установить загрузчик в наши контроллеры. Для этого используем плату Arduino Uno и купленный заранее очень дешевый программатор USBasp. Чтобы не мудрить с проводками, лучше сразу взять еще и такой переходник на 6-ти пиновый разъем ICSP.
Качаем и ставим драйвер программатора.
Описываем параметры микроконтроллера в файле c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt
Для себя я сделал две конфигурации — внутренний кварц 8МГц с загрузчиком optiboot и отключенной проверкой на напряжение питания (чтобы можно было запитать микросхему вольт так от трех)
atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)
atmega328_8_33.upload.protocol=arduino
atmega328_8_33.upload.maximum_size=30720
#atmega328_8_33.upload.speed=19200
atmega328_8_33.upload.speed=57600atmega328_8_33.bootloader.low_fuses=0xC2
atmega328_8_33.bootloader.low_fuses=0xE2
atmega328_8_33.bootloader.high_fuses=0xDE
atmega328_8_33.bootloader.extended_fuses=0x07
atmega328_8_33.bootloader.path=optiboot
atmega328_8_33.bootloader.file=optiboot_atmega328.hex
atmega328_8_33.bootloader.unlock_bits=0x3F
atmega328_8_33.bootloader.lock_bits=0x0Fatmega328_8_33.build.mcu=atmega328p
atmega328_8_33.build.f_cpu=8000000L
atmega328_8_33.build.core=arduino
atmega328_8_33.build.variant=standard
и точная такая же с внешним кварцевым резонатором на 16МГц.
atmega328_16.name=Atmega328_16 (3.3V, 16 MHz external)
atmega328_16.upload.protocol=arduino
atmega328_16.upload.maximum_size=32256
atmega328_16.upload.speed=115200
atmega328_16.bootloader.low_fuses=0xff
atmega328_16.bootloader.high_fuses=0xde
atmega328_16.bootloader.extended_fuses=0x07
atmega328_16.bootloader.path=optiboot
atmega328_16.bootloader.file=optiboot_atmega328.hex
atmega328_16.bootloader.unlock_bits=0x3F
atmega328_16.bootloader.lock_bits=0x0F
atmega328_16.build.mcu=atmega328p
atmega328_16.build.f_cpu=16000000L
atmega328_16.build.core=arduino
atmega328_16.build.variant=standard
Аккуратно вынимаем из панельки Arduino контроллер и ставим туда наш.
Запускам стандартную ArduinoIDE, выбираем в меню «Сервис->Программатор->USBasp», плату Atmega328 (3.3V, 8 MHz internal) или Atmega328_16 (3.3V, 16 MHz external) и нажимаем «Записать загрузчик». После окончания процесса загрузки мы получаем контроллер, в который можно уже в дальнейшем заливать программы через стандартный USB Ардуины.
В принципе, если вам не требуется низковольтное питание, можно не править фал board.txt, а пошить контроллер как Arduino Uno.
Дальнейшая работа с контроллером такая — либо шить его вставляя на плату Arduino Uno через стандартный USB порт этой платы. Прошив контроллер на работу с внутренним кварцем, можно сразу использовать его практически без всякой обвязки. Например, мигать светодиодом на 13-м порту, как на этой картинке.
Если же нужно постоянно использовать контроллер в своей плате, не переставляя его — то нужно собрать такую схему
и прошивать его через конвертер USB-RS232.
Контроллер с внешним кварцем работает быстрее и гораздо стабильнее.
Где это уже работает?
Контроллер управления вентилятором в ванной комнате
Контроллер управления светодиодной люстрой
А как же мозг не вскипел все это реализовывать?
Ну конечно же был помощник
Полезные ссылки к данной статье:
- Конфигурация FUSE-бит для AVR контроллеров
- Калькулятор FUSE-бит для AVR
- Описание Atmega 328P-PU на сайте производителя
- Даташит Atmega 328
Я так понял есть 2 способа шить старый через RS232 протокол тогда и Arduino не пригодится, и второй через Arduino, что бы не паять схему используем Arduino UNO. Просто не совсем пойму 2 способ зачем если платка Arduino продается в сборе. А если уж и собираемся паять другую схему то это максимум для отладки, почему сразу нельзя было отлаживать в плате Arduino и не паять лишнее.
Способы собственно такие:
Шить через загрузчик Arduino или программатором
У Arduino это Serial интерфейс или ICSP которые живут на разных ногах МК
Все остальное, это нюансы разводки по платам.
Собственно, Ардуино это и есть отладочная плата. Встраивать его куда-то в готовые устройства особого смысла я не вижу
добрый день! вы писали про 2 способ — и прошивать его через конвертер USB-RS232.
а как конкретно с какой программой ? можно подробнее про это?
Arduino IDE или любой другой, работающей с Arduino.
При таком подключении. Конвертер подключить RX/TX/GND и шить как обычную Ардуину.
Только RESET не забывать нажимать. Или конвертер с выходом RESET использовать.
всмысле нажимать reset ? ничего не понял(
После нажатия RESET программа, находящаяся в загрузчике ждет некоторое время начала загрузки новой программы с последовательного порта.
Если ничего с порта не пришло, запускается программа, загруженная ранее.
То есть для программирования нужно перед самой загрузкой нажать RESET. Более навороченные программаторы, например такой, имеют дополнительную ногу DTR, которую можно подключить к RESET входу микроконтроллера и тогда нажимать RESET вручную не нужно.
Это все относится к контроллерам без встроенного преобразователя USB/SERIAL, например Arduino Pro Mini и к самодельным из этой статьи.
помоги Алексей! в общем у меня щас такой программатор собран http://dxportal.ru/shemy/programmatory/3454-programmator-na-ft232rl-bez-upravlyayuschego-mk.html.
загрузчик залил через него прогой sina prog. потом запустил ардуино иде, потключил к меге 328 rx И Tx зеркально. и попробовал залить через ардуино иде и этот программатор скетч. в итоге выходит такая ошибка.
http://s019.radikal.ru/i621/1411/64/26e1eb57c1fa.jpg
как починить что я делаю не так?
когда подключил програматор появился ком порт как полагается. в Иде выбрал его, выбрал плату ардуино уно, программматор arduino as is и другие пробовал не пашут.
помогите!
Такая ошибка возникает, когда в нужное время загрузчик контроллера не выдает готовность загрузки скетча
Причины — или загрузчик записался с ошибкой (может быть фьюзы выставлены не правильно) или тип контроллера не соответствует
В первом случае снова переписать загрузчик программатором или загружать скетчи программатором без загрузчика. Во втором, подобрать тип контроллера или создать свой тип в файлt Board.txt
Добрый день! Спасибо вам огромное, целый день промучился пытаясь запустить свой ATMega328P-PU на внутреннем 8MHz резонаторе под напряжением 3.3V.
Получилось?
С завода 328 вроде сразу идут под внутренний кварц, только загрузчик поставить
подключаю к своему самодельному ардуино вот такой програматор http://ru.aliexpress.com/item/FREE-SHIPPING-2PCS-LOT-CP2102-USB-2-0-to-UART-TTL-6PIN-Connector-Module-Serial-Converter/1095621364.html
Обмен данными идет, даже после компиляции резетит платку, а при выгрузке выдает ошибку: avrdude: stk500_recv(): programmer is not responding. Может знаете куда копать.
1. Не проходит RESET в заданное время
2. Настройки в board.txt не соответствуют
3. Загрузчик в Ардуину не встал или встал с ошибкой
Добрый день. Спасибо за статью! Очень помогла, так как нужна была компактная схема, без дополнительных элементов. Проковырялся весь день, но всё таки запустил свою ATmega 328P-PU от 3 вольт и на внутреннем резонаторе. Но вот возник один ньюанс. Через Arduino nano заливаются скетчи в МК, а вот через USB TTL не могу залить, стандартная ошибочка — avrdude: stk500_getsync(): not in sync: resp=0x00. Насколько я понял, раз через Arduino nano я могу заливать скетчи, значит фьюзы правильно подобрал. Фьюзы поставил (0xE2 0xDE 0x05). Резет пробовал и с USB TTL и ручной ставил, не помогает. Подскажите, что может быть?
А через NANO заливается через серийный интерфейс или ICSP ?
Через SPI
Отладка на Serial идет?
Ну тогда либо загрузчик не записался
Либо описание в board.txt косячное, например, начальный адрес загрузчика или скорость
вот что добавил в board.txt, заливка загрузчика проходит успешно.
atmega328_8.name=Atmega 328p (3.3V, 8 MHz internal)
atmega328_8.upload.protocol=arduino
atmega328_8.upload.maximum_size=30720
atmega328_8.upload.speed=57600
atmega328_8.bootloader.low_fuses=0xE2
atmega328_8.bootloader.high_fuses=0xDE
atmega328_8.bootloader.extended_fuses=0x05
atmega328_8.bootloader.path=optiboot
atmega328_8.bootloader.file=optiboot_atmega328.hex
atmega328_8.bootloader.unlock_bits=0x3F
atmega328_8.bootloader.lock_bits=0x0F
atmega328_8.build.mcu=atmega328p
atmega328_8.build.f_cpu=8000000L
atmega328_8.build.core=arduino
atmega328_8.build.variant=standard
Я такой загружал
atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)
atmega328_8_33.upload.protocol=arduino
atmega328_8_33.upload.maximum_size=30720
atmega328_8_33.upload.speed=57600
atmega328_8_33.bootloader.low_fuses=0xC2
atmega328_8_33.bootloader.high_fuses=0xDE
atmega328_8_33.bootloader.extended_fuses=0x07
atmega328_8_33.bootloader.path=optiboot
atmega328_8_33.bootloader.file=optiboot_atmega328.hex
atmega328_8_33.bootloader.unlock_bits=0x3F
atmega328_8_33.bootloader.lock_bits=0x0F
atmega328_8_33.build.mcu=atmega328p
atmega328_8_33.build.f_cpu=8000000L
atmega328_8_33.build.core=arduino
atmega328_8_33.build.variant=standard
Тоже подумываю об использовании МК, вместо Ардуины. В этом деле пока новичок и возникло несколько вопросов:
1)Если запитать ее от например 3 вольт, то у нее логическая единица будет 3 вольта?
2)В чем выражается нестабильность работы внутреннего кварца? Частота зависит от температуры и т.п.? В результате будут врать функции связанные с вычислением времени?
3)Собственно главное — какой выигрыш получится в энергопотреблении? Например, сколько потребляет МК, к которому ничего не подключено и он не в спящем режиме?
1. Да. Кстати, работа микроконтроллера на частоте 16МГц может быть нестабильной при 3В, так как по даташиту напряжение на этой частоте должно быть от 4.5В
На деле все контроллеры работают от 3.3В.
2. Внутренний RC-генератор у Atmegи имеет стабильность 5%. Для многих устройств, управляемых по частоте этого может оказаться мало для стабильной работы
3. Я достигал минимального энергопотребленение в 30мкА. Если это важно, я думаю, нужно переходить на более экономные контроллеры. Теже Atiny, yfghbvth
всё хорошо но где взять optiboot_atmega328.hex, у меня такого нет в библиотеки
Ардуино IDE его сюда складывает
c:\Program Files (x86)\Arduino\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.hex
так поучилось что мне надо собрать низкогерцовую компактную ардуино выбрал 328 чип как один из ёмких и не сложных а вот с кварцем беда нигде у нас не продают СМД а для лодочки уже нет места, решил попробовать без кварца ищё способы как сделать правильно и не запороть всё.
В статье http://www.arduino.cc/en/Tutorial/ArduinoToBreadboard прошивка без кварца выглядит иначе
##############################################################
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard
не обессудьте за хамство юзера, только начинаю вникать, но все аспекты изучать времени не хватает поясните пожалуйста почему так, и будит ли оно работать,
и ещё вопрос если залит уже загрузчик в чип его можно перепрошить этой операцией,
за ранее спасибо
По вашему описанию ничего не скажу — нужно пробовать. У меня на 8МГц с внутренним генератором такая работает:
##############################################################
atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)
atmega328_8_33.upload.protocol=arduino
atmega328_8_33.upload.maximum_size=30720
#atmega328_8_33.upload.speed=19200
atmega328_8_33.upload.speed=57600
atmega328_8_33.bootloader.low_fuses=0xC2
##atmega328_8_33.bootloader.low_fuses=0xE2
atmega328_8_33.bootloader.high_fuses=0xDE
atmega328_8_33.bootloader.extended_fuses=0x07
atmega328_8_33.bootloader.path=optiboot
atmega328_8_33.bootloader.file=optiboot_atmega328.hex
atmega328_8_33.bootloader.unlock_bits=0x3F
atmega328_8_33.bootloader.lock_bits=0x0F
atmega328_8_33.build.mcu=atmega328p
atmega328_8_33.build.f_cpu=8000000L
atmega328_8_33.build.core=arduino
atmega328_8_33.build.variant=standard
Загрузчик в ЧИП можно перепрошивать программатором сколько хотите даже если предыдущий загрузчик мертвый и программы не заливаются
Arduino: 1.6.3 (Windows 7), Плата»Atmega328 (3.3V, 8 MHz internal)»
Ошибка при загрузке бутлоадера: пропущен ‘bootloader.tool’ параметр конфигурации
Это сообщение будет содержать больше информации чем
«Отображать вывод во время компиляции»
включено в Файл > Настройки
такое выводит на обе конфигурации, это не может быть причиной из за версии
моя 1,6,3
файл у меня по этому пути
c:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex
Ну так это фишка новой версии 1.6
добавьте
atmega328_8_33.upload.tool=arduino:avrdude
atmega328_8_33.bootloader.tool=arduino:avrdude
или
atmega328bb.upload.tool=arduino:avrdude
atmega328bb.bootloader.tool=arduino:avrdude
спасибо что помогли, но всё же не обошлось без аксесов, первое надо было уровнять скорости записи в скетче и конфигурации 19200, потом перенести файл
c:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex отсуда
c:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot_atmega328.hex суда, так и не понял где это прописано
сильно помогла эта статья http://habrahabr.ru/post/222201/ также я без труда залил скетч ничего не меняя
правда вопрос у чипа есть RX TX специальные входы для такого дела можно ли с помощью ардуино нано заливать не боясь испортить нанку, всех примерах что я видел с УНО там снимают чип, что в моём случаи проблематично
UNO и NANO имеют в основе один и тот же чип. Atmega 238p. В разных корпусах (иногда)
Про «специальные выводы» вы имеете ICSP для загрузки через программатор?
Тогда делайте так
NANO от MINI только наличием UAST/USB конвертора отличается. ICSP там к тем же самым выводам нужно подключать
я имел ввиду именно TX/RX так получилось что выводы 10/11/13 заняты радио модулем по умолчанию и поменять их я не могу у меня есть такой программатор http://www.aliexpress.com/snapshot/6501724803.html?orderId=65862962673917 или ардуино нано этими вещами можно заливать скетч через TX/RX ?
может гуру выручит советом ещё раз
задумал переписть загрузчик на атмеге 328 на внешний кварц для эксперимента
но ничего не вышло, думал запорол старый загрузчик, при попытки вернуть с внутренним кварцем тоже не вышло
Arduino: 1.6.3 (Windows 7), Плата»Atmega328 (3.3V, 8 MHz internal)»
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Ошибка при записи загрузчика
Это сообщение будет содержать больше информации чем
«Отображать вывод во время компиляции»
включено в Файл > Настройки
ничего не менял в настройках до этого всё прекрастно работало порой выдаёт такое
stk500_disable() unknown response=0x12,
я уже в оканцовку запутался
я либо какой то особенный лили делаю что то не то, 3 способа записи бутлодера не один не реагировал, но я ими писал загрузчик, взял ардыну типа уны у друга и через неё залил, причём точно так как и заливал до этого другой, обе рабочие…… что я упускаю, это может быть питание или какая то другая особенность?
что означает ошибка :
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override this check.
помогите пожалуйста !!
не правильно выбран процессор или не определяется в связи плохого контакта, питания, подключения, ваш кварц мёртв или процессор. были аналогичные ошибки порой помогало нажать ресет а так по запарке новичка ставил не тот камеь
Интересный пример, который сподвиг меня на повторение. Попробовал — получилось.
Но есть НО!
В описании фьюзов у вас есть косяк:
atmega328_8_33.bootloader.low_fuses=0xC2
atmega328_8_33.bootloader.low_fuses=0xE2
Я понимаю что действует последний, но все же с толку сбивает.
Еще меня смущает то, что для 8МГц (внутренний генератор) используется тот же загрузчик (optiboot_atmega328.hex), что и для 16МГц (кварц). Я конечно пробовал подставить другой (который для Про Мини 8МГц), но с ним воще как то скетчи не грузятся.
Сделал автономный light-сенсор, бросил его пока на балкон, запитал от 2х АА.
А можно загрузчик переделать на 8 и на 4 Мгц с внешним генератором, нужна стабильность и малое потребление задачи не сложные.
Нужно выставить правильные фьюз-биты в микроконтроллере
В частности, CKSEL3…0 = 0111 – от 3 до 8 MHz
Одновременно нужно отключить контроль напряжения питания BODEN, чтобы можно было его снизить
Подробнее про фьз-биты можно почитать здесь:
http://easyelectronics.ru/avr-uchebnyj-kurs-konfiguraciya-fuse-bit.html
Калькулятор здесь:
http://www.engbedded.com/fusecalc/
Далее после расчета фьюзов редактируете их в board.txt для данного типа контроллера, выставляете build.f_cpu=4000000L
Еще лучше посмотреть в сторону микроконтроллеров ATtiny той же компании с низким потреблением
Собрал схему, как на рисунке, загрузил скетч с миганием, все работает… но, без кондеров по 22 пф. когда их подключаю, диод перестает мигать. Проверил все: менял, прозванивал кондеры, менял кварц и даже атмегу. Подскажите, в чем может быть проблема?
Может и без кварца у вас работает?
Тогда у вас контроллер прошит на работу с внутренним резонатором
Нет, без кварца не работает. заливал стандартный бутлоадер. напряжение питание 4,9в.
20$?
http://ru.aliexpress.com/item/1PCS-ATMEGA328P-PU-DIP28-ATMEGA328-PU-DIP-ATMEGA328P-new-and-original-IC-free-shipping/32525234470.html?spm=2114.03020208.3.46.g70LLP&ws_ab_test=searchweb201556_2_79_78_77_80,searchweb201644_5,searchweb201560_7
ой сори, думал 20$ за 1 ((
Подскажите,нашел несколько схем на контроллере Amega 328P-PU,суть одна а комплектация разная..в мануалах ничего нет а авторы разработок разных, ставят все по разному..к примеру пару кондеров видел,еще какие то отличия..есть ли единая схема,чтоб подключено все как надо а как буду использовать не важно..даже схемы ардуинок и то с отличиями..
Atmega328 может работать вообще без обвязки. Если с внутренним резонатором.
Если внешний, то два кондера обязательно. Остальное зависит от назначения, например, у меня в одном проекте ресет висел в воздухе и на него наводилась помеха от силового провода. Контроллер перезагружался, пока я его к плюсу не подиянул
Схемы Ардуинок получаются так. Интальянцы разрабатывают максимально удобную/функцилнальную схема, Китайцы ее потом жестко «модернизируют» с целью удешевления
Здравствуйте. Спасибо большое за статью. Мне нужна конфигурация.на внешний кварц 8 mhz.напряжение 3,3V. Atmega328 (3.3V, 8 MHz external) Буду вам очень признателен. Заранее спасибо.
В этой статье как раз приводил пример
http://samopal.pro/board-txt/
Я читал именно эту статью. У меня почему то не получается создать меню.
atmega328_8ext.name=Atmega328 (3.3V, 8 MHz внешний)
atmega328_8ext.upload.tool=avrdude
atmega328_8ext.upload.protocol=arduino
atmega328_8ext.upload.protocol=arduino
atmega328_8ext.upload.maximum_size=32256
atmega328_8ext.upload.speed=57600
atmega328_8ext.bootloader.tool=avrdude
atmega328_8ext.bootloader.unlock_bits=0x3F
atmega328_8ext.bootloader.lock_bits=0x0F
atmega328_8ext.bootloader.path=optiboot
atmega328_8ext.bootloader.file=optiboot\optiboot_atmega328.hex
atmega328_8ext.bootloader.low_fuses=0xff
atmega328_8ext.bootloader.high_fuses=0xde
atmega328_8ext.bootloader.extended_fuses=0x07
atmega328_8ext.build.mcu=atmega328p
atmega328_8ext.build.core=arduino
atmega328_8ext.build.variant=standard
atmega328_8ext.build.f_cpu=8000000L
Спасибо Вам большое.
Скажите а загрузчик можно залить только через саму плату ардуино уно? или еще как-нибудь?
Загрузчик заливается через любой программатор (ICSP)
Например, USBASP или программатор из любого Ардуино, как здесь
http://samopal.pro/avr-prog/
Спасибо. Понял. USBASP также заказал.
SevenSegmentDisplay<true, BiDigit > ss(9, 8, 7, 6, 5, 4, 3, 2);
подскажите почему эту строчку при компиляции выделяет жёлтым и пишет ошибку
Какая ошибка, версия Ардуино и с каким контроллером собирается?
Ребят, я новичёк в деле программирования МК и хочу спросить, можно ли через программатор USB — TTL (UART) на микросхеме CH340G программировать контроллеры типа ATMEGA8-16PU-?
Нужно в мегу записать загрузчик через внутрисхемный программатор
После этого его можно программировать через UART/USB
«Нужно в мегу записать загрузчик через внутрисхемный программатор», а как это сделать?
http://arduino.ru/forum/programmirovanie/kak-ozhivit-arduino-atmega8a
Большое спасибо, дорогой друг!
«Нужно в мегу записать загрузчик через внутрисхемный программатор», а как это сделать?
По первой ссылке (Использование USBAsp программатора для установки загрузчика) переходит на https://e-konomia.com.ua/. Реклама?
Нет
Там был сайт zelectro.com.ua
Теперь нет
За Те деньки что стоит голый контролер сейчас можно купить у китайцев клон ардуино
Доброго времени суток! Подскажите, а если подключить через FT2232, как будет выглядеть схема подключения и возможно ли программировать Arduino UNO, через свою IDE?
Точно так же.
На последних схемах я RESET Микроконтроллера через кондер 0.1 мкФ подключаю к DTR
Тогда запуск загрузки программы производится автоматически. Не нужно RESET на MK давить
Второй вопрос не понял