Программное обеспечение для работы с программатором



Программа PonyProg

 

Программа PonyProg – это открытый проект. Для распространения этой программы и еще нескольких проектов в интернете создан специальный сайт http://www.lancos.com. Программа также распространяется с открытой лицензией (GNU), то есть вместе с текстом программы, который разрешается изменять по своему усмотрению. Однако в пакет программы входит специальная библиотека, которая содержит текст всех основных функций, обеспечивающих процесс программирования микросхем.

На библиотеку не распространяется открытая лицензия. Ее разрешается использовать, но не разрешается изменять входящие в нее процедуры. Изменения допускаются лишь в интерфейсе программы. Такое решение делает программу более надежной в работе.

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

При запуске программы PonyProg открывается окно заставки и раздается фирменный звук – лошадиное ржание. Если вы не желаете слушать его каждый раз при запуске, поставьте галочку в поле «Disable Sound» (выключить звук). Нажмите «Ok». Рекламная заставка закроется, и откроется основная панель программы (см. рис. 2.9).

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

 

Рисунок 5 – Основная панель программы PonyProg

 

Первое, что нужно сделать сразу после включения программы, – выбрать тип микросхемы, которую вы собираетесь программировать. Для этого в верхней панели инструментов имеются два выпадающих меню. Одно называется «Выбор семейства микросхем» (Select device family), а второе – «Выбор типа микросхем» (Select device type). Поля не подписаны. Названия появляются в виде всплывающей подсказки при наведении курсора мыши на соответствующее поле.

В поле выбора семейства выберите «I2C Bus 8bit eeprom», а в поле выбора типа – требуемый тип микросхемы. Для всех наших примеров это будет 2404. Второй способ, при помощи которого также можно выбрать семейство и тип микросхемы, – воспользоваться меню «Устройство», как показано на рисунке 6. Выбранный тип микросхемы автоматически сохраняется, и при повторном запуске программы вызывается снова.

 


Рисунок 6 – Выбор типа микросхемы

 

Теперь необходимо произвести настройку интерфейса и калибровку программы. Эти две операции нужно выполнять только один раз, при первом запуске программы. Повторная настройка и калибровка может понадобиться лишь при сбое программы. Сначала выполним настройку интерфейса. Для этого нужно выбрать пункт «Настройки оборудования» меню «Установки». Откроется окно настройки (См. рисунок 7).

 

Рисунок 7 – Окно настройки ввода-вывода

 

В этом окне вы должны выбрать порт, к которому подключен ваш программатор. Кроме того, в этом окне можно проинвертировать любой из управляющих сигналов программатора, что бывает полезно при работе с нестандартными схемами. Выбираем параллельный порт (Parallel). Если ваш компьютер имеет несколько LPT-портов, выберите конкретный порт (обычно LPT1). В выпадающем списке выберите способ программирования. Это будет последовательное программирование по ISP-интерфейсу.

Вторая процедура, которую нужно выполнить хотя бы один раз при первом включении программы, – это калибровка. В процессе калибровки программа настраивает свои процедуры формирования временных интервалов под конкретный компьютер. Цель калибровки – повышение точности формирования интервалов времени. При выполнении этой процедуры компьютер не должен выполнять никаких других программ. Закройте все открытые окна и выгрузите все программы, работающие в фоновом режиме. Затем выберите команду «Калибровка» (см. табл. 2.7). Появится окно предупреждения. Для старта процесса калибровки нажмите в этом окне кнопку «Ok». Процесс калибровки выполняется несколько секунд.

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

– файл программы для записи во Flash-память;

– файл данных для записи в EEPROM.

Для временного хранения этих данных программатор использует окно данных. Одно окно данных хранит один вариант задания (программа плюс данные). Запущенная программа PonyProg обязательно содержит хотя бы одно такое окно. Пустое окно автоматически создается при запуске программы. После загрузки информации (программы или данных) в окне появляется дамп памяти. Дамп – это широко распространенный способ представления цифровых данных. Он представляет собой таблицу шестнадцатеричных чисел, записанных рядами по 16 чисел в ряду, как видно из рисунка 8.


Рисунок 8 – Дамп памяти

 

В начале каждого ряда записывается адрес первой его ячейки. Затем, правее, эти же шестнадцать чисел повторяются в символьном виде. То есть вместо каждого числа записывается соответствующий ему символ в кодировке ASCII.

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

Для загрузки данных из файла, находящегося на жестком диске, в текущее окно программатора, а также для записи информации из окна программатора в файл программа поддерживает ряд команд, объединенных в меню «Файл».

Загрузим программу и данные в программатор. Если вы помните, все вышеперечисленные трансляторы создают отдельный файл для программы (файл с расширением hex) и отдельный файл для данных (файл с расширением еер). Поэтому для загрузки программы воспользуемся командой «Открыть файл программы (Flash)». При выборе этой команды появляется диалог «Открыть программу». Убедитесь, что в поле «Тип файла» выбрано «*.hex». Если это не так, выберите это значение из выпадающего списка.

Затем найдите на диске директорию вашего проекта, выберите файл и нажмите кнопку «Открыть». Загруженные данные появятся в текущем окне. Таким же образом загружается содержимое EEPROM. Только в этом случае нужно выбрать тип файла «*.еер».

После того, как программа и данные загружены, их можно просмотреть, при необходимости – подредактировать прямо в окне программатора. А если нужно, то и записать обратно на диск. Если у вас есть принтер, можно распечатать дамп из текущего окна на бумаге.

Но основная функция – это, естественно, запись программы и данных в память микроконтроллера. Все команды, предназначенные для работы с микроконтроллером, сведены в меню «Команды». При помощи этих команд вы можете отдельно запрограммировать память программ, отдельно – EEPROM. Команда «Записать все» позволяет запрограммировать программу и данные за одну операцию.

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

Команда «Стереть» позволяет стереть память микросхемы. Команда стирает одновременно все виды памяти:

– память программ;

– память данных

– ячейки защиты (если они были запрограммированы).

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

На пункте меню «Биты защиты и конфигурации» необходимо остановиться подробнее. Эта команда предназначена для чтения и изменения fuse-переключателей (битов конфигурации) и битов защиты микросхемы. В русскоязычном варианте программы этот пункт почему-то остался не переведенным.

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

Для того чтобы считать эти значения, необходимо нажать в том же окне кнопку «Считать все». На короткий момент появится окно, показывающее процесс считывания. Затем снова откроется окно битов защиты и конфигурации. Теперь уже все поля примут значения, считанные из микросхемы. Галочка в любом из полей означает, что данный бит запрограммирован. Напоминаю, что запрограммированный бит содержит ноль, незапрограммированный – единицу. Теперь вы можете изменить значение любого бита. Но эти изменения будут только на экране. Для того, чтобы записать изменения в микросхему, нажмите кнопку «Записать все». Кнопки «Установить» и «Стереть» позволяют установить или сбросить значения сразу всех полей в данном окне.

Для удобства работы с программатором он имеет режим группового выполнения команд. Команды чтения информации из файла, чтения байта конфигурации, обновления серийного номера, стирания микросхемы и, наконец, программирования могут выполняться в пакете при нажатии всего одной кнопки. Для настройки пакета команд выберите пункт «Настройки программирования» меню «Команды». Откроется окно «Настройки программирования», изображенное на рисунке 9. В этом окне отметьте галочками те операции, которые должны выполняться при запуске пакета, и нажмите кнопку «ОК». Для запуска пакетной команды достаточно выбрать пункт «Программирование» или нажать соответствующую кнопку на панели инструментов.

 

Рисунок 9 – Настройки программирования

 

Пакетный режим очень удобен в процессе отладки программы. Если в пакет включена опция «Reload Files», то достаточно один раз вручную открыть нужный файл нужного проекта, а затем можно просто нажимать кнопку «Программирование» каждый раз, когда нужно перепрошить микросхему новой версией программы. Все остальное PonyProg сделает за вас. Новая версия программы сама загрузится в программатор, микросхема сотрется, а затем в нее запишется новая информация.

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

Программатор имеет встроенную систему автоматического формирования серийного номера программы.

Серийный номер – это просто порядковый номер версии программы. Этот номер может автоматически записываться в выбранную вами ячейку памяти программ или памяти данных. Настройка данного режима производится при выборе пункта «Установки серийного номера...» (SerialNumber Config) меню «Утилиты» (Utility).

В открывшемся окне вы можете выбрать адрес ячейки для серийного номера, поставить галочку в поле «Относительно памяти данных» (Data memory offset), а также выбрать параметры его автоматического изменения. После настройки параметров изменение серийного номера и его запись в выбранную ячейку текущего окна программатора производится путем выбора пункта «Установить серийный номер» (Set Serial Number) меню «Утилиты» (Utility) или нажатием соответствующей кнопки.

 

Программа ICProg

 

При своей простоте интерфейса и минимальном размере дистрибутива, (примерно 2,7МБ) этот программатор заметно отличается своими возможностями и эргономичностью от других программаторов подобного типа. В этой статье я остановлюсь только на основных функциях и возможностях этой программы в отношении программирования PIC контроллеров PIC16F84 и PIC16F628, 628A, 628A-I/P. ICProg 105c-a имеет в своем составе очень большую базу поддерживаемых контроллеров, а так же FLASH и EEPROM, что немаловажно: с его помощью можно работать со смарт-картами (имеется помощник программирования смарт-карт). На рисунке 10 показан интерфейс и список поддерживаемых устройств.

 


Рисунок 10 – Интерфейс программы ICProg

 

Как видно из картинки, микросхем предостаточно. Предполагается что к компьютеру, через COM-порт, подключена аппаратная часть программатора PonyProg, информацию, по изготовлению которой можно найти на сайте Корабельникова Евгения Александровича http://ikarab.narod.ru. При использовании этой аппаратной части совместно с программой ICProg 105c-a, никаких доработок ее принципиальной схемы не требуется. После запуска программы, в большинстве случаев, автоматически происходит инициализация подключенного COM порта, т.е. тест можно не производить, хотя в меню (настройки) функция тестирования имеется. По всей видимости, это сделано для нестандартных случаев. Кстати, программа ICProg 105c-a работает так же и с физическими программаторами, поддерживающими LPT-порты. Далее, в меню настройки – опции, открываем вкладку программирование, и ставим галочку в окошке проверка при программировании (См. рисунок 11).


Рисунок 11 – Установка проверки при программировании

 

После выбора этой опции, сообщение об ошибке будет выдаваться сразу же после ее возникновения, и не нужно будет дожидаться окончания полного цикла программирования и проверки данных, зашитых в ПИК, для того, чтобы получить это сообщение (в случае наличия ошибки). Здесь же можно выставить и язык интерфейса. Все остальное оставляем по умолчанию. Далее заходим снова в меню настройки – программатор или просто жмем клавишу F3 и попадаем в опции настройки физического программатора (См. рисунок 12): в нашем случае это аппаратная часть программатора PonyProg. Здесь все должно быть выставлено, как показано на картинке. Программатор PonyProg здесь представляется как JDM Programmer: это что-то вроде универсального программатора, работающего с COM портом. Имеется большой выбор поддерживаемых программаторов, работающих, как было сказано выше, и с LPT портами.

 


Рисунок 12 – Настройки программатора

 

Все остальное оставляем по умолчанию. При использовании другого JDM программатора под COM порт, эти опции могут отличаться. Например, в поле параметры сигналов, нужно будет поставить галочку в поле Инверсия Данных Ввода, а Инверсию Данных Вывода снять. Далее, в окне выбора программируемых устройств, показанном на этом рисунке 13, выбираем PIC контроллер, который будет программироваться.

 

 

Рисунок 13 – Выбор микросхемы

 

Программируемый ПИК должен выбираться именно тот, который используется в действительности, т.е. если это PIC16F628A то именно его из перечня и выбираем, но никак не PIC16F628, иначе, при программировании, получим сообщение об ошибке типа «неизвестное устройство». Через меню файл, открываем подготовленный HEX файл. После загрузки файла, в окне конфигурация, можно наблюдать состояние битов конфигурации, которые были определены в «шапке» программы. Здесь показаны все установленные биты конфигурации, а также и тип тактового генератора микроконтроллера: в большинстве случаев это будет стандартный кварцевый генератор (XT). В строке состояния будет указываться тип используемого программатора, как показано на рисунке 14, номер COM-порта к которому он подключен, а также тип выбранного программируемого устройства.

 

Рисунок 14 – Строка состояния

 

После всех этих манипуляций, жмем кнопку или клавишу F5, и ждем окончания процесса программирования. Если при старте сообщения об ошибке нет, то, на практике, это, на 99,9%, означает, что процесс программирования пройдет успешно. Сказанное выше, справедливо для операционных систем Windows 9x и Windows ME. С Windows XP дело обстоит немного иначе, о чем будет сказано ниже. Необходимо особо отметить, что в ICProg 105хх имеется очень полезный для программистов встроенный дизассемблер, с помощью которого можно преобразовать «прошивку» (файл с расширением .HEX) в исходный ассемблерный код (файл с расширением .ASM), а это предоставляет возможность детального разбирательства с восстановленным таким образом текстом программы. Дизассемблирование происходит так: сначала стандартным образом открывается HEX файл, после чего щелкаем по кнопке  и получаем ASM файл. Правда, для того чтобы в полной мере “расшифровать” текст ASM файла, полученного таким образом, и понять алгоритм работы программы, нужно быть программистом и обладать определенными навыками работы, плюс изрядно потрудиться. Что бы вернуться обратно к HEX файлу, достаточно нажать кнопку . Так что, в этом отношении, все очень удобно и универсально. Однако, есть у этой программы и некоторые недостатки. К ним можно отнести:

– довольно маленькое окно просмотра загружаемого кода, что очень не удобно, особенно для тех, кто привык работать с PonyProg.

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

И последнее, на чем хотелось бы заострить внимание, это то, что до последней версии ICProg 105xx некорректно работал с операционной системой Windows XP. В ICProg 105c-a все эти недостатки исправлены, хотя, по этому поводу, еще встречается много кривотолков при обсуждении данной темы на форумах. Остается только отметить необходимые условия и настройки программы для работы с Windows XP, которые были описаны на форумах и проверены лично мной: у меня, все работало без проблем. В первую очередь, для тех, кто работает с XP, нужно, с сайта разработчика, помимо самой ICProg105c-a, скачать специальный драйвер, который нужно распаковать в директорию, где находиться сама программа ICProg105c-a. После запуска программы, в меню настройки - опции, на вкладке общие, устанавливаем опцию Вкл./NT/2000/XP/драйвер. Далее система спросит, установить драйвер или нет, естественно соглашаемся, и она его находит автоматом, т.к. он лежит там же где и сама программа. В настройках программатора, т.е. в меню настройки – программатор (F3), оставляем все без изменений. В заключение хотелось бы отметить, что, благодаря именно этому программатору, мне удалось прошить PIC16F628A - I/P. Запрограммировать его в других программаторах, в том числе и в PonyProg, было не возможно: при старте появлялось сообщение о неизвестном устройстве. Если это сообщение игнорировать, то процесс программирования начинался, но в микросхему зашивались все нули. Хотя в PonyProg 206 и включена поддержка PIC16F628, но это не PIC16F628A, то есть, вероятно, существует явная разница между ними.


Дата добавления: 2019-07-15; просмотров: 201; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!