Доработка программатора USBasp

Я работаю с микроконтроллерами уже несколько лет. По началу прошивал микроконтроллеры через LPT порт. Потом это надоело, и я собрал программатор «USB Tiny» на микроконтроллере ATtiny2313, и пользовался им на протяжении трёх лет.

01_USB_Tiny_zlodey.jpg

Программатор «USB Tiny» всем устраивал, за исключением некоторых недостатков:

  • Драйвер на Windows 7 x64 ставился только после перевода «Винды» в «Тестовый режим». Иначе – никак не получалось заставить его работать. В связи с чем установка программатора на другой ПК начиналась с лишних ненужных телодвижений;
  • Нужна была возможность отключения питания программатора, чтобы программируемая схема могла питаться от собственного источника питания;
  • Программатор мной был сделан на скорую руку, и провода (штекер USB и штекер под МК) просто торчали из корпуса, и время от времени они изнашивались (перетирались при интенсивном использовании и при переноске, либо в месте входа в программатор, либо в месте вблизи разъёмов).

Было решено собрать новый программатор, и учесть все мелочи, которые скопились на протяжении трёхлетнего срока эксплуатации программатора. Посмотрев в Интернете информацию по программаторам, я решил, что буду собирать USBasp, но сделаю небольшие доработки…

Итак, какие моменты я хочу учесть при сборке нового программатора:

  • Прежде всего, сделать программатор в форм-факторе «коробочки», без торчащих проводов, всё сделать на разъёмах. В случае износа проводов, можно будет просто подключить новый провод к разъёму на корпусе программатора;
  • Сделать возможность выбора питания: питание от программатора, либо МК питается от устройства, в котором он установлен;
  • Если выбрано питание от программатора, то сделать выбор напряжения питания: 3,3 либо 5 вольт (это тоже немаловажно, так как схемки бывают совершенно разные…);
  • У программатора USBasp есть функция «Slow SCK» которая позволяет прошивать микроконтроллеры, работающие на пониженной тактовой частоте, поэтому обязательно вывести кнопку включения этой функции;
  • Сделать кнопку сброса прошиваемого МК, иногда тоже бывает нужно, при отладке некоторых девайсов;
  • Уж делать так делать – добавить предохранитель с возможностью быстрой замены.

На этом, пожалуй, хватит. Это основные недостатки, которые я хотел устранить. Начинаем сборку. Печатную плату я изготовил при помощи ЛУТ технологии. Отмочил бумагу:

Протравил

Смыл тонер ацетоном, и просверлил отверстия

04_041120131319.jpg

Спаял и покрыл лаком

На торцах корпуса находятся разъёмы: USB для подключения к ПК, и DB-9 для подключения к микроконтроллеру. На корпусе наклеена наклейка с распиновкой выводов разъёма DB-9:

06_SAM_1748.JPG

07_SAM_1762.JPG

На боковой части корпуса расположены две кнопки и гнездо для предохранителя. Красная кнопка выполняет перезагрузку подключенного к схеме МК (reset target), синяя кнопка понижает тактовую частоту (SCK) до 375 КГц, это нужно для прошивки микроконтроллеров, работающих на низкой тактовой частоте. Предохранитель нужен для дополнительной защиты USB порта от перегрузки, материнские платы всякие бывают, мне попадались и без защиты по току (!!!).

08_SAM_1752.JPG

На второй боковой части корпуса расположены два индикаторных светодиода, и два переключателя для выбора напряжения питания, либо для его отключения. Зелёный светодиод свидетельствует об успешном USB-соединении, а красный светодиод загорается в момент чтения или записи программы микроконтроллера.

09_SAM_1756.JPG

Приклеил самоклеющиеся ножки.

10_SAM_1820.JPG

Готово!

11_SAM_1824.JPG

Про процесс прошивки и другую подробную информацию можно прочитать в этой статье, ну а я приведу лишь модифицированную схему программатора:

Схема программатора USBasp

Из схемы видно, что добавлен LDO-стабилизатор на 3.3 вольта (NCP1117-3.3), стабилитроны в цепи USB-порта (любые на напряжение 3.6В), а также добавлен предохранитель на ток 0,5 ампер. Также ниже можно скачать модифицированную мной печатную плату в формате SL5, из которой выкинут разъём программирования (он теперь находится на корпусе программатора), благодаря чему сильно упростилась «разводка» платы на одностороннем стеклотекстолите. Также в своём варианте я применил smd-резисторы типоразмера 1206, под которые плата и была переделана.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит ATmega8-16PU 1
Линейный регулятор TLV1117-33 1 NCP1117-33
Стабилитрон 3.6В 2
D1, D2 Светодиод любой 2
R1 Резистор smd 1206 10 кОм 1
R2, R6 Резистор smd 1206 68 Ом 2
R3 Резистор smd 1206 0 Ом 1 Перемычка
R4, R5 Резистор smd 1206 390 Ом 2
R7 Резистор smd 1206 1.5 кОм 1
Резистор smd 1206 270 Ом 1
C1, C2 Конденсатор smd 1206 18 пФ 2
C3 Конденсатор smd 1206 0.1 мкФ 2
C5 Конденсатор 10 мкф 10в 1
Q2 Кварц 12 МГц 1
FUSE Предохранитель 0.5 Ампер 1