Программаторы для pic. выбор, сравнение, рекомендации

Двуликий Янус

Мы решили назвать этот программатор «Янус».

Почему так? Потому что в римской мифологии Янус — это двуликий бог дверей, входов и выходов, а также начала и конца. Какая связь? Почему наш программатор ChipStar-Janus двуликий?

А вот почему:

  • C одной стороны, этот программатор — простой. Распространяется как бесплатный проект, его можно легко изготовить самому.
  • C другой стороны, он разработан фирмой, длительное время профессионально занимающейся разработкой и производством различной радиоэлектронной аппаратуры, в том числе программаторами.
  • C одной стороны, этот программатор — простой, с первого взгляда имеет не сильно впечатляющие характеристики.
  • C другой стороны, работает совместно с профессиональной программой (кстати, точно такой же, как и остальные профессиональные программаторы ChipStar).
  • C одной стороны, мы предлагаем этот программатор для свободной сборки.
  • C одной стороны, мы его продаем и в готовом виде, как обычный бюджетный продукт.
  • C одной стороны, на самодельный программатор не распространяется гарантия (что естественно).
  • C одной стороны, если вы его смогли собрать, то и отремонтировать сможете, да и программатор настолько простой, что ломаться, собственно, нечему.
  • C одной стороны, это простой внутрисхемный программатор.
  • C одной стороны, через простые адаптеры расширения он поддерживает программирование NAND FLASH и других микросхем уже «в панельке».

Таким образом, программатор ChipStar-Janus для многих специалистов может стать настоящим выходом в ситуации, когда разных простых или любительских программаторов уже недостаточно, а более сложный программатор кажется избыточным или на него не хватает выделенного бюджета.

Использование программатора от Microchip

По его использованию можно найти много обучающих уроков, которые помогут разобраться с всевозможными аспектами использования. Если рассматривать не только программатор PIC, купленный «с рук», а приобретенный у официального представителя, то можно ещё подметить качество поддержки, предоставляемое вместе с ним. Так, в дополнение идут обучающие материалы по использованию, лицензионные среды разработки, а также демонстрационная плата, которая предназначена для работы с маловыводными микроконтроллерами. Кроме всего этого, присутствуют утилиты, которые сделают работу с механизмом более приятной, помогут отслеживать процесс программирования и отладки работы микроконтроллера. Также поставляется утилита для стимулирования работы МК.

Работа с микроконтроллерами

Что же необходимо для работы всех программаторов с микроконтроллерами? Дело в том, что, хотя сами программаторы и являются самостоятельными схемами, они передают сигналы компьютера в определённой последовательности. И задача относительно того, как компьютеру объяснить, что именно необходимо послать, решается программным обеспечением для программатора.

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

Возможные проблемы

Увы, даже самая идеальная техника не лишена возможных проблем, которые нет-нет, да и возникнут. Для улучшенного понимания необходимо составить список. Часть из этих проблем можно исправить вручную при детальном осмотре программатора, часть — только проверить при наличии необходимой проверочной аппаратуры. В таком случае, если программатор PIC-микроконтроллеров заводской, то вряд ли починить представляется возможным. Хотя можно попробовать найти возможные причины сбоев:

  1. Некачественная пайка элементов программатора.
  2. Отсутствие драйверов для работы с устройством.
  3. Повреждения внутри программатора или проводов внутри компьютера/USB.

Программаторы, собранные вручную

А теперь, пожалуй, самое интересное – программаторы PIC-контроллеров, которые собираются вручную. Этим вариантом пользуются те, у кого нет денег или просто нет желания их тратить. В случае покупки у официального представителя можно рассчитывать на то, что если устройство окажется некачественным, то его можно вернуть и получить новое взамен. А при покупке «с рук» или с помощью досок объявлений в случае некачественной пайки или механических повреждений рассчитывать на возмещение расходов и получение качественного программатора не приходится. А теперь перейдём к собранной вручную электронике.

Программатор PIC может быть рассчитан на определённые модели или быть универсальным (для всех или почти всех моделей). Собираются они на микросхемах, которые смогут преобразовать сигналы с порта RS-232 в сигнал, который позволит программировать МК. Нужно помнить, что, когда собираешь данную кем-то конструкцию, программатор PIC, схема и результат должны подходить один к одному. Даже небольшие отклонения нежелательны. Это замечание относится к новичкам в электронике, люди с опытом и практикой могут улучшить практически любую схему, если есть куда улучшать.

