Поиск по этому блогу

31 дек. 2013 г.

USB-программатор микроконтроллеров AVR для среды Algorithm Builder.



USB-программатор для Algorithm Builder

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

   Algorithm Builder - среда разработки микропрограмм для микроконтроллеров корпорации Atmel семейства AVRСреда является отечественным аналогом Ассемблера, позволяющим, однако, не "писать" программы, а "рисовать" их в очень удобной графической форме:

Среда разработки программ для микроконтроллеров Algorithm Builder

   С некоторых пор эта среда стала полностью бесплатна для любых объемов программы! Скачать ее можно со страницы разработчика здесь. Создал и поддерживает эту программу русский умелец Геннадий Громов.
   В файле справки для этой среды, открыть который можно выбрав соответствующий пункт меню...

Поиск инструкции к среде Algorithm Builder

   ...или просто нажав кнопку "F1" клавиатуры, ближе к концу представлена схема программатора на микроконтроллере, собрав которую можно программировать и даже отлаживать различные устройства прямо из самой среды Algorithm Builder:

Схема программатора из инструкции на Algorithm Builder

   Данная схема является лишь принципиальной и собрать по ней готовое устройство невозможно. Кроме того, схема имеет существенный недостаток - собранный по ней программатор способен работать только через COM-порт, который нынче стал редкостью.
   Тем не менее, эта схема была взята за основу, дополнена необходимыми компонентами, а вместо "TTL to RS232" конвертора применена микросхема FT232RL, производимая корпорацией FTDI.
   Микросхема FT232RL является конвертором интерфейса USB в интерфейс RS-232 (СОМ-порт), определяется в Windows-е как виртуальный COM-порт, и позволяет создавать устройства с физическим интерфейсом USB, несмотря на то, что изначально эти устройства были предназначены для работы лишь с СОМ-портом.
   Кроме того, в схему добавлена гальваническая развязка цепей программирования от цепей интерфейса USB, с допустимым пиковым напряжением до 400В. Таким образом, программатором можно программировать устройства, находящиеся под фазным напряжением сети 220/380В не боясь повредить устройство или персональный компьютер.

   Итак, чтобы внести окончательную ясность, перечислим достоинства и недостатки предлагаемого программатора.

   Достоинства:
      - Интерфейс USB - можно использовать как со стационарным настольным компьютером, так и с ноутбуком;
      - Имеет гальваническую развязку цепей программирования от цепей интерфейса USB с допустимым пиковым напряжением до 400В;
      - Питается через USB, поэтому не требует внешнего питания;
      - Имеет достаточно сильноточные выходы цепей программирования, благодаря чему можно программировать даже микроконтроллеры, на цепях программирования которых находится достаточно большая нагрузка (например, светодиодный индикатор);
      - Процесс программирования происходит достаточно быстро. Во много раз быстрее, чем, например, у программатора AVR910;
      - После завершения процедуры программирования, цЕпи программатора переводятся в высокоимпедансное состояние и не влияют на работу программируемого устройства. Это особенно удобно во время отладки микропрограмм, т. к. становится не обязательным отключать программатор от налаживаемого устройства после завершения процедуры программирования;
      - Имеет встроенную функцию отладки устройства с мониторингом состояния программируемого микроконтроллера (средствами среды программирования Algorithm Builder). Данная функция позволяет в реальном времени наблюдать состояние внутренних регистров микроконтроллера и изменять их значения (подробнее об этом в инструкции на Algorithm Builder).


   Недостатки:
      - Работает только со средой программирования Algorithm Builder;
      - Содержит в своем составе микроконтроллер, который изначально будет необходимо чем-то запрограммировать (другим программатором).

   Полная схема USB-программатора для Algorithm Builder с учетом описанных особенностей выглядит так:


   AB_USB.SCH.rar (54.5кБ) - схема USB-программатора для Algorithm Builder в формате P-CAD 2006:

Схема USB-программатора для Algorithm Builder в формате P-CAD 2006

   Конструктивно программатор представляет собой печатную плату. Плата двусторонняя, изготовлена по моим чертежам заводом Резонит:

Печатная плата USB-программатора для Algorithm Builder Печатная плата USB-программатора для Algorithm Builder

   АВ_USB.PCB.rar (61.1кБ) - файл трассировки печатной платы программатора в формате P-CAD 2006:

Трассировка платы USB-программатора для Algorithm Builder в формате P-CAD 2006

   Исполнение программатора безкорпусное, а для защиты схемы от внешних воздействий, плата программатора с двух сторон была залита эпоксидным компаундом:

USB-программатор для Algorithm Builder USB-программатор для Algorithm Builder

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

Разъем DB9 для подключения кабеля программирования на USB-программаторе Algorithm Builder

   Внимание! Это НЕ СОМ-порт, как может показаться с первого взгляда - этот разъем предназначен для подключения только кабеля программирования:

USB-программатор для Алгоритм Билдер

   В своих разработках в качестве разъема для программирования микроконтроллеров я обычно применяю вот такой тип разъемов:

Разъем программирования Разъем программирования

   Поэтому кабель программирования заканчивается соответствующим "разъемом программирования":

Разъем программирования

   Кабель программирования подключается к программируемому устройству и может оставаться подключенным на все время отладки программы - как мы помним, работе устройства после завершения процедуры программирования наш USB-программатор не мешает:

Разъем программирования

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

Контакты программирования

   В этом случае программатор необходимо дополнить специальным переходником,

Переходник для программирования устройств без разъема программирования

   а процесс программирования можно производить просто прижимая эти "иголки" к контактным площадкам на плате:

