Программатор что это такое
Программатор — Википедия
Материал из Википедии — свободной энциклопедии
Программатор ПЗУ с ультрафиолетовым стираниемПрограмма́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, флеш-память, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[1]).
По типу микросхем[править | править код]
Универсальные программаторы могут поддерживать все вышеперечисленные типы.
По сложности[править | править код]
Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM-, LPT-порту или USB. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg) [2].
Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для её разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.
В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 3507 дней].
По подключению микросхемы[править | править код]
Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, то есть позволяют прошивать микросхему, не вынимая её из устройства.
При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.
По подключению к компьютеру[править | править код]
Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.
Для подключения программаторов могут применяться:
Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.
Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.
Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].
По дополнительным функциям[править | править код]
(Здесь указаны как аппаратные, так и программные функции.)
- Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
- Проверка правильности подключения ещё до попытки стереть микросхему.
- Проверка исправности программатора.
- JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
- Автономные (полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
- Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
- Возможность самостоятельного обновления прошивки самого́ программатора.
- Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
- В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.
описание, назначение 🚩 для чего нужен программатор 🚩 Комплектующие и аксессуары
Программатор – это аппаратно-программное устройство, которое служит для считывания или записи информации в запоминающее устройство (внутреннюю память микроконтроллеров). В случае если радиолюбителю нужно один раз запрограммировать микроконтроллерное устройство, можно воспользоваться обычным программатором, который подключается к COM- или LPT- порту. Например, самым простым программатором для микросхем AVR является кабель из 6 проводов и 4 резисторов (программатор PonyProg).
С помощью обычного программатора можно загружать программы в формате hex во многие микроконтроллеры AVR, не тратя лишнего времени и средств. Кроме того, программатор можно использовать как внутрисхемный, благодаря чему можно программировать микроконтроллер AVR не извлекая его из устройства.
Подключаются такие программаторы к компьютеру с помощью специальной программы (которая тоже называется программатором). Она передает прошивку с компьютера, а устройство только записывает ее в память микросхемы. Программаторы могут подключаться через последовательный или параллельный порт, через USB-разъем и т.д. Современные программаторы подключаются, как правило, через USB.
USB-программатор предназначен для программирования микропроцессорных устройств определенной компании (зависит от марки программатора) в собранном виде. С помощью него заметно упрощается процесс настройки ПО.
Для использования устройства необходимо подключить его к одному из USB-портов компьютера. После этого на компьютере появится сообщение о подключении нового USB-устройства USBasp, а на самом программаторе загорится светодиод, который означает, что устройство успешно подключено.
Затем нужно установить драйвера, чтобы ОС могла корректно работать с данным устройством. После этого можно будет подключать микропроцессорное устройство к ISP интерфейсу. При программировании будет светиться второй светодиод.
Как правило, программатор имеет два интерфейса – один для подключения микроконтроллера, второй для подключения к компьютеру. Для того чтобы подключить микроконтроллер, можно воспользоваться режимом последовательного программирования ISP. А к компьютеру данное устройство подключается через стандартный USB-разъем.
Для управления программатором нужно устанавливать специальные программы. Лучше всего пользоваться оконными приложениями. Например, для работы с устройством можно использовать программы ExtremeBurner, Khazama, avrguge и другие.
Программатор Громова | Практическая электроника
Первый вопрос, который вы хотите задать в лоб – что же вообще такое “программатор”? Слово “программатор” образуется как ни странно, от слова “программа”. А что такое программа? Если вспомнить, что такое телепрограмма и зачем она была нужна (кстати, сейчас до сих пор продается в киосках), то стает понятно, что программа телепередач – это расписание по времени этих самых телепередач. Значит программой можно назвать какие-то действия или события, которые будут выполняться одно за другим во времени, когда мы этого захотим или не захотим. Следовательно, программатор – это всего-навсего какое-то устройство, которые позволяет нам записывать либо читать программу. Изменить программу уже может только сам программист ;-)
СМ
Начинающим радиолюбителям переход от сборки простейших аналоговых устройств, типа мультивибраторов, к сборке устройств с применением МК бывает затруднен тем, что здесь мало просто развести и спаять устройство на печатной плате, нужно еще и залить прошивку в память микроконтроллера с помощью программатора. Как уже было написано в предыдущих статьях, микроконтроллер, до тех пор, пока мы не “залили” в него прошивку, является просто бесполезным куском кремния. И тогда начинающий радиолюбитель ищет информацию в интернете о сборке простого, но эффективного программатора, который помог бы ему взять быстрый старт в этом нелегком деле.
Я не ошибусь, если скажу, что 80% новичков, если у них на компьютере есть в наличии СОМ порт, собирают в качестве первого программатора Программатор Громова. Эта схема, при своей простоте и умелом обращении, настоящий шедевр). Действительно, ведь для того, чтобы собрать своими руками программатор, подключаемый к USB порту и имеющий в своем составе микроконтроллер AVR, который требуется предварительно запрограммировать, нужен опять таки программатор. А где взять новичку программатор, пусть и для подобной разовой прошивки ? Получается парадокс курицы и яйца), чтобы собрать USB программатор, нам необходимо сначала запрограммировать микроконтроллер программатора))).
Итак, давайте разберем, что же такое вообще прошивание микроконтроллера (МК) с помощью программатора, и как оно осуществляется? Для того, чтобы прошить МК, нам потребуется связка из самого программатора, устройства, спаянного на печатной плате, и программа, называемая оболочкой, работающая с этим устройством.
Программатор Громова
Под каждый тип программатора чаще всего требуется своя программная оболочка. Для сборки программатора Громова не требуется программировать микроконтроллер. В данном программаторе он отсутствует. Этот программатор работает с двумя широко распространенными оболочками для прошивания: PonyProg и Uniprof. У нас будут посвящены отдельные обзоры на эти программки. Данный программатор подключается к СОМ порту. Единственным препятствием для его сборки может стать физическое отсутствие данного разъема на материнской плате вашего системного блока. Почему именно системного блока? Потому что ноутбуки, а также современные модели материнских плат 2010 – 2011 года выпуска и выше часто имеют на контактах СОМ порта пониженное напряжение питания. Что это означает? Это означает, что вы можете собрать данный программатор, а он у вас не заработает. Но с компьютерами 2007 – 2008 года выпуска и старше, за исключением ноутбуков, данный программатор должен гарантированно работать. Подключение через переходники USB – COM не спасают в этом случае, так как при этом наблюдается в лучшем случае, сильное снижение скорости, в худшем, программатор вообще отказывается работать.
Давайте рассмотрим принципиальную схему программатора:
Что же мы видим на этой схеме ? Разъем СОМ порта, по другому называемый DB9, 7 резисторов одинакового номинала сопротивлением в 1 кОм и мощностью 0.25 Ватт и 3 импульсных диода. Из диодов подойдут, либо отечественные, КД522, КД510, либо импортные 1N4148.
Давайте разберем, как выглядят данные радиодетали.
На фото ниже представлен разъем DB9:
Как мы видим, пины (выводы) этого разъема обозначены цифрами на нем. Если будут какие-то затруднения с определением какой штырек соответствует какому отверстию разъема, рекомендую вставить проволочку в отверстие пина разъема, перевести мультиметр в режим звуковой прозвонки и прикоснувшись одновременно щупами мультиметра к проволочке по очереди к каждому из штырьков на разъеме, вызвонить соответствие штырьков отверстиям. Это может потребоваться в случае, если вы подключаете разъем проводками к плате. Если разъем будет впаян непосредственно в плату, то эти действия не требуются.
У кого на панели разъемов материнской платы, находящейся в задней части компьютера, нет COM разъема, можно купить планки с таким разъемом. Но нужно убедиться что производители распаяли контроллер СОМ порта на материнской плате, и предусмотрели подключение шлейфа данной планки, непосредственно к плате. Иначе такой вариант вам не поможет. В качестве альтернативного варианта, могу предложить приобрести контроллер СОМ порта, размещенный на специальной плате расширения, которую устанавливают в PCI слот ПК
Также при желании, если вы захотите, чтобы кабель, подключаемый к СОМ порту, у вас отключался от программатора, можно открутив винты крепления, снять разъем с планки, и закрепить его в корпусе программатора. Но будьте внимательны, и после покупки прозвоните все жилы, на соответствие номерам, с обоих концов кабеля, потому что часто в продаже встречаются похожие внешне кабеля, имеющие перекрещенные жилы. Кабель для подключения к данному разъему, должен быть обязательно полной распайки, DB9F – DB9F, прямой, не перекрещенный, с другими кабелями разъем работать не будет.
Если же возникают проблемы с приобретением данного кабеля, можно взять и перекрещенный кабель или удлинитель 9M-9F, но в таком случае может потребоваться обрезать разъем с другого конца, и вызвонив жилки по пинам разъема подпаяться непосредственно к плате программатора. У меня, кстати, был как раз такой кабель – удлинитель, и мне пришлось обрезать разъем со второго конца. Не покупайте кабеля для прошивки телефонов через СОМ порт, они не годятся для наших целей, так как там неполная распайка жил.
Идем дальше.
Диоды берем КД522, КД510 или 1N4148. Вот так выглядит диод КД522
Будьте внимательны, диод имеет полярность включения. Другими словами, его не безразлично как впаивать, можно впаять и задом наперед, тогда программатор работать не будет. Как известно, диод имеет катод и анод. Катод промаркирован, в данном случае, черным колечком.
Ну с резисторами, я думаю, проблем не возникнет. Идете в радиомагазин и говорите продавцу: “Мне нужны резисторы 1 кОм 0.25 Ватт”. Желательно взять импортные резисторы, так как у отечественных МЛТ идет большее отклонение от номинала.
Если вы владеете методом ЛУТ, то для вас не составит труда собрать программатор, по этой печатной плате. Ниже приведен скрин платы из программы Sprint Layout:
Если же вы до сих пор не освоили метод ЛУТ, тогда вам больше подойдет следующая плата, рисунок которой можно легко нарисовать маркером для печатных плат прямо на текстолите. Оба варианта печатных плат, вы сможете скачать в общем архиве, в конце статьи. Не забудьте зачистить и обезжирить плату перед нанесением рисунка. Выводы деталей на ней расположены не близко, и проблем при пайке не возникнет даже у новичков
Отличие платы от оригинальной схемы, в наличии светодиода индикации и токоограничительного резистора в цепи светодиода. Все выводы подписаны на плате. Слева номера выводов кабеля СОМ порта, которые нужно подпаять к плате, не подписанные номера жил можно заизолировать и не подпаивать. Справа идут пины для подключения к программируемому микроконтроллеру.
У меня был собран пять лет назад данный программатор на плате, сделанной от маркера. Так выглядела его печатная плата после лужения на этапе сборки в корпусе:
Извините за синюю изоленту)), тогда еще, 5 лет назад, термоусадочные трубки были в диковинку.
Разъем кабеля программатора с другого конца был обрезан, и проводки кабеля были впаяны непосредственно в плату. Сам кабель был закреплен металлическим хомутом. На фото видно, что кабель толстый, и если бы был не закреплен, при изгибании мог нарушиться контакт проводков, на плате программатора
Для подключения к микроконтроллеру устанавливаемому для прошивания на беспаечную макетную плату, я использовал цветные гибкие проводки. Соединенные с проводками такого же цвета, взятыми из жилок витой пары. Это сделано для того, чтобы с одной стороны жилки не переломились при эксплуатации, а с другой было обеспечено легкое подключение к макетной плате. Длина данных проводков должна быть максимум 20 – 25 См, во избежание ошибок от наводок, при программировании. Не используйте обычные неэкранированные провода, вместо СОМ кабеля! Замучаетесь с ошибками при прошивке.
Программируемый микроконтроллер нуждается во внешнем питании +5 Вольт, подаваемом на программатор. Для этой цели можно собрать стабилизатор на микросхеме 7805, с питанием от внешнего блока питания, либо поступить проще и воспользоваться кабелем и зарядным устройством с выходом USB, подпаяв жилки кабеля USB прямо к печатной плате.
Для справки: питание и земля, в разъеме USB идут по краям. Вот распиновка разъема USB:
Теоретически можно, если вы достаточно аккуратный человек, запитаться и от USB порта компьютера, подключив к нему данный кабель, но помните, вы делаете это на свой страх и риск ! Лучше найти один раз деньги и приобрести USВ зарядное устройство. Не используйте отличающиеся от USB, нестабилизированные зарядные устройства от сотовых телефонов и другой техники, вы рискуете испортить микроконтроллер.
При запитывании от USB порта компьютера, в случае замыкания жилок программатора +5 вольт (VCC) и земли (GND), вы рискуете сжечь южный мост материнской платы компьютера, ремонт такой материнской платы будет нецелесообразен. Я пользовался обоими вариантами для подачи питания, и через стабилизатор, и через кабель от зарядного USB. Еще один нюанс, после программирования микроконтроллера, чтобы микроконтроллер запустился, необходимо разорвать цепь RESET.
Это можно сделать просто выткнув проводок соединенный с пином RESET программатора. И тогда программа, зашитая в микроконтроллер начнет выполняться. Я решил сделать более удобное решение и поставил малогабаритный клавишный выключатель на разрыв цепи RESET.
Другими словами при его отключении, ток в этой цепи больше не течет и микроконтроллер начинает работу. Заместо клавишного выключателя можно воспользоваться любой малогабаритной кнопкой с фиксацией, либо поставить тумблер. Кому что подскажет фантазия ;-)
Наверняка вы уже обратили внимание, что на схеме программатора Громова, есть какие-то незнакомые слова, а в частности VCC, GND, MISO, MOSI, SCK и RESET. Разберем, что же значат эти обозначения на примере микроконтроллера Attiny 2313.
В данном случае изображена очень распространенная и недорогая микросхема: микроконтроллер AVR Tiny (он же Аttiny) 2313. Ножки микросхемы, как мы видим, имеют свой номер. Нумерация идет против часовой стрелки, от ключа в виде точки, расположенной в левом верхнем углу корпуса микроконтроллера. Ниже на рисунке пример того, как идет нумерация на микросхемах в корпусе DIP:
В первую очередь нас интересуют перечисленные выше шесть ножек. Назначения всех остальных мы вкратце коснемся в конце статьи.
Итак, расшифровываем:
VCC. На эту ногу мы подаем напряжение питания микросхемы. Стандартом является 5 Вольт. Допустимо отклонение в большую сторону, до 5.5 Вольт. Напряжение свыше 6 Вольт, может привести к порче микросхемы. Отклонение в меньшую сторону более допустимо. Есть версии микроконтроллеров Tiny 2313V, которые могут работать даже от двух пальчиковых батареек или аккумуляторов, или от напряжения в 2.4 Вольта.
GND. Ну это всем знакомая и известная “земля”, она же ”масса”, и она же минус питания. Данный контакт является общим для всех устройств, которые имеют подключение друг к другу. Если вы соединяете, какие-либо блоки устройства между собой, их земли следует объединить. В данном случае, земля микроконтроллера, объединяется с землей программатора.
MISO. Сокращение от Master – In – Slave – Out. По этой линии передаются данные от микроконтроллера к программатору.
MOSI. Сокращение от Master – Out – Slave – In. По этой линии тоже передаются данные от программатора к микроконтроллеру.
SCK. На этой линии формируется тактовый сигнал.
RESET. Данный вывод используется для сброса микроконтроллера после стирания одиночным импульсом. Если RESET будет отключен, путем ошибочного выставления определенного фьюза, (о выставлении этого, и других фьюзов мы поговорим в следующих статьях) мы не сможем стереть и перепрошить микроконтроллер, через интерфейс SPI.
Достаточно подсоединить эти перечисленные 6 пинов программатора, к 6 ножкам микроконтроллера, и мы сможем прошить МК.
Рассмотрим остальные ножки МК:
У микроконтроллера Tiny2313 3 порта: А (А0-А2, 3 ножки), B (В0-В7, 8 ножек) D (D0-D6, 7 ножек), всего насчитывается 18 используемых в качестве ножек портов ввода – вывода. Каждую из этих ножек можно сконфигурировать отдельно на ввод и на вывод. Не являются ножками портов, только земля (GND) и питание (VCC).
Ниже рассмотрено дополнительное назначение некоторых ножек МК:
OC1A И OC1B. Ножки для формирования ШИМ (Широтно – импульсная модуляция) сигнала, таймер 1.
OC0A и OC0B. Ножки для формирования ШИМ сигнала, таймер 0.
AIN0 и AIN1. Ножки для подачи аналогового сигнала на микроконтроллер.
XTAL1 и XTAL2. Ножки для подключения кварцевого резонатора, для тактирования от него.
RXD и TXD. Линии подключения МК по интерфейсу UART.
Я надеюсь, данная статья будет полезна начинающим любителям микроконтроллеров, и позволит собрать программатор, который будет долгое время радовать вас своей работой.
Читаем далее: Как шить с помощью программатора Громова
Программатор - это... Что такое Программатор?
Программатор ПЗУ с ультрафиолетовым стираниемПрограмма́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[1]).
Классификация программаторов
По типу микросхем
Универсальные программаторы могут поддерживать все вышеперечисленные типы.
По сложности
Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM- или LPT-порту. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg)[2].
Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для ее разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.
В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 861 день].
По подключению микросхемы
Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, но позволяют прошивать микросхему, не вынимая её из устройства.
При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.
По подключению к компьютеру
Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.
Для подключения программаторов могут применяться:
Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.
Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.
Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].
По дополнительным функциям
(Здесь указаны как аппаратные, так и программные функции.)
- Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
- Проверка правильности подключения ещё до попытки стереть микросхему.
- Проверка исправности программатора.
- JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
- Автономные (Полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
- Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
- Возможность самостоятельного обновления прошивки самого́ программатора.
- Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
- В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.
Ссылки
Примечания
AVR. Учебный курс. Трактат о программаторах
Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.
Итак, первым шагом в освоении микроконтроллера обычно становится программатор. Ведь без программатора невозможно загнать программу в микроконтроллер и он так и останется безжизненным куском кремния.
Что же представляет из себя это устройство?
В простейшем случае программатор это девайс который связывает микроконтроллер и компьютер, позволяя с компа залить файл прошивки в память контроллера. Также нужна прошивающая программа, которая по специальному протоколу загонит данные в микроконтроллер.
Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:
Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).
К этим выводам подключается прошивающий шнур программатора и происходит заливка прошивки. После чего шнур отключается и контроллер начинает работу.
У AVR прошивка заливается по интерфейсу SPI и для работы программатора нужно четыре линии и питание (достаточно только земли, чтобы уравнять потенциалы земель программатора и устройства):
- MISO — данные идущие от контроллера (Master-Input/Slave-Output)
- MOSI — данные идущие в контроллер (Master-Output/Slave-Input)
- SCK — тактовые импульсы интерфейса SPI
- RESET — сигналом на RESET программатор вводит контроллер в режим программирования
- GND — земля
Сам же разъем внутрисхемного программирования представляет собой всего лишь несколько штырьков. Лишь бы на него было удобно надеть разъем. Конфигурация его может быть любой, как тебе удобней.
Однако все же есть один популярный стандарт:
Для внутрисхемной прошивки контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). А также бывают безмозглыми или со своим управляющим контроллером.
Безмозглые программаторы, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP может быть проблемой. Плюс бывает зависимость от тактовой частоты процессора компьютера.
Так что твой 3ГГЦ-овый десятиядерный монстр может пролететь, как фанера над Парижем.
Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.
Вот очень краткая подборка проверенных лично безмозглых программаторов:
- Программатор Громова.
Простейшая схема, работает через оболочку UniProf(удобнейшая вещь!!!), но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнках может не заработать. А еще на быстрых компах часто не работает. Да, через адаптер USB-COM эта схема работать не будет. По причине извратности подхода :) - STK200
Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта. - FTBB-PROG.
Очень надежный и быстрый программатор работающий через USB, причем безо всяких извратов. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI, да в таком мелком корпусе, что запаять ее без меткого глаза, твердой руки и большого опыта пайки весьма сложно. Шаг выводов около 0.3мм. Данный программатор встроен в демоплаты Pinboard
Программаторы с управляющим контроллером лишены многих проблем безмозглых. Они без особых проблем работают через USB. А если собраны на COM порт, то без извращенских методик работы с данными — как честный COM порт. Так что адаптеры COM-USB работают на ура. И детали подобрать можно покрупней, чтобы легче было паять. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы прошить ему управляющий контроллер. Проблема курицы и яйца. Широко получили распространение такие программаторы как:
- USBASP
- AVRDOPER
- AVR910 Protoss
Внутрисхемное программирование, несмотря на все его удобства, имеет ряд ограничений.
Микроконтроллер должен быть запущен, иначе он не сможет ответить на сигнал программатора. Поэтому если неправильно выставить биты конфигурации (FUSE), например, переключить на внешний кварцевый резонатор, а сам кварц не поставить. То контроллер не сможет запуститься и прошить его внутрисхемно будет уже нельзя. По крайней мере до тех пор пока МК не будет запущен.
Также в битах конфигурации можно отключить режим внутрисхемной прошивки или преваратить вывод RESET в обычный порт ввода-вывода (это справедливо для малых МК, у которых RESET совмещен с портом). Такое действо тоже обрубает программирование по ISP.
Параллельное высоковольтное программирование
Обычно применяется на поточном производстве при массовой (сотни штук) прошивке чипов в программаторе перед запайкой их в устройство.
Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не 3 линии данных, а восемь + линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после прошивки переставляется в целевое устройство.
Для радиолюбительской практики он особо не нужен, т.к. ISP программатор решает 99% насущных задач, но тем не менее параллельный программатор может пригодиться. Например, если в результате ошибочных действий были неправильно выставлены FUSE биты и был отрублен режим ISP. Параллельному программатору на настройку FUSE плевать с высокой колокольни. Плюс некоторые старые модели микроконтроллеров могут прошиваться только высоковольтным программатором.
Из параллельных программаторов для AVR на ум приходит только:
- HVProg от ElmChan
- Paraprog
- DerHammer
А также есть универсальные вроде TurboProg 6, BeeProg, ChipProg++, Fiton которые могут прошивать огромное количество разных микроконтроллеров, но и стоят неслабо. Тысяч по 10-15. Нужны в основном только ремонтникам, т.к. когда не знаешь что тебе завтра притащат на ремонт надо быть готовым ко всему.
Прошивка через JTAG
Вообще JTAG это отладочный интерфейс. Он позволяет пошагово выполнять твою программу прям в кристалле. Но с его помощью можно и программу прошить, или FUSE биты вставить. К сожалению JTAG доступен далеко не во всех микроконтроллерах, только в старших моделях в 40ногих микроконтроллерах. Начиная с Atmega16.
Компания AVR продает фирменный комплект JTAG ICEII для работы с микроконтроллерами по JTAG, но стоит он (как и любой профессиональный инструмент) недешево. Около 10-15тыр. Также есть первая модель JTAG ICE. Ее можно легко изготовить самому, а еще она встроена в мою демоплату Pinboard.
Прошивка через Bootloader
Многие микроконтроллеры AVR имеют режим самопрошивки. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него заливается прошивка. Подробней описано в статье посвященной бутлоадеру.
Достоинство этого метода еще и в том, что работая через бутлоадер очень сложно закосячить микроконтроллер настолько, что он не будет отвечать вообще. Т.к. настройки FUSE для бутлоадера недоступны.
Бутлоадер также прошит по умолчанию в главный контроллер демоплаты Pinboard чтобы облегчить и обезопасить первые шаги на пути освоения микроконтроллеров.
Pinboard II
Прошивка AVR с помощью демоплаты Pinboard II (для Pinboard 1.1 все похоже)
Топ-10 лучших программаторов и дебаггеров с Алиэкспресс
В жизни любого радиолюбителя наступает момент, когда собранный своими руками программатор хочется заменить на что-то купленное и с бОльшими возможностями. Или расширить номенклатуру совместимых кристаллов. На Алиэкспресс можно найти огромный ассортимент универсальных программаторов и готовые адаптеры для установки микросхем памяти и контроллеров. В подборке будут интересные модели для AVR (ATMega/ATTiny), для PIC, STM8/STM32, для EEPROM, для Zigbee контроллеров и адаптеры.
С другими полезными обзорами и списками выгодных покупок вы можете ознакомиться по ссылке.
Внутрисхемный отладчик CC Debugger за $7.65
Все больше становится доступного программного обеспечения, с помощью которого можно настраивать по себя различные модули и устройства. А конкретно, CC-Debugger может использоваться для программирования и отладки систем на базе 8051, например, модулей CC2531, на базе которых производятся гаджеты для умного дома и «интернета вещей». Работает с программным обеспечением IAR и SmartRF Studio.
Недорогой USB Zigbee трансмитер-снифер СС2531
Хороший пример использования предыдущего отладчика CC-Debugger — это заливка адаптированной прошивки в компактный USB донгл для сети Zigbee. С помощью модифицированного Zigbee трансмиттера можно привязывать устройства в свою сеть, создавать собственные Zigbee-мосты, анализировать протоколы датчиков и так далее.
Универсальный программатор AVR USBASP
Один из лучших программаторов для AVR — это классический USBASP, компактный и универсальный программатор, для загрузки программного обеспечения через интерфейс ISP. В комплекте есть кабель для загрузки через ISP на 10 контактов. Подходит не только для семейства ATMEGA8, но и для новых ATMEGA128. Работает в Win7.
Дешевый ПРОГРАММАТОР AVR USBASP
А это еще один вариант USB ISP программатора для AVR (семейства ATMega и ATTiny). В отличие от предыдущего имеет выбор питания кристалла (5V или 3.3V джампером), а также в два раза меньшую стоимость. Интерфейс для программирования ISP, но есть смысл воспользоваться отдельным адаптером с ISP10 на ISP6 для удобства работы с компактными отладочными платами Arduino.
Универсальный программатор Ch441A
Устройство представляет собой полноценный uart-мост и эмулятор последовательного порта. Предназначен для прошивки микросхем памяти (24 EEPROM и 25 SPI flash 8pin/16pin) и микроконтроллеров по spi (AVR, PIC, Singlechip STC). Подходит для восстановления флэш-памяти BIOS USB. Для работы с контроллерами Атмел используется программное обеспечение AVR Ch441A или AVRDUDE
Программатор-отладчик ST-LINK
Для работы с устройствами от STMicroelectronics рекомендую использовать программатор ST LINK. По ссылке версия ST-Link V2, который подходит для чипов семейств STM8 и STM32. Удобен для загрузки встроенного программного обеспечения на контроллер прямо в составе схемы, а также для отладки работы и поиска ошибок. В комплекте есть 4-pin кабель. Цена смешная — полтора бакса.
Программатор и SWD адаптер J-Link
А вот если нужен адаптер посерьезнее, то есть смысл посмотреть недорогой программатор SWD, который совместим со всеми функциями J-Link. В данной модели интерфейс упрощен до четырех линий: VCC, SWDIO, SWCLK, GND. Но, по сравнению с обычными, этот вариант быстрый и эффективный. Подключается через MicroUSB, корпуса, увы, не предусмотрено. Цена всего 2 бакса.
Программаторы PICKIT версий 2/3/3.5
Один из лучших USB программаторов для PICmicro контроллеров и ключей KeeLOQ производства компании Microchip Technology. В лоте на выбор есть модели: PICKIT3, PICKIT2 или PICKIT 3,5. Лучше брать последние версии устройства. В комплекте идет плата расширения с ZIF-сокетом (PIC ICD2). Полный схемотехнический аналог фирменного программатора PICKIT 3 компании Microchip.
Универсальный USB SPI программатор EZP2019
Новейшая версия универсального USB программатора EZP2019 с высокоскоростным интерфейсом SPI с большим набором адаптеров для EEPROM, клипсами и диском с программным обеспечением. Этот вариант несколько лучше дешевого программатора Ch441A. Является усовершенствованной версией программаторов EZPO2010/EZP2013. В комплекте есть все необходимое для работы.
Есть еще один хороший вариант — универсальный программатор TL866II, но он не поместился в текст статьи, о нем будет позже.
Программатор — Википедия. Что такое Программатор
Программатор ПЗУ с ультрафиолетовым стираниемПрограмма́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, флеш-память, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[1]).
Классификация программаторов
По типу микросхем
Универсальные программаторы могут поддерживать все вышеперечисленные типы.
По сложности
Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM-, LPT-порту или USB. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg)[2].
Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для её разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.
В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 2984 дня].
По подключению микросхемы
Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, то есть позволяют прошивать микросхему, не вынимая её из устройства.
При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.
По подключению к компьютеру
Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.
Для подключения программаторов могут применяться:
Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.
Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.
Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].
По дополнительным функциям
(Здесь указаны как аппаратные, так и программные функции.)
- Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
- Проверка правильности подключения ещё до попытки стереть микросхему.
- Проверка исправности программатора.
- JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
- Автономные (полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
- Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
- Возможность самостоятельного обновления прошивки самого́ программатора.
- Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
- В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.
См. также
Примечания
Ссылки
Программатор — Википедия. Что такое Программатор
Программатор ПЗУ с ультрафиолетовым стираниемПрограмма́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, флеш-память, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[1]).
Классификация программаторов
По типу микросхем
Универсальные программаторы могут поддерживать все вышеперечисленные типы.
По сложности
Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM-, LPT-порту или USB. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg)[2].
Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для её разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.
В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 2984 дня].
По подключению микросхемы
Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, то есть позволяют прошивать микросхему, не вынимая её из устройства.
При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.
По подключению к компьютеру
Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.
Для подключения программаторов могут применяться:
Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.
Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.
Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].
По дополнительным функциям
(Здесь указаны как аппаратные, так и программные функции.)
- Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
- Проверка правильности подключения ещё до попытки стереть микросхему.
- Проверка исправности программатора.
- JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
- Автономные (полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
- Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
- Возможность самостоятельного обновления прошивки самого́ программатора.
- Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
- В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.
См. также
Примечания
Ссылки
Избранные докиПодписаться через RSS2Email.ru |
Последнее редактирование: 2010-09-21 11:56:32 Метки материала: продвижение сайта статьями, продвижение сайта, продвижение статьями, сайт, изготовление сайтов, сайты, Интернет-магазины, Интернет, каталог, дизайн, создание сайтов, бесплатные сайты, ремонт ПК, ПК, Интернет, CMS, SMO, хостинг, заставка, рабочий стол |
Миниатюрный USB программатор для AVR микроконтроллеров / Habr
Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):
Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:
На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.
Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно
Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом :) Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:
После прошивки должен загореться светодиод подключенный к 23 ноге микроконтроллера. Это будет верный признак того, что программатор прошит удачно и готов к работе.
Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:
Выбираем папку где лежат дрова и жмем Далее
Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:
Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера
Все, теперь программатор готов к работе.
Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.
Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.
Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.
Скачать файл печатной платы в SprintLayout можно по этой ссылке
Ну вроде все, если возникнут вопросы, постараюсь ответить.
Программатор | Электроника для всех
При работе с микроконтроллерами важнейшим девайсом являетя программатор, именно он может залить в МК нашу программу. Он же часто становится камнем преткновения на пути освоения AVR.
Дело в том, что для работы простейшего программатора, не требующего в своем составе микроконтроллера, нужен компьютер с COM или LPT портом, причем желательно с частотой процессора не выше гигагерца-двух. Да операционную систему подревней — WinXP или Win2K. А это ныне редкость.
С другой стороны, для USB программаторов нужно предварительно прошить контроллер. А чем его прошить? Вот тут и возникает проблема курицы и яйца — как прошить контроллер программатора не имея программатора.
Не так давно появилось решение позволяющее сделать надежный и быстрый USB программатор AVR на базе тупой, непрограммируемой, логики.
Bitbang, что это такое и с чем его едят
Это не что иное как прямое управление выводами какого либо порта. В COM порт можно отправить байт через какой либо высокоупровневый API и он просто выйдет через линию TX потоком стандартого RS232 сигнала.
А можно достучаться напрямую до регистров отвечающих за состоянием каждого пина порта и дрыгая их как нам угодно сэмулировать через тот же COM порт не только RS232, но и SPI, I2C или Dallas 1-wire, HD44780 протокол, применив простейший тупой обвяз. Это и будет битбанг.
В старых программаторах вроде SiProg (PonyProg) или в схеме Громова так и было сделано с COM портом. И работало надежно и стабильно. Но, увы, СОМ порт ушел в небытье, а при попытке сделать то же самое с виртуальным COM портом на конвертере USB-RS232 ничего не получалось. Т.к. заточен он был все же на работу нормального COM порта, а для битбанга приходилось извращаться. В результате такие схемы либо не работали вовсе, либо работали ОЧЕНЬ медленно, прошивая контроллер за час-полтора, что ни в какие ворота не лезет.
Все изменилось с появлением микросхемы конвертера USB-UART FT232R у которой стал доступен битбанг режим не через виртуальный COM порт, а напрямую через драйвер FTDI. И вот тут наступила нирвана.
За битбанг там отвечает 8 выводов. Вот их раскладка.
В даташите ее нет, но она есть в аппликухе Application Note AN_232R-01 for the FT232R and FT245R Bit Bang Modes
В результате, из одной только FTDI получается первоклассный скоростной программатор, прошивающий 16кб прошивки за 10-12 секунд и это вместе с верификацией!!!
А из деталей надо ТОЛЬКО микросхему FT232RL, два конденсатора на 0.1uF и гнездо USB. ВСЕ! Ну и проводочки естественно.
Схема включения получается следующей:
(далее…)
Read More »