Отдельно стоит молвить слово и про программный комплекс, которым обеспечивают USB-программатор для PIC, своими рукамисобранный. Дело в том, что собрать сам программатор по одной из множества схем, представленных в мировой сети, – мало. Необходимо ещё и программное обеспечение, которое позволит компьютеру с его помощью прошить микроконтроллер. В качестве такового довольно часто используются Icprog, WinPic800 и много других программ. Если сам автор схемы программатора не указал ПО, с которым его творение сможет выполнять свою работу, то придется методом перебора узнавать самому. Это же относится и к тем, кто собирает свои собственные схемы. Можно и самому написать программу для МК, но это уже настоящий высший пилотаж.

Универсальные программаторы, которые подойдут не только к РІС

Если человек увлекается программированием микроконтроллеров, то вряд ли он постоянно будет пользоваться только одним типом. Для тех, кто не желает покупать отдельно программаторы для различных типов микроконтроллеров, от различных производителей, были разработаны универсальные устройства, которые смогут запрограммировать МК нескольких компаний. Так как компаний, выпускающих их, довольно много, то стоит избрать пару и рассказать про программаторы для них. Выбор пал на гигантов рынка микроконтроллеров: PIC и AVR.

Универсальный программатор PIC и AVR — это аппаратура, особенность которой заключается в её универсальности и возможности изменять работу благодаря программе, не внося изменений в аппаратную составляющую. Благодаря этому свойству такие приборы легко работают с МК, которые были выпущены в продажу уже после выхода программатора. Учитывая, что значительным образом архитектура в ближайшее время меняться не будет, они будут пригодны к использованию ещё длительное время. К дополнительным приятным свойствам заводских программаторов стоит отнести:

  1. Значительные аппаратные ограничения по количеству программируемых микросхем, что позволит программировать не одну, а сразу несколько единиц электроники.
  2. Возможность программирования микроконтроллеров и схем, в основе которых лежат различные технологии (NVRAM, NAND Flash и другие).
  3. Относительно небольшое время программирования. В зависимости от модели программатора и сложности программируемого кода может понадобиться от 20 до 400 секунд.

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

Теперь о схеме программатора.
Первоначальная схема программатора не предусматривала поддержки USB и
содержала 2 разъёма COM9.
 Один разъём служит для подключения JDM программатора и
подключив
к нему компьютер можно программировать микроконтроллеры с помощью
программ IS-Prog , PonyProg или других программ, в которых реализована
поддержка JDM программатора.
 Второй разъём предназначен для работы со специально
разработанным
протоколом обмена. С его помощью можно программировать микроконтроллеры
Microchip или микросхемы памяти типа 24Cxxx.
 Для подключения USB переходника добавлен третий разъём COM9 (
на
плате расположен посередине ). От этого разъёма использовано всего 3
контакта. RXD, TXD и общий(масса). Выводы от разъёма подключены
напрямую к соответствующим выводам микроконтроллера программатора.
Рис. 5 Схема программатора

Первоначально плата программатора не содержала разъёма под переходник
USB — на фотографии видно, что этот разъём стоит посередине.
Рис. 6  Плата программатора

Программное обеспечение программатора пока не доработано полностью.
Испытан программатор только с микроконтроллерами PIC16F628A и PIC16F84.

Эксперименты с микроконтроллерами

Итак, всё есть. Как же начать работу с техникой, как начать прошивать микроконтроллер программатором?

  1. Подключить внешнее питание, присоединить всю аппаратуру.
  2. Первоначально необходима среда, с помощью которой всё будет делаться.
  3. Создать необходимый проект, выбрать конфигурацию микроконтроллера.
  4. Подготовить файл, в котором находится весь необходимый код.
  5. Подключиться к программатору.
  6. Когда всё готово, можно уже прошивать микроконтроллер.

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

Хочется отдельно написать обращение к тем, кто только начинает пользоваться программаторами. Помните, что, какими бы элементарными ни казались некоторые шаги, всегда необходимо их придерживаться, чтобы техника нормально и адекватно могла работать и выполнять поставленные вами задачи. Успехов в электронике!

Что нас побудило разработать этот программатор.

Есть великое множество простых специализированных программаторов, пригодных для самостоятельного изготовления.

Есть множество дешевых китайских программаторов в уже готовом виде.