"Прошивка" устройства без разъема для программирования

   Обратите внимание, что и на плате нашего USB-программатора для "прошивки" его собственного микроконтроллера предусмотрены такие же контактные площадки программирования:

Печатная плата USB-программатора для Algorithm Builder

   Если необходимо воспользоваться функцией отладки микропрограммы с мониторингом состояния программируемого микроконтроллера (средствами среды программирования Algorithm Builder), необходимо будет обзавестись дополнительным кабелем, наподобие кабеля программирования, но содержащим не только цепи программирования, но и цепи отладки микропрограммы. Цепь отладки микропрограммы выведена на разъем DB9 программатора, но в описанном выше кабеле программирования не задействована.
   Сам я функцией отладки микропрограмм с мониторингом состояния программируемого микроконтроллера ни разу не воспользовался, поэтому и кабеля для реализации этой функции никогда не делал.

   После сборки программатора, при первом подключении его к персональному компьютеру, Windows запросит драйверы к вновь обнаруженному устройству (точнее к чипу FTDI, входящему в состав программатора). Последние версии драйверов к этой микросхеме можно всегда скачать с официального сайта FTDI, а можно взять и на данном сайте по ссылке ниже (возможно, они будут не самой последней версии, но зато опробованные мною лично):


   Когда драйверы будут установлены, необходимо сконфигурировать чип FT232RL для правильной работы, с учетом особенностей схемы нашего USB-программатора.
   Специальную утилиту для конфигурирования микросхемы FT232RL можно скачать с официального сайта FTDI, а можно взять и с данного сайта по ссылке ниже (возможно, она будет не самой последней версии, но зато опробована мною лично):

   FTDI_MProg_3.5.rar (1.48МБ)

   В данном архиве находится (в том числе) файл нужных настроек для чипа FTDI USB-программатора, путь к нему:

   ...\УТИЛИТА FTDI MProg 3.5\Templates\ПРОГРАММАТОР AB USB.ept

   После запуска утилиты необходимо в ней открыть этот файл настроек. Вы должны увидеть следующее:

Утилита конфигурирования чипов FTDI

   Убедившись что наш программатор все еще подключен к USB-порту компьютера, а также убедившись в том, что к компьютеру более не подключены какие-либо иные устройства с чипами FTDI, нажимаем кнопку с изображением "молнии", и через несколько мгновений утилита в нижнем окне должна сообщить что-то типа такого:

   Programmed Serial Number : FTU3VXNP

   Теперь, если отключить и подключить заново наш программатор к компьютеру, Windows найдет новое устройство с названием "ALGORITHM BUILDER PROGRAMMER", драйвера к нему теперь будут определены автоматически.

   Настройка чипа FTDI FT232RL, входящего в состав USB-программатора для Алгоритм Билдер, на этом завершена.

   Теперь нам необходимо запрограммировать микроконтроллер USB-программатораМикропрограмма микроконтроллера для программатора разработана самим Геннадием Громовым - разработчиком Algorithm Builder-а, и после установки на компьютере среды Algorithm Builder находится по умолчанию по следующему пути:

   C:\Program Files\Algorithm Builder\V543\COMM ADAPTER\ALG\CommAdapter.alp

   Однако, моя схема программатора немного отличается от предложенной Геннадием Громовым в части подключения светодиода индикации обращения к программируемому микроконтроллеру, а также в части нескольких, ранее незадействованных ног микроконтроллера, теперь подключенных к общей цепи схемы программатора и используемых в микропрограмме как дополнительные выводы питания "GND". Скачать эту доработанную микропрограмму можно по ссылке ниже:

   AB_USB.PROG.rar (19.3кБ)

   Запрограммировать микроконтроллер нашего USB-программатора можно и нужно с помощью все той же среды программирования Algorithm Builder, однако потребуется сторонний программатор. В этом случае, можно собрать схему простого программатора, работающего через COM-порт. Эта схема также приведена в инструкции на Algorithm Builder. В применении к программированию микроконтроллера нашего USB-программатора она будет выглядеть так:

Схема для программирования микроконтроллера USB-программатора

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

   Кроме того, для правильной работы микроконтроллера программатора необходимо запрограммировать его Fuse Bits в соответствие с рисунком ниже:

Установка Fuse Bits для микроконтроллера USB-программатора

   БУДЬТЕ ВНИМАТЕЛЬНЫ! Установка галок должна в точности соответствовать этому рисунку. Неверная установка Fuse Bits может привести к полной неработоспособности микроконтроллера программатора.

   Начиная с этого момента, если все было сделано правильно и в соответствие с описанием выше, наш USB-программатор для Algorithm Builder начинает работать должным образом.

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

   Для удобства монтажа компонентов на печатную плату USB-программатора, предоставляю перечень компонентов с позиционными обозначениями (куда какой) (в формате Excel 2003):

Перечень компонентов "куда какой" для USB-программатора для Алгоритм Билдер

   АВ_USB.CK.rar (5.39кБ)

   Для удобства закупки компонентов для сборки USB-программатора предоставляю перечень компонентов для заказа (чего и сколько) (в формате Excel 2003):

Перечень компонентов "чего и сколько" для USB-программатора для Алгоритм Билдер

   АВ_USB.ZK.rar (4.96кБ)

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


   На данной странице представлена вся необходимая информация и проектная документация для самостоятельного повторения данной конструкции. Тем не менее, если Вы не желаете собирать USB-программатор для Алгоритм Билдер самостоятельно, но все же хотите его иметь, Вы можете обратиться ко мне и я с удовольствием соберу для Вас точно такой же.
   Его цена составит 5 тыс. руб.