Микроконтроллер. ...и что с ним делать

Сегодня, когда на дворе 2017 год, рассказывать со страниц своего сайта об устаревших интерфейсах типа LPT и COM смысла нет (так же как нет этих портов в современных ноутбуках. Правда, еще остаются опционально в виде штырьков на материнских платах некоторых производителей). Если только в качестве архива, типа, ностальжи - как это было. Сегодня все очень просто - купил AVR mkII (USB) оригинальный программатор или его клон и никаких ископаемых COM/LPT.
Сегодня радиолюбительские форумы предлагают множество вариантов сборки клона AVR mkII программатора - это как киты так и готовые устройства по цене не более 10 баксов. И все!!! Мы получаем 3в1 - ISP/PDI/TPI интерфейсы.

Достаточно в поисковике ввести запрос "AVRISP-MKII своими руками" или "AVRISP-MKII клон" и вы получите много ссылок на схемы и киты для изготоврения клона эта программатора.

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

Микроконтроллер. ...и что с ним делать

В сети существует много ресурсов, посвященных применению микроконтроллеров (МК) и их программированию. Прошить (запрограммировать) МК можно при помощи программатора. Программаторы бывают разные. На западе существуют "стартовые наборы", которые предназначены для программирования нескольких видов МК с кнопочками и светодиодами (для работы с прерываниями). Таких программаторов существует несколько видов: STK200/300/500(501/502), ICE40/50, JTAGICE, ICE200, AVRISP.

Интерфейс LPT


Эта схемка подключается к LPT порту и на выходе выдает сигналы, необходимые для нормальной работы с МК: SCK - тактовый сигнал, MOSI - главный выход-подчиненный вход, MISO - главный вход-подчиненный выход, RES - сброс программируемого MCU (МК), GND - общая земля и Vcc - напряжение питания МК. В схеме микросхему 74НС244 можно заменить на КР1533АП5, диод 1N4148 - на КД521, КД522. Вместо 74НС244 можно использовать К555АП5. Эта микросхема предотвращает паразитные наводки в кабеле и защищает LPT-порт. С этим программатором работает программа Pony. Взять ее можно на сайте http://www.lancos.com.

Эта схема (приведена для понимания идеи), назовем ее референсной, подключается к предыдущей: разъем J1 CON10 подключается к J2 STRIP 1X9 - просто надо составить соответствие между сигналами и все будет работать (проверено). Вообще говоря, к любому из адаптеров можно подключить МК с кварцем и двумя емкостями. Подать питание и смело можно шить. Главное знать какой именно адаптер Вы паяете и какая конкретно программа его поддерживает.


Существует еще адаптер Altera Byte Blaster и STK200/300. Программу для них можно взять здесь (программа поддерживает оба этих адаптера, работает из командной строки). Я спаял адаптер STK200/300. Вот его схема:

        





Принципиальная схема адаптера Altera Byte Blaster имеет вид:

Все приведенные здесь адаптеры (программаторы) реализуют принцип In System Programming, ISP (иногда встречается термин In Circuit Programming, ICP), т.е. программирование МК прямо в устройстве: на плату запаиваете разъем с 6-ю или 10-ю выводами, разводите на него сигналы и теперь если надо запрограммировать МК, к этому разъему подключаете шлейф от программатора и через несколько секунд firmware (прошивка) МК будет обновлена - без извлечения МК из рабочей платы.

Существует еще один адаптер: SP12 так же с LPT интерфейсом. Страничка в сети с подробным описанием процедуры установки софта и подробным фотоописанием находится здесь. Я приведу лишь схему и пару фото того, что это такое.

        




Интерфейс COM

Все хорошо, если LPT-порт свободен. А если занят? У меня, например, к LPT-порту подключен LCD (4х20) и работает програма jaLCDs 3.11. Ну, здесь несколько вариантов:
1. подключить программатор (адаптер) к USB-порту - над этим пока стоит сильно потрудится. За рубежом такие программаторы уже продаются, правда стоят они порядка USD90;
2. подключить LCD к USB-порту (тут дела обстоят несколько попроще, но...);
3. подключить программатор к COM-порту. Для этого ведь все есть и схема (даже две) и описание метода - осталось только желание, а время найдется.
Принципиальную схему такого программатора и описание метода программирования можно взять в фирменном описании Atmel "AVR910". Он построен на МК AT90S1200. Там же можно скачать прошивку для AT90S1200. Я в схеме программатора заменил транзисторы всего одной микросхемой - MAX202CPE. С таким же успехом можно заменить на MAX232 и т.д. с соответствующей дороботкой схемы, я думаю, что это не сложно. С этим прамматором работает AVRProg, которая входит в состав AVR Studio. COM программатор на at90s1200 выглядит следующим образом:

        

Недостаток этого программатора - низкая скорость (19200 бод). Это поправимо, т.к. есть еще одна схема (на at90s2313) для COM-порта. Скорость обмена данными с COM портом 115200 kbps.
В нижеприведенной схеме выводы 7 и 8 надо поменять местами!!!. Выводы 13+7 и 14+8 можно не объединять. Точно также можно не объединять 12+9 и 10+11. На выводах PD2 и PD4 висят по одному светодиоду на чтение и запись соответстсвенно (на плюс). Их можно не ставить, т.к. если Вы будете использовать сигнал "LED", то светодиод, подключенный к "LED", будет сигнализировать о любом обращении к МК - как "чтение" так и "запись". У себя я так и сделал. Схема программатора имеет вид:

        


: : Прошивка : :




Интерфейс USB

Печатная плата была изготовлена все тем же методом утюга, правда ширина дорожек - 0.5 мм (это максимальная ширина дорожек на этой плате). Шьется все программой AVRprog, входящей в AVRStudio. Скорость, конечно, маловата - 128000, ну а что вы хотели от COM-переходника.
Основа программатора - микросхема FT232BM. Это есть переходник USB на вирутальный COM-порт. Печатная плата программатора - двухсторонняя.