Есть немало любительских разработок, часто по качеству превосходящих последние.

Казалось бы, в чем смысл очередной поделки?

Мы длительное время занимаемся разработкой производством и поддержкой универсальных программаторов, в основном специального назначения. У нас богатый опыт работы с самыми разными микросхемами. Часто к нам обращаются люди уже собравшие, а часто и купившие, какой-нибудь из выше названных «изделий». Нашим специалистам часто без смеха/слез/ужаса (нужное подчеркнуть) невозможно смотреть на схемные решения, качество сборки и, особенно, на программное обеспечение этих приборов. Ладно когда программатор стоит «три копейки», купил, что-то работает, что-то не работает, зато деньги не большие. Но часто соотношение цена/возможности таких приборов у нас вызывают, мягко говоря, удивление. Хочется воскликнуть: это столько не стоит!

Кроме всего выше названного есть особая категория программаторов, пригодных для самостоятельного изготовления — это программаторы (точнее, схемы программаторов и программное обеспечение), разработанные специалистами фирм производящих микросхемы (в основном микроконтроллеры). Такие программаторы спроектированы вполне профессионально, в их схемотехнике нет «ляпов». Они поддерживают все заявленные микросхемы. Но есть два «маленьких» недостатка: перечень программируемых микросхем весьма ограничен (что вполне понятно) и программное обеспечение весьма спартанское — никаких лишних функций, как правило — только стереть, записать, верифицировать. Часто даже функции чтения микросхемы нет.

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

Итак, программатор ChipStar-Janus в начальной конфигурации — это внутрисхемный программатор. В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, некоторые микроконтроллеры архитектуры MCS51, микроконтроллеры фирмы STMicroelectronics и еще ряд других, а также микросхемы последовательной памяти с интерфейсом I2C (в основном серия 24). К разъему расширения программатора можно подключить простейшие адаптеры и начать программировать микросхемы памяти «в панельке».

Сейчас реализовано программирование «в панельке»:

  1. микросхемы последовательной памяти (Serial EPROM) с интерфейсом I2C (серия 24xx);
  2. микросхемы последовательной флэш памяти (Serial FLASH) с интерфейсом SPI (SPI Flash);
  3. микросхемы последовательной памяти (Serial EPROM) с интерфейсом MW (серия 93xx);
  4. микросхемы NAND FLASH;

Описание процесса программирования микросхем

Большинство
современных микросхем содержит
флэш-память,
которая программируется
посредством
протокола I2Cили
подобных протоколов.
Перезаписываемая память есть в PIC,
AVRи
других контроллерах,
микросхемах памяти типа 24Cxx,
и подобных
им, различных картах памяти типа MMCи
SD,
обычных
флэш USBкартах,
которые
подключаются к компьютеру через USBразъём.

Рассмотрим
запись информации во флэш память микроконтроллера
PIC16F628A

Есть 2
линии DATAи
CLOCK,
по которым передаётсяинформация. Линия CLOCKслужит
для подачи тактовых импульсов, а линия DATAдля
передачи информации.

DATACLOCKPIC

PIC

LoadConfigurationLoadDataForProgramMemoryLoadDataForDataMemoryEEPROMIncrementAddressPCReadDataFromProgramMemoryReadDataFromDataMemoryEEPROMBeginProgrammingOnlyCycleBulkEraseProgramMemoryBulkEraseDataMemoryEEPROM

MCLRPICRCMCLR

LoadDataForProgramMemory

xxxxxxxxxxxxxx

PIC

PIC

«BeginEraseProgrammingCycle»001000-Начать
цикл
программирования

Настройка
COM порта для работы JDM
программатора

В процессе работы над программатором тестирование программы проводились
в основном на PIC16F628A. Когда же пришло время проверить алгоритмы
работы с другими МК — обнаружились проблемы. При записи PIC16F876A
программатор записывал нормально только часть памяти программ, после
чего происходила ошибка записи. Решение проблемы нашлось в настройках
COM порта.
В WindowsXP применяется буферизирование передаваемой через порты COM
информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при
программировании через JDM этот механизм необходимо отключить. Сделать
это можно в диспетчере устройств Windows.
Заходим в панель управления, затем:Администрирование
— управление компьютером — диспетчер устройств
Затем выбираем порт, на который подключен JDM программатор(например
COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И
снимаем галочку на пункте «Использовать буферы FIFO»

Рис. 7  Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.