Как работать с программатором – описание, назначение 🚩 для чего нужен программатор 🚩 Комплектующие и аксессуары

описание, назначение 🚩 для чего нужен программатор 🚩 Комплектующие и аксессуары

Программатор – это аппаратно-программное устройство, которое служит для считывания или записи информации в запоминающее устройство (внутреннюю память микроконтроллеров). В случае если радиолюбителю нужно один раз запрограммировать микроконтроллерное устройство, можно воспользоваться обычным программатором, который подключается к COM- или LPT- порту. Например, самым простым программатором для микросхем AVR является кабель из 6 проводов и 4 резисторов (программатор PonyProg).

С помощью обычного программатора можно загружать программы в формате hex во многие микроконтроллеры AVR, не тратя лишнего времени и средств. Кроме того, программатор можно использовать как внутрисхемный, благодаря чему можно программировать микроконтроллер AVR не извлекая его из устройства.

Подключаются такие программаторы к компьютеру с помощью специальной программы (которая тоже называется программатором). Она передает прошивку с компьютера, а устройство только записывает ее в память микросхемы. Программаторы могут подключаться через последовательный или параллельный порт, через USB-разъем и т.д. Современные программаторы подключаются, как правило, через USB.

USB-программатор предназначен для программирования микропроцессорных устройств определенной компании (зависит от марки программатора) в собранном виде. С помощью него заметно упрощается процесс настройки ПО.

Для использования устройства необходимо подключить его к одному из USB-портов компьютера. После этого на компьютере появится сообщение о подключении нового USB-устройства USBasp, а на самом программаторе загорится светодиод, который означает, что устройство успешно подключено.

Затем нужно установить драйвера, чтобы ОС могла корректно работать с данным устройством. После этого можно будет подключать микропроцессорное устройство к ISP интерфейсу. При программировании будет светиться второй светодиод.

Как правило, программатор имеет два интерфейса – один для подключения микроконтроллера, второй для подключения к компьютеру. Для того чтобы подключить микроконтроллер, можно воспользоваться режимом последовательного программирования ISP. А к компьютеру данное устройство подключается через стандартный USB-разъем.

Для управления программатором нужно устанавливать специальные программы. Лучше всего пользоваться оконными приложениями. Например, для работы с устройством можно использовать программы ExtremeBurner, Khazama, avrguge и другие.

www.kakprosto.ru

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 все похоже)

 

easyelectronics.ru

Программатор — это… Что такое Программатор?

Программатор ПЗУ с ультрафиолетовым стиранием

Программа́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[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-редактор, позволяющий откорректировать записанную в микросхеме информацию.
  • Возможность самостоятельного обновления прошивки самого́ программатора.
  • Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
    • В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.

Ссылки

Примечания

dic.academic.ru

Программа Uniprof для программатора Громова

Программа Uniprof нужна для того, чтобы мы могли воспользоваться программатором Громова.

В предыдущей статье мы с вами рассмотрели, что такое программатор и как собрать программатор Громова, подключаемый к СОМ порту, а также как подключить программатор к прошиваемому микроконтроллеру. Так как программатор подключается к компьютеру, то мы должны после подключения программатора к ПК запустить на компьютере специальный софт, называемый программой – оболочкой, для того чтобы мы могли прошить микроконтроллер. С программатором Громова работают две широко распространенные оболочки: Uniprof и  Ponyprog, кто — то выбирает первую, кто-то вторую, я же предпочитаю работать с Uniprof. В этой статье мы как раз и рассмотрим, как работать в программе Uniprof. Оболочке Ponyprog, будет посвящен один из наших дальнейших обзоров. Саму программу Uniprof, вы сможете скачать по ссылке в конце статьи.

Существуют несколько версий этой программы, но они мало чем отличаются. Некоторые чуть менее стабильны и имеют меньший список поддерживаемых типов микроконтроллеров.

После того, как мы распакуем архив с программой и откроем папку, мы увидим такой список файлов:

Рассмотрим, какие из них будут нам интересны. Это в первую очередь файл, в виде микросхемы с малиновой стрелкой. Именно он запускает программу оболочку.

Перед тем как начать разбирать интерфейс программы, хочу сказать, что создатели программы позаботились о том, чтобы облегчить нам работу с оболочкой настолько, насколько это вообще возможно. Они выпустили файл справки. Этот файл находится в общей папке и выглядит в виде страницы с желтым знаком вопроса. Те, кто много работают за компьютером, знают, что так выглядят Help файлы Windows. Что же мы увидим когда откроем его ? А увидим мы следующее:

Итак, перейдем к разбору интерфейса нашей оболочки. Такое окно мы видим после запуска программы:

На экране появилось сообщение: “МК не откликнулся. Проверьте порт и подключение.“ Так и должно быть. В данный момент программатор и МК у нас не подключены. Сразу хочу сказать, что программа работает не только с программаторами, работающими через СОМ порт, но и через LPT. Так вот, собирать программатор 6 проводков для прошивания через LPT порт я вам категорически не рекомендую. Если уж очень приспичит собрать программатор 6 проводков для разовой прошивки, используйте панельку под микросхему и подпаяйтесь непосредственно к её выводам. Дело в том, что СОМ порт намного более устойчив к замыканиям и перегрузкам, нежели LPT порт. С LPT-портом достаточно одного замыкания и вы можете безвозвратно его выжечь.

Вернемся к нашей оболочке, в правом нижнем углу мы видим, что программа работает аж с пятью СОМ портами и одним LPT портом. Путем выставления нужной галочки, мы должны выбрать наш СОМ порт

Что делать если вы не знаете к какому по счету СОМ порту у вас подключен программатор ? В таком случае открываете программу, изменяете СОМ порт на следующий по списку и выходите из нее. Обычно используются СОМ порты под номерами 1 и 2.

Разбираем дальше. В верхней части окна программы, мы видим надпись синим цветом “unknown”

После того как МК определится в программе, здесь будет показана модель нашего микроконтроллера и объем его памяти, например, Tiny 2313, 2k  bytes.

Если нам помимо FLASH памяти требуется прошить еще и EEPROM, ставим на ней галочку так, как это сделано на рисунке ниже:

После нажатия на иконку READ, мы загрузим прошивку из памяти МК  в буфер обмена программы. После этого у нас появятся какие — то значения в ячейках таблиц:

Это означает, что в буфер программы загружена прошивка. То же самое мы видим при записи прошивки в буфер обмена программы с жесткого диска. Другими словами буфер обмена — это то место, куда мы помещаем прошивку перед прошиванием или сохранением.

Бывают случаи, когда подключенный к программатору МК по каким-то причинам не определялся программой самостоятельно. В таком случае кликните в появившемся меню по нужной вам модели МК и проблема решена. Также в рабочем окне программы мы можем путем выставления галочки выбрать формат файла прошивки: привычный нам HEX, или двоичный BIN

Сразу скажу, если вы скачали прошивку в формате BIN, а вам требуется HEX (или наоборот), вы без труда сможете перегнать прошивку из одного формата в другой, с помощью специальных программ конвертеров, которые можно скачать на просторах интернета.

Остановлюсь на одном важном нюансе, без которого нормально работать с программой вообще невозможно. Частота процессоров современных ПК очень высока. Для работы программатора требуется значительно меньшая скорость. Что делать в таком случае, если у вас мощный современный компьютер, а работать с программатором как-то нужно? Все просто, создатели программы позаботились об этом и поставили в программе специальную опцию замедления для обеспечения стабильной работы, путем установки галочки “тОРОмоз”

Почему именно “тОРОмоз”, а не тормоз ?

А потому, что у создателей оболочки с чувством юмора все в порядке. В чем тут дело вы поймете, когда попробуете с помощью этого программатора, прошить например МК Mega 32. У этого МК очень большой объем памяти и прошивание занимает порядка двадцати минут и до получаса, тогда как USB программатор USBASP шьет такой же объем памяти за 30 – 60 секунд. Но тут есть один нюанс. Если вы что-то напутали с временем запуска тактового генератора МК или совершили подобную не критическую ошибку, то USB программатор может отказываться видеть МК. А программатор Громова после выставления типа МК вручную все сделает как надо. Он меня выручал в аналогичных ситуациях уже как минимум два раза. Не пытайтесь прошивать МК без использования галочки “торомоз”.  Прошивка обязательно запишется с ошибками. Особенно это опасно при выставлении фьюзов.

И вот мы наконец добрались до главного пункта этой статьи.  Что же нужно нажимать и в какой последовательности, для того, чтобы просто прошить МК?

Итак, сперва мы нажимаем  иконку, с рисунком папки «HEX», и загружаем прошивку в буфер программы. Затем мы нажимаем «PROG» для того, чтобы прошить наш микроконтроллер. После этого мы нажимаем иконку «TEST», или верификация, сверяем прошивку в памяти микроконтроллера, с прошивкой в буфере обмена программы. Это необходимо сделать для того, чтобы убедиться, что программа у нас записалась без ошибок. Если нам требуется скачать прошивку, ранее записанную в МК, мы нажимаем иконку «READ», и считываем прошивку в буфер обмена.

Если же нам требуется сохранить эту прошивку на компьютере, мы должны нажать иконку «HEX» с изображением дискеты. Если у нас в памяти МК была ранее записана прошивка, мы стираем старую прошивку перед записью новой, путем нажатия на иконку «ERASE».

И наконец, последняя, самая сложная часть, иконка «FUSE», или выставление фьюзов. После того как мы прошили МК, мы должны выставить фьюзы, фьюз – биты, биты конфигурации. Все эти названия синонимы и означают одно и тоже. Разберем, что же мы видим после нажатия на кнопку «FUSE»:

Мы видим четыре окна без выставленных галочек. Не спешите здесь ничего нажимать, или рискуете залочить (заблокировать) МК! Будьте предельно внимательны или вам придется идти в магазин за новым микроконтроллером. Если, конечно, у вас нет для лечения МК сложного в сборке параллельного программатора, ну или не менее сложного реаниматора МК. Для начала нам требуется нажать во всех четырех окнах на кнопки «READ», то есть считать все четыре байта конфигурации. А их именно четыре, в каждом по восемь битов. Это слева направо LOCK (защитный байт), или байт с помощью выставления LOCK битов которого, мы защищаем прошивку от копирования. Дальше идут LOW  (младший байт), HIGH (старший байт), EXT (дополнительный байт).

Еще один важный нюанс! Так уж повелось, что в МК AVR применяют и прямое, и инверсное выставление битов, в разных программах оболочках. Например, в Ponyprog мы должны при выставлении фьюзов выставить галочки там, где в Uniprof их нет, и наоборот. Как же не запутаться,? Ведь часто в статье, по которой мы собираем устройство, не указано, какое используется, прямое или инверсное представление битов. Ориентироваться нужно всегда по биту Spien. Он всегда запрограммирован, если мы имеем доступ к МК с помощью данных программаторов. Следовательно, если на нем стоит галочка, то и на других фьюзах, где должны стоять галочки, мы их ставим. Если же не стоит, то наоборот, убираем со всех фьюзов, где она не должна стоять. У нас будет посвящена разбору фьюз битов, отдельная подробная статья.

Приведу список фьюзов для программы Uniprof, которые нельзя изменять, иначе МК залочится и восстановить его будет проблематично

Никогда не изменяйте их, если вы прошиваете МК программатором Громова или программатором USBASP, или другим программатором, подключаемым по SPI интерфейсу.

Кто не понял, что да как,  вот небольшой видос, поясняющий, как прошить МК:

www.ruselectronic.com

Программатор Громова: назначение, описание

Для людей, которые любят конструировать радиоэлектронные приборы, рано или поздно возникает необходимость использовать в своих разработках микроконтроллеры. Применение этих устройств открывает огромные возможности перед радиоинженером. Микроконтроллеры выпускают всего несколько фирм, лидерами являются — Microchip Technology, ATMEL, ARM Limited. Особенностью таких устройств является необходимость их прошивки. Вот для этого и требуются программаторы. Существует много типов этих приборов, можно приобрести фирменный, а можно сделать своими руками. Если вы выбрали второй вариант, лучше всего воспользоваться готовым и проверенным решением, таким как программатор Громова. Устройство достаточно простое, собрать его под силу даже новичку.

СОМ(AVR)-программатор Громова

СОМ-программатор несложен в изготовлении. При условии применения альтернативного режима «СОМовского» порта Bitbang становится ненужным преобразование интерфейса RS232 СОМ-порта в SPI, который необходим для программирования. Останется только согласовать уровни сигналов в СОМ-порте, от -12В, +12В к 0В и +5В. Для этого и предназначена схема программатора для AVR-контроллеров. На фото ниже показан программатор Громова.

Впервые эта схема была предложена автором программы AlgoritmBuilder Геннадием Громовым и быстро завоевала популярность своей надежностью и простотой исполнения.

Для того чтобы приступить к сборке прибора, нам понадобятся:

  • Диоды КД510, КД522, 1N4148 или их аналоги.
  • Семь резисторов с номинальным сопротивлением 1кОм, мощность не имеет значение.
  • Шлейф – можно воспользоваться ненужным компьютерным IDE-шлейфом. Для более устойчивой работы схемы программатора необходимо чередовать сигнальные провода с нулевым проводом. Так мы сможем снизить уровень наводимых помех в цепях, а также удлинить программирующий провод. Однако не стоит увлекаться, длина шлейфа не должна превышать 50см.
  • Разъем для подсоединения к программируемому устройству, можно воспользоваться стандартными разъемами (между прочим, это же рекомендуют и фирмы-производители микроконтроллеров), а можно использовать разъем типа BLS («мама»), такими же разъемами в компьютерах на материнской плате подключены корпусные кнопки и светодиоды и штырьки типа PLS («папы»). Использование указанных разъемов позволяет существенно упростить плату устройства, т. к. штырьки программатора размещаются в непосредственной близости к ножкам микроконтроллера. Контакты SCK, MOSI, MISO микроконтроллера типа AVR располагаются вместе, соответственно для них следует применить строенный разъем. Отдельно подключаем «землю» и «сброс».

Как видите все очень просто, этим и ценится программатор Громова.

Для работы этого устройства необходима программа и тестовая прошивка микроконтроллера.

Универсальный программатор Громова собирается на пассивных элементах. Ему не требуется отдельного питания, и что самое интересное, из-за паразитного напряжения, возникающего в схеме, микроконтроллеры можно программировать, не подключая к источнику питания.

По такому же принципу можно собрать и программатор usb, но схема такого устройства несколько сложнее.

fb.ru

Программатор – для новичков в радиоделе

Программатор можно купить Мы это обсуждали Перед покупкой следует продумать, какой тип микроконтроллера вы выбираете для изучения и следует подумать, какой средой разработки вы намерены пользоваться для изучения работы с микроконтроллером Если у вас достаточно средств для покупки понравившейся вам программы, то обратите внимание на то, с какими моделями программаторов она работает В этом случае для программирования микросхемы вам не понадобится выходить из вашей среды разработки

Если вы не намерены покупать программу, а хотите использовать бесплатную версию, как MPLAB, AVRStudio или KTechlab, то выбирайте программатор, который работает с этими программами

Но мне кажется, что, дочитав книгу до этого места, повторяя разные эксперименты на макетной плате, вы вполне можете спаять простой программатор, как тот, схему которого я приводил выше И, это только моё мнение, если вы остановите выбор на модуле Arduino, то программатор вам не понадобится – вы можете программировать модуль из бесплатной программы проекта Arduino

Для тех, кто согласен со мной и выбрал для изучения контроллер PIC16F628A, я немного опишу схему простого программатора и немного расскажу о программе его обслуживания Итак

Транзисторы, хотя можно использовать разные типы, лучше взять 2N3904, они есть в продаже Если не найдёте, подберите аналог Например, КТ375А (отечественный) или 2N4124 (импортный) вполне подойдут для замены Диоды, кроме стабилитронов, можно использовать 1N4148 (КД521А, 1N4450) Стабилитроны можно использовать маломощные на указанное напряжение стабилизации Стабилитрон D5T я не использовал, поскольку не понял его  назначение, а два светодиода удачно вписались в работу (хотя и вынужденно), показывая обращения к микросхеме Резисторы могут быть любого типа мощьностью 025 Вт, их номиналы есть на схеме И разъём DB9 для подключения к COM-порту (выводы SERIAL-3, SERIAL-7 и тд) может быть любой удобный для пайки соединительных проводов (гнездовая часть разъёма) Соединительные провода тоже можно взять любые монтажные длиной порядка метра, чтобы можно было удобно расположить программатор рядом с компьютером Для МК PIC16F628A (в корпусе DIP) нужна панелька с 18 выводами, которую я расположил на конце куска макетной платы, на которой и спаял весь программатор Получился он очень небольшим, кусок монтажной платы имеет размеры 8×2 см

Если аккуратно расположить все детали, а места для них достаточно, и аккуратно спаять, то всё будет работать Есть только одно замечание COM-порт основан на интерфейсе RS232 Но производители давно не следуют стандарту этого интерфейса полностью Если напряжение сигналов вашего COM-порта окажется заниженным, то программатор может и не заработать Та же проблема возникает и при использовании конвертора USB-COM, многие ноутбуки (а сегодня и стационарные компьютеры) не имеют COM-порта Можно ли использовать конвертор совместно с программатором JDM следует проверить, что называется, по месту

Программа ICProg бесплатная, её можно скачать и пользоваться Она требует нескольких шагов по настройке Их следует сделать в разделе основного меню «Настройки-Программатор» Вот как выглядят эти настройки у меня:

Рис 209 Настройки программатора в ICProg

В некоторых случаях потребуется подстроить параметр «Задержка Ввода/Вывода»

Работать с программой не сложно: запустите программу, предварительно подключив программатор к COM-порту, прочитайте микросхему, сотрите её После стирания информация в памяти программы должна выглядеть так (для PIC16F628A):

Рис 2010 Чтение предварительно стёртой микросхемы

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

Рис 2011 Выбор типа тактового генератора микросхемы

Многие среды разработки, об этом мы позже поговорим, включают для загрузки и слово конфигурации, в этом случае достаточно проверить его Программа ICProg в разделе «Настройки- Опции» позволяет выбрать язык интерфейса, включая русский язык на закладке Язык (Language) В разделе «Команды» вы можете выбрать, например, пункт «Программировать всё» В  этом случае будут запрограммированы и область программы, и область данных, и слово конфигурации

Но не забудьте, что область данных EEPROM для многих моделей имеет меньше допустимых циклов программирования, чем область основной памяти

Итак, вы стёрли микросхему Что дальше Дальше вы открываете файл с расширением hex, который был создан при трансляции вашей программы Область программы приобретает следующий вид:

Рис 2012 Вид программы ICProg с открытым файлом для загрузки в микросхему

Нажмите на инструментальной панели кнопку программирования, и ваша программа окажется внутри микросхемы Вы будете наблюдать за процессом, благодаря тем сообщениям, которые ICProg при этом выводит на экран

Я надеюсь, что не напугал вас этим долгим рассказом Он кажется более страшным, чем есть на самом деле Позже, когда вы освоитесь с микроконтроллерами, вы сможете собрать более мощный и универсальный программатор, например PICkit, с которым напрямую работают среды разработки MPLAB и Flowcode Но схема более сложного программатора, зачастую,  уже использует запрограммированный микроконтроллер Так что, начав с программатора JDM, вы расширите свои возможности по созданию других моделей программаторов

Если же вы не уверены в своих силах, но покупной программатор дороговат, повторюсь – используйте для освоения микроконтроллеров модуль Arduino Скажем, есть модель, которая сегодня стоит около 800 руб (в комплектацию может не входить кабель для подключения), подключается модуль для программирования (и для работы) к порту USB, и вам нет нужды ни покупать, ни собирать программатор В дальнейшем рассказе я по мере необходимости буду рассказывать о модуле Но с проектом Arduino связано больше, чем я расскажу Поэтому, загляните хотя бы на форумы или в блоги, где обсуждаются разные проекты, основанные на Arduino Не пожалеете

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

nauchebe.net

Программатор — WiKi

По типу микросхем

Универсальные программаторы могут поддерживать все вышеперечисленные типы.

По сложности

Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM-, LPT-порту или USB. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg)[2].

Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для её разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.

В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 3029 дней].

По подключению микросхемы

Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, то есть позволяют прошивать микросхему, не вынимая её из устройства.

При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.

По подключению к компьютеру

Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.

Для подключения программаторов могут применяться:

Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.

Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.

Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].

По дополнительным функциям

(Здесь указаны как аппаратные, так и программные функции.)

  • Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
  • Проверка правильности подключения ещё до попытки стереть микросхему.
  • Проверка исправности программатора.
  • JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
  • Автономные (полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
  • Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
  • Возможность самостоятельного обновления прошивки самого́ программатора.
  • Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
    • В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.

ru-wiki.org