Главная » Статьи » ПРОГРАММЫ |
Устанавливаем IC-Prog Оболочка программирования IC-Prog занимает одно из первых мест по популярности среди радиолюбителей, так как способна работать с большим числом как программируемых микросхем, так и адаптеров различных типов. Интересы автора программы (его зовут Bonny Gijzen) лежат, по-видимому, в области микроконтроллеров PICmicro, поэтому приспособлена IC-Prog больше к программированию именно этих микроконтроллеров, в отличие от PonyProg, развивающейся в сторону микроконтроллеров фирмы Atmel. Хотя с программированием и тех и других обе программы успешно справляются. "Скачать" IC-Prog можно с сайта его автора по адресу http://www.ic-prog.com/icproq105C.zip или же с нашего сервера (ссылка внизу). В этом архиве находится единственный файл icprog.exe последней на момент подготовки статьи версии 1.05с. С выходом новых версий адрес может измениться. Если на компьютере установлена операционная система Windows-98 или Windows Millenium, файл достаточно запустить на исполнение. Для операционных систем Windows 2000, Windows XP потребуется еще один файл, icprog.sys, находящийся в архиве по адресу http://www.ic-prog.com/icprog_driver.zip. Файл драйвера необходимо поместить в одну папку с исполняемым icprog.exe. Перед запуском IC-Prog в этих ОС необходимо, щелкнув по имени файла правой кнопкой мыши, выбрать пункт "Свойства" ("Properties") и установить совместимость (compatibility) с Windows 2000. Так-же будет полезен файл помощи, находящийся по адресу http://www.ic-prog.com/icprogh_rus.zip. Все эти файлы вы можене скачать одним архивом с нашего сервера, перейдя по ссылке внизу статьи.
Рис.39
Рис.40
После запуска программы на экране появится окно, похожее на изображенное на рис. 39,
но с надписями на английском языке. Выберем в меню "Settings"
(настройки) пункт "Options" (опции), а в нем — закладку "Language"
(язык), где в свою очередь выберем Russian, как показано на рис. 40.
После выполнения предложенного программой перезапуска она станет
русскоязычной. Некоторые несуразности вроде слова "команды" с удвоенной
буквой м, оставим на совести переводчика. Первое бросающееся в глаза отличие IC-Prog от PonyProg — раздельные окна буферов программной памяти и памяти данных микроконтроллера. К тому же буфер программы — 16-разрядный. Коды команд длиной 12 (как у PIC12C508) 14 (как у PIC16F84) или 16 (как у микроконтроллеров серии PIC18) двоичных разрядов отображаются в нем четырехразрядными шестнадцатиричными числами. Для сравнения на рис. 41 приведены строки буферов PonyProg (а) и IC_Prog (б) , содержащие один и тот же фрагмент программы микроконтроллера PIC16F84.
Отличия заметить несложно. Адреса ячеек буфера IC-Prog соответствуют
действительным адресам 14-разрядных ячеек памяти микроконтроллера (а не
больше их в два раза, как в PonyProg). Порядок следования
шестнадцатиричных цифр соответствует старшинству разрядов, а не байтов.
Содержимое "пустых" ячеек (3FFFH) отображается правильно.
Рис.43
Интересная особенность буфера памяти программ IC-Prog — возможность
дизассемблировать находящиеся в нем коды и увидеть их в форме мнемоник
команд микроконтроллера. Достаточно нажать на экранную кнопку или выбрать в меню "Вид Окна" пункт "Ассемблерный", чтобы окно превратилось в показанное на рис. 43. Его содержимое соответствует шестнадцатиричному на рис. 41, а. Возвращают окно в прежнее состояние с помощью экранной кнопки
или пункта меню "Вид Окна — Шестнадцатиричный". К сожалению,
дизассемблер "знаком" только с системой команд микроконтроллеров серии
PIC16. К ним можно добавить Р1С12, если поместить в папку с файлом
icprog.exe файл динамической библиотеки подпрограмм disasm.dll,
"скачанный" по адресу http://www.ic-proq.com/disasm.dll . Обратите внимание на правую часть окна IC-Prog. Здесь находится табло "Конфигурация". Вид его зависит от выбранного для программирования микроконтроллера. Например, на рис. 44 оно показано в варианте для PIC16F628. Предусмотрена возможность выбрать тип генератора (осциллятора, ER CLKOUT расшифровывается как "установка частоты внешним резистором с выходом тактовых импульсов"), включить защиту кода (СР OFF — защита выключена) и задать значения других разрядов слова конфигурации. В нижней части окна выведено шестнадцатиричное значение CRC — циклического контрольного кода всего содержимого памяти микроконтроллера. Редактировать его значение нельзя, программа автоматически обновляет его при любом изменении содержимого любой ячейки буферов программной памяти, EEPROM, слова конфигурации и так называемого идентификационного (ID) кода. Для последнего в микроконтроллерах PICmicro отведена специальная область памяти, куда пользователь имеет возможность записать произвольное четырехразрядное шестнадцатиричное значение. ID код остается доступным для чтения даже при включенной защите, что позволяет при необходимости "опознать" хранящую его микросхему. Для его отображения и редактирования на табло "Конфигурация" предусмотрено специальное окно. В нижней части табло можно увидеть значение слова конфигурации в шестнадцатиричном формате. А если дважды "щелкнуть" мышью в произвольном месте поля табло, будет открыто окно (рис. 45), позволяющее присвоить слову конфигурации шестнадцатиричное, десятичное или символьное (ASCII) значение, не занимаясь индивидуальной установкой отдельных двоичных разрядов.
Подключаем адаптер
Уже отмечалось разнообразие адаптеров, с которыми способна работать программа IC-Prog. Доступ к их списку, показанному на рис. 46, можно получить после выбора в меню "Настройки" пункта "Программатор", нажатия клавиши F3 или экранной кнопки . Со схемами этих "официально поддерживаемых программаторов" можно ознакомиться, открыв страницу http://www.ic-prog.com/programmers.html (Или у нас по ссылке внизу статьи).
В графах таблицы приведены названия цепей портов, к которым подключают
адаптеры и номера соответствующих контактов интерфейсных разъемов. Для
порта LPT — DB25M, установленного на компьютере и CEN-36, обычно
подключаемого к принтеру. Как правило, номера совпадают. В противном
случае они разделены дробной чертой (в знаменателе для CEN-36). Названия
цепей в заголовке таблицы соответствуют приведенным в табл. 2.
Микроконтроллеры AT89S1051, AT89S2051, AT89S4051 программируют с помощью адаптеров "Tafe" и "DL2TM". Последний был показан на рис. 12. Оба подключают к порту LPT. К нему же подключают адаптер Важная особенность программы IC-Prog — выбрав в меню "Настройки" пункт "Тест Программатора" (в результате будет открыто окно, показанное на рис. 47), можно вручную изменять логические уровни напряжения на выводах порта компьютера, к которому подключен адаптер программирования. Это позволяет с помощью осциллографа или вольтметра убедиться в правильности прохождения сигналов от разъема порта до панели программируемой микросхемы. Сигнал "Выход Данных" — это DATA (см. табл. 4) или MOSI (см. табл. 5), "Тактирование" — соответственно CLOCK или SCK, "Сброс" — MCLR или RESET, "VCC" —управление питанием программируемой микросхемы. Если "окошко" сигнала отмечено "галочкой", на выводе порта будет установлен высокий, в противном случае — низкий уровень.
Проверяется и правильность восприятия компьютером сигнала "Вход Данных"
(DATAJN или MISO). В адаптерах для микроконтроллеров PICmicro линии
DATA и DATAJN связаны с одним и тем же контактом панели микросхемы, так
как цепь передачи данных у этих микроконтроллеров двусторонняя. Поэтому
при исправном адаптере любое изменение состояния линии DATA влечет
изменение состояния линии DATAJN, что фиксирует "галочка", появляющаяся и
исчезающая на панели "Входной Сигнал".
В радиолюбительской литературе и в Интернете можно найти множество схем
адаптеров программирования, которых нет в списке "официально
поддерживаемых" программой IC-Prog. Тем не менее большинство из вполне
пригодно для работы с этой программой. Необходимо лишь, проанализировав
схему адаптера, найти указанные в табл. 4 или 5
цепи. Вполне возможно, что их подключение линиям портов компьютера
совпадет с одним из упомянутых в этих таблицах адаптеров. Если точного
соответствия найти не удалось, — не беда, проблема решается
изготовлением соответствующего переходника.
При подсчете числа инверсий обратите внимание, что многие микросхемы,
используемые в качестве буферных, имеют похожие названия и одинаковую
цоколевку, но различаются как раз наличием или отсутствием инверсии
сигналов. Например, элементы микросхемы SN7406N (К155ЛНЗ) инвертируют
сигналы, а SN7407N (К155ЛП9) — нет. Адаптеры для микроконтроллеров АТ89 и АТ90, ATtiny ( рис. 5), ATmega ( рис. 7) и PICmicro можно подключить непосредственно к порту компьютера по схеме, показанной на рис. 49, но лучше все-таки применить в качестве "промежуточного звена" адаптер STK200 соединяя с ним адаптеры Sl-prog по схеме, изображенной на рис. 50.
Схема STK200 приведена на рис. 8 . Кварцевый
резонатор ZQ1 в данном случае не нужен. Он уже имеется на плате
предназначенного для программирования микроконтроллеров Atmel адаптера
из комплекта Sl-prog. Чертежи печатной платы и фотоснимок адаптера
STK200 показаны на рис. 9 и 10 . На рис. 51 показано, как должно выглядеть окно "Настройка Программатора" для программирования микроконтроллеров серии PICmicro с помощью адаптера из комплекта Sl-prog, подключенного к порту LPT. Для микроконтроллеров фирмы Atmel инвертировать сигнал данных не следует. Однако имеющийся в предназначенном для них адаптере переключатель SA1, изменяющий полярность сигнала сброса, в данном случае не действует. Поэтому нужную (неодинаковую для разных микроконтроллеров) полярность этого сигнала устанавливают программно, оперируя "галочкой" "Инверсия Сброса".
Выбираем тип программируемой микросхемы
Выбрать микросхему для программирования можно и из списка, выпадающего, как показано на рис. 53, из имеющегося в основном окне программы окошка с названием микросхемы, выбранной ранее. Этот способ менее удобен, так как на экране видна лишь небольшая часть общего списка и искать нужную микросхемы приходится довольно долго. Открыв в меню "Настройки" окно "Выбранные последними" (рис. 54), можно увидеть список из восьми микросхем, с которыми уже приходилось работать, и выбрать из него нужную. Это очень удобно, если приходится работать с небольшим числом разных микроконтроллеров, постоянно переходя от одного к другому.
Основные параметры выбранной микросхемы можно узнать из "подсказки", подобной показанной на рис. 55. Она будет выведена на экран при выборе пункта "Информация о микросхеме" в меню "Вид Окна".Стоит отметить и пункт "Положение Установки" этого меню.
Если выбранная микросхема может быть запрограммирована с помощью выбранного адаптера, на экране появится окно, подобное изображенному на рис. 56. Наглядно показано, каким образом следует устанавливать эту микросхему в панель адаптера.
Окно, показанное на рис. 57, говорит о том, выбранная комбинация микросхема-адаптер допустима, но в схему последнего нужно внести изменения или даже подключить вместо него другой. Именно так выглядит это окно при программировании микроконтроллера AT90S2323 с помощью адаптера Sl-prog, соединенного с портом СОМ компьютера.
В более простом случае, например, для программирования 28-выводного
микроконтроллера PIC16F873 с помощью оснащенного 18-выводной панелью
адаптера JDM, достаточно изготовить переходник, надлежащим образом
соединяющий выводы микроконтроллера с контактами панели. Разработать
схему переходника поможет табл. 2 .
Загружаем данные и программируем
Открыв на экране папку, в которой находится нужный файл, можно просто
"перетащить" его значок мышью в окно буфера программы IC-prog. Но этот
прием действует лишь в том случае, если если он включен соответствующей
"галочкой" на закладке "Перетаскивание мышью" пункта "Опции" меню
"Настройка". На этой же закладке нужно выбрать тип "перетаскиваемых"
файлов (раздельно для памяти программ и EEPROM). Автоматического
распознавания в данном случае не происходит.
После нажатия появившейся в окне "Compare Buffers" кнопки "Next" получим аналогичную информацию о следующем несовпадении, а если их больше нет, — сообщение "Buffer compare done!" Если ошибок слишком много, процесс сравнения можно прервать с помощью кнопки "Cancel".
Чтобы исправить ошибки (или ввести новые данные), достаточно установить
курсор в нужное место окна буфера и набрать новое значение на
клавиатуре. Команды, имеющиеся в меню "Правка", позволяют заполнить
одним и тем же значением ячейки всего буфера ("Заполнить Буфер",
"Заполнить буфер Данных") или его части ("Заполнить Буфер из...",
"Заполнить буфер Данных из...").
Если во время предыдущего программирования в микроконтроллере была включена защита содержимого памяти от копирования, исполнение команды "Читать Все" приведет лишь к заполнению текущего буфера информацией, не совпадающей с истинным содержимым памяти микроконтроллера. В некоторых случаях буфер окажется заполнен байтами 0x7F, в других — нулями, в третьих последовательность байтов 0x11, 0x22, 0x33 и так далее.
Состояние отвечающих за защиту памяти ячеек конфигурации
микроконтроллеров серии PICmicro программатор правильно считывает и
отображает на панели "Конфигурация" главного окна. К сожалению, для
микроконтроллеров серий АТ89 и АТ90 это невозможно, о состоянии их
защиты от копирования удается судить только по "правдоподобности"
результата исполнения команды "Читать Все". Отключает защиту лишь полное
стирание содержимого памяти (команда "Стереть Все"), причем даже из
этого правила есть исключения.
Источник: http://radio-hobby.org/modules/news/article.php?storyid=682 | |
Просмотров: 5308 | | |
Всего комментариев: 0 | |