Для загрузки данных из файла, находящегося на жестком диске, в текущее окно программатора, а также для записи информации из окна программатора в файл программа поддерживает ряд команд, объединенных в меню «Файл».
Загрузим программу и данные в программатор. Если вы помните, все вышеперечисленные трансляторы создают отдельный файл для программы (файл с расширением hex) и отдельный файл для данных (файл с расширением еер). Поэтому для загрузки программы воспользуемся командой «Открыть файл программы (Flash)». При выборе этой команды появляется диалог «Открыть программу». Убедитесь, что в поле «Тип файла» выбрано «*.hex». Если это не так, выберите это значение из выпадающего списка.
Затем найдите на диске директорию вашего проекта, выберите файл и нажмите кнопку «Открыть». Загруженные данные появятся в текущем окне. Таким же образом загружается содержимое EEPROM. Только в этом случае нужно выбрать тип файла «*.еер».
После того, как программа и данные загружены, их можно просмотреть, при необходимости – подредактировать прямо в окне программатора. А если нужно, то и записать обратно на диск. Если у вас есть принтер, можно распечатать дамп из текущего окна на бумаге.
Но основная функция – это, естественно, запись программы и данных в память микроконтроллера. Все команды, предназначенные для работы с микроконтроллером, сведены в меню «Команды». При помощи этих команд вы можете отдельно запрограммировать память программ, отдельно – EEPROM. Команда «Записать все» позволяет запрограммировать программу и данные за одну операцию.
Три команды считывания позволяют прочитать содержимое памяти программ и памяти данных микроконтроллера. Прочитанные данные помещаются в текущее окно программатора. Считанную из микросхемы информацию можно записать на диск при помощи меню «Команды». Группа команд проверки используется для сравнения информации, записанной в микросхему, и информации в текущем окне программатора.
Команда «Стереть» позволяет стереть память микросхемы. Команда стирает одновременно все виды памяти:
– память программ;
– память данных
– ячейки защиты (если они были запрограммированы).
Однако здесь есть одно исключение. Некоторые микросхемы имеют бит конфигурации (fuse-переключатель), запрещающий стирание EEPROM. Если запрограммировать этот бит, то при стирании микросхемы EEPROM стираться не будет. Это позволяет не делать лишних циклов записи/стирания и сэкономить ресурс EEPROM в том случае, когда его содержимое менять не обязательно.
На пункте меню «Биты защиты и конфигурации» необходимо остановиться подробнее. Эта команда предназначена для чтения и изменения fuse-переключателей (битов конфигурации) и битов защиты микросхемы. В русскоязычном варианте программы этот пункт почему-то остался не переведенным.
При выборе этого пункта меню открывается окно. Набор элементов управления для каждого вида микросхем будет свой. Причем сразу после открытия окна все поля не будут выбраны (не будут содержать «галочек»). Это значит, что содержимое этих полей пока не соответствует реальному содержимому битов защиты и конфигурации микросхемы.
Для того чтобы считать эти значения, необходимо нажать в том же окне кнопку «Считать все». На короткий момент появится окно, показывающее процесс считывания. Затем снова откроется окно битов защиты и конфигурации. Теперь уже все поля примут значения, считанные из микросхемы. Галочка в любом из полей означает, что данный бит запрограммирован. Напоминаю, что запрограммированный бит содержит ноль, незапрограммированный – единицу. Теперь вы можете изменить значение любого бита. Но эти изменения будут только на экране. Для того, чтобы записать изменения в микросхему, нажмите кнопку «Записать все». Кнопки «Установить» и «Стереть» позволяют установить или сбросить значения сразу всех полей в данном окне.
Для удобства работы с программатором он имеет режим группового выполнения команд. Команды чтения информации из файла, чтения байта конфигурации, обновления серийного номера, стирания микросхемы и, наконец, программирования могут выполняться в пакете при нажатии всего одной кнопки. Для настройки пакета команд выберите пункт «Настройки программирования» меню «Команды». Откроется окно «Настройки программирования», изображенное на рисунке 9. В этом окне отметьте галочками те операции, которые должны выполняться при запуске пакета, и нажмите кнопку «ОК». Для запуска пакетной команды достаточно выбрать пункт «Программирование» или нажать соответствующую кнопку на панели инструментов.
Рисунок 9 – Настройки программирования
Пакетный режим очень удобен в процессе отладки программы. Если в пакет включена опция «ReloadFiles», то достаточно один раз вручную открыть нужный файл нужного проекта, а затем можно просто нажимать кнопку «Программирование» каждый раз, когда нужно перепрошить микросхему новой версией программы. Все остальное PonyProg сделает за вас. Новая версия программы сама загрузится в программатор, микросхема сотрется, а затем в нее запишется новая информация.
Только не забывайте поставить команду стирания, если вы собираетесь программировать. Помните, что при записи в нестертую микросхему результат непредсказуем. Каждый «прошитый» в процессе программирования бит может быть восстановлен только в результате стирания всей памяти.
Программатор имеет встроенную систему автоматического формирования серийного номера программы.
Серийный номер – это просто порядковый номер версии программы. Этот номер может автоматически записываться в выбранную вами ячейку памяти программ или памяти данных. Настройка данного режима производится при выборе пункта «Установки серийного номера...» (SerialNumber Config) меню «Утилиты» (Utility).
В открывшемся окне вы можете выбрать адрес ячейки для серийного номера, поставить галочку в поле «Относительно памяти данных» (Datamemoryoffset), а также выбрать параметры его автоматического изменения. После настройки параметров изменение серийного номера и его запись в выбранную ячейку текущего окна программатора производится путем выбора пункта «Установить серийный номер» (SetSerialNumber) меню «Утилиты» (Utility) или нажатием соответствующей кнопки.
При своей простоте интерфейса и минимальном размере дистрибутива, (примерно 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 – Выбор микросхемы