Андрей Смирнов
Время чтения: ~23 мин.
Просмотров: 46

Разъемы для подключения программатора

Есть 6-контактный и 10-контактный версии.Распиновка бывают следующие:

Как-то на днях делал переходник для своего программатора AVR-910 я ошибся с распиновкой выводов и заметил когда уже протравил печатку, и тогда решил найти распиновку, и опубликовать у себя на сайте что-бы не забывать 🙂Вот будут полезные фотки:
Рис. 3. Распространённая распиновка ISP-вилки.
Проводники для программирования следует подключить к одноимённым проводникам программатора. Эти проводники удобно подключить к ответной части разъёма имеющегося программатора с помощью стандартной вилки для установки на плату IDC-10MS (Рис. 3). Точное расположение выводов на этой вилке необходимо обязательно сверить с имеющимся программатором!1.pngISP коннектор программатора при установке на печатную платуISP-header.jpgСтандартный ISP коннектор Atmel Для примера приводим разводку для разъема ICSP и микроконтроллеров ATmega168 и ATtiny85.<center>Ris02.jpgБлог им. podkassetnik  Когда-то все мои печатные платы были заточены под детали для установки в отверстия (through holes). В те славные времена для внутрисхемного программирования микроконтроллеров AVR я вовсю использовал 10-контактный разъем BH-10 (или штыри PLD-10) со стандартной Atmel-овской распиновкой (см. STK200/STK300). С учетом размеров прочих компонентов платы, данный разъем занимал не так уж и много места. Но времена изменились, и теперь в основном я использую детали SMD. Так что установка на плату разъема габаритами с два корпуса TQFP-32, мягко говоря, напрягает. Поэтому было принято эпохальное решение – впредь использовать для программирования камней другой стандарт (это который привязан к 6-ти пиновому разъему BH-6 или PLD-6). Однако, поскольку все мои программаторы были сделаны относительно давно, из них торчали именно 10-контактные разъемы BH-10. И для того, чтобы для программирования «по новому стандарту» использовать старый шлейф (да и чтобы их не валялось с десяток разных видов), смастерил я себе такой вот переходник, цепляющийся на один из концов 10-жильного провода:Надо сказать, к такому решению я пришел далеко не сразу. Вернее, конечно, было понятно, что этот переходник нужен. Но я просто патологически ленив и для программирования первой платы с 6-ти контактным разъемом поступил просто и без затей – отрезал разъем IDC-10 с одного края шлейфа и тупо припаял провода к разъему PLD-6, торчащему из платы.После этого сию плату мне приносили на перепрошивку раза три или четыре (расширялся функционал). И уже на второй раз я смекнул, что постоянно припаивать/отпаивать провода просто не смогу – скорее от бешенства расшибу плату. Ну, или головы тем затейникам, которые не могут даже со второго раза нормально озвучить ТЗ для простенького устройства. В башку опять закрались мысли о нормальном переходнике. Однако, и в этот раз здравый рассудок был коварно обманут – лень присоветовала припаять к жилам шлейфа гнёзда BLS-1. В принципе, этим был достигнут некий компромисс. Но только до поры до времени. Ведь взаимное положение гнёзд не зафиксировано жестко (ибо они просто болтаются на проводах), поэтому каждый раз приходилось заново собирать кубик-рубик. Ну и перепутав пару раз номера контактов, я призадумался.С одной стороны, крайне не хотелось разводить и делать плату под «жесткий» переходник. С другой – однажды я бы точно доэкспериментировался и чего-нибудь сжег. Поэтому в итоге решил-таки побороть лень, сделать плату и навсегда забыть о вышеописанном геморрое.Поначалу хотел сделать универсальную мега-плату с кучей «стандартных» разъемов, которые только встречаются на просторах Интернета. Но потом решительно задушил творческий порыв и сделал просто набалдашник на 10-контактный шлейф, с обоих концов которого висит по одному разъему IDC-10. При этом такой конструктив однозначно (с точки хрения моей логики) определяет типы разъемов, которые будут использоваться в переходнике. Со стороны 10-контактного стандарта это будет угловой разъем BH-10R, а со стороны 6-контактного – PBD-6R (также угловой).Схема «устройства» очевидна. Надо перенаправить сигналы с контактов разъема BH-10R на нужные контакты PBD-6R:«Чертеж» печатной платы (совмещенный вид со стороны деталей):Плата односторонняя, вполне ЛУТ-опригодная. Дорожки 0,5мм (местами 0,25мм). В общем, ничего особо страшного. При установке деталей надо выковырять контакт №3 из разъема BH-10R. Габаритные размеры печатной платы – 13,0х14,6 мм.Распиновка 6-ти контактного разъема со стороны морды:Ну и фото переходника, насаженного на шлейф:На сегодня всё. Желаю удачи при работе с микроконтроллерами AVR!Содержание архива:ISP_10-6_Hardware.zip:ISP_10-6.pdf – схема переходника;ISP_10-6_ЛУТ.lay – печатная плата переходника (вариант для «утюжников»);ISP_10-6_ФР.lay – печатная плата переходника (вариант для «шаблонщиков»).Плата нарисована в «САПР» «Sprint Layout 5.0» (бесплатная гляделка).</center>

Программатор USBASP — устройство, распиновка, подключение, прошивка

Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.

Программатор USBASP

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи: — программатор — соответствующее программное обеспечение для записи данных в МК Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем. Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.

Мы рассмотрим наиболее «навороченную» версию программатора:

Характеристики программатора: — работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера  — архив в конце статьи) — скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек — имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой) — поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах) — питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты) — разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC). — разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц)Подробнее о разъеме JP3 Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

Если вы будете пользоваться программой AVRDUDE_PROG, выложенной на сайте, то о перемычке можно забыть

Программатор поддерживается следующим программным обеспечением: — AVRdude — AVRdude_Prog — Bascom-AVR — Khazama AVR Prog — eXtreme Burner AVR

Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.Распиновка 10-контактного кабеля программатора USBASP:

1 — MOSI — выход данных для последовательного программирования 2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB) 3 — NC — не используется 4 — GND — общий провод (минус питания) 5 — RST — подключается к выводу RESET микроконтроллера 6 — GND 7 — SCK — выход тактирования данных 8 — GND 9 — MISO — вход данных для последовательного программирования 10 — GND

Установка драйверов для программатора USBASP

FUSE-биты при программировании USBASP AVR:

Архив «usbasp.2011-05-28» содержит папки: = BIN: — win-driver — драйвера для программатора — firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48 = circuit — схема простого программатора в PDF и Cadsoft Eagle

При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная  работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).

Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье

  usbasp.2011-05-28 (518,9 KiB, 14 656 hits)

  Скачать «USBasp-win-driver-x86-x64-ia64-v3.0.7» (10,9 MiB, 27 572 hits)

</p>

Скачать с ЯндексДиска

Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине  «МирМК-SHOP»Перейти на страницу магазина

Программирование микроконтроллеров AVR фирмы Atmel

1. Микроконтроллеры — первый шаг2. Системы счисления: десятичная, двоичная и шестнадцатиричная3. Логические операции, логические выражения, логические элементы4. Битовые операции5. Прямой, обратный и дополнительный коды двоичного числа6. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

USBASP -USB программатор для программирования микроконтроллеров AVRUSBASP ISP программатор и AVRdude prog: программирование микроконтроллеров AVR ATmega, ATtiny. Как прошить микроконтроллер.Published by: Мир микроконтроллеровUSB-ISP-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80-%D0%B4%D0%BB%D1%8F-AVR-ATMega-ATTiny-51-AVR-%D0%91%D0%BE%D1%80%D1%82%D1%83-ISP-Downloader.jpg_640x640.jpg

  • Цена: 3$ (2шт.)

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом. USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR. Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это. Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики

Поддерживаемые ОС: Windows, MacOS, LinuxПроцессор: Atmega8AИнтерфейс подключения к ПК: USBИнтерфейс программирования: ISP (внутрисхемное)Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)Поддерживаемые контроллеры: все AVR с интерфейсом SPIОписание:ссылкаСписок поддерживаемых микроконтроллеров

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328 ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16 ATmega161 ATmega162 ATmega163 ATmega164 ATmega169 ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329 ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649 ATmega6490 ATmega8515 ATmega8535

Tiny серия

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25 ATtiny45 Attiny85 ATtiny2313

Серия Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535

CAN серия

AT90CAN128

PWM серия

AT90PWM2 AT90PWM3

Внешний вид

Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.b36b51.jpg Культура исполнения и вправду хромает, мне в глаза сразу бросились криво припаянные гребёнки. Везде где только можно — имеются следы флюса, причём с окислами, по всей видимости, программаторы давно валялись на складе, а сборка их производилась с присущей китайцам быстротой.

Некоторые отверстия не целиком заполнены припоем
SMD-элементы тоже криво припаяны
Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл
Размеры платы несколько больше USB-TTL-конвертера на CP2102
Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате

На плате имеются три перемычки, задающие разные режимы работы программатора:

JP1 — замыкается в случае обновления прошивки самого программатораJP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется

Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.fcc67c.jpg

Установка драйверов

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.

примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows

1) Скачать драйвера, распаковать в удобное место.2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».c72e4b.png3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»7b6238.png4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»bfedac.png5) «Всё равно установить этот драйвер»6a69e0.png6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата

Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.489ed7.png При этом периодически будет выпадать такая ошибка, закрыв окно, программа продолжит работу.71a7fb.png Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер
Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.
Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место. Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.f46321.png Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.3fd61c.png Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.
Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет. e017ae.png Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно: Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz)

В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В. Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3 Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.
Khazama AVR Programmer Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами. Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8

Соединение согласно схеме ниже. Но тут всё немного интереснее. Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.AVRDUDE PROG 3.3 Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка. Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:1) Железный: замкнуть перемычку JP32) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3 Внести туда четыре строчки кода и сохранить. (взято отсюда)

Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer Выбирается контроллер из списка и почти та же ситуация. Программатор с заводской прошивкой нормально работает с ATtiny13, если не считать постоянно появляющихся окон с ошибкой, о чём раннее уже рассказывал. Но с программатором на новой прошивке уже появляется иная ошибка с невозможностью прочесть сигнатуру (цифровую подпись) контроллера. Но стоит замкнуть перемычку JP3, и можно спокойно работать
Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц. Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать: то загрузив код на Attiny13, светодиод будет мигать очень медленно? — посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.

Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7

Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP. Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink. На верхней панели инструментов выбрать «Tools» — «External Tools…» Откроется небольшое окно, нажать «Add» В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально. В большом поле наверху, название инструмента будет автоматически продублировано. Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурациюКонфигурация для Atmega168 -p — наименование контроллера -с — какой программатор -P — порт, через который будет заливаться прошивка -U — какая операция с какой памятью будет производится (в данном случае запись во Flash) Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.Конфигурация для ATtiny13 Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ «-B» со значением «3» для снижения скорости программирования После заполнения полей нажать «Apply» и «ОК». Окно закроется Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер. Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду. Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…» Откроется следующее окно: Перейти во вкладку «Commands» — нажать кнопку «Add Command…» Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK» «External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168». Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор. При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window». И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора

Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора. Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником): Как рекомендует выставить разработчик: Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом), поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником), справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF. Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.

_____________________________________

Выводы

Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.Список ссылок1)Описание USBASP2)AVRDUDE PROG 3.3 (форум)3)Khazama AVR Programmer 1.74) Китайская стоковая прошивка (10кб)5)Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта Используемые источники:

  • http://bigbenmobileblog.blogspot.com/2014/01/avr-isp.html
  • https://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/usbasp-usb-avr-programmator/
  • https://mysku.ru/blog/aliexpress/52686.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации