Бесплатные программаторы, которые можно найти в
интернете безнадежно отстают от разработчиков чипов и не предлагают способов
быстрой модернизации для программирования новых микроконтроллеров.
В данном случае была сделана попытка
разработать программную оболочку в рамках которой легко было бы наращивать
возможности по программированию различных чипов хотя бы для предопределенных
семейств.
Программатор характеризуется тем, что:
Испытан под Windows 98, Windows Me, Windows
2000 c процессорами Celeron, AMD Duron, AMD Athlon T, Pentium III до частоты
1000 МГц
Программирование ведется через порт RS232
Программа не требует инсталяции и
дополнительных драйверов.
Программирует микроконтроллеры семейства PIC
(отладка производилась на PIC16F84 и PIC16F877) по последовательному протоколу
и микроконтроллеры семейства AVR (отладка производилась на AT90S8535)
Предостовляет возможность самостоятельно
добавлять новые чипы из указанных семейств с идентичным протоколом
программирования с помощью конфигурационных файлов.
Позволяет произвольно менять структуру и
содержание меню программируемых чипов и информационных полей связанных с
программируемым чипом.
Позволяет загружать и редактировать бинарные
и HEX файлы, выполнять блочные операции с данными, расчет CRC по нескольким
алгоритмам
Позволяет индивидуально программировать
различные области чипа (память программ, память данных, биты опций, биты
защиты)
Рис.1. Окно програмной оболочки
Программирование PIC-ов
Рис.1. Схема программатора
PIC-ов
Особой оригинальностью не отличается поскольку
в основном повторяет схему из известного программатора PonyProg. Следует уделять
внимание уровню сигнала на выводе CLOCK чипа, он не должен быть меньше 4 В при
высоком уровне, что может случиться при неправильном подборе стабилитрона
Программирование AVR-ов
Рис.2. Схема программирования
AVR-ов
Здесь показан способ как организовать
программирование AT90S8535 прямо на плате с помощью RS232 и небольшого
аппаратного дополнения. Микросхема DD1 служит для изоляции сигналов
программирования от чипа в режиме работы. Разводка микросхемы показана в колодке
c расположением контактов типа PGA44. Испытания показали, что большинство
микросхем AT90S8535 и AT90S8515 можно программировать при частоте кварца 11,0592
МГц.
Структура конфигурационных файлов
Конфигурационные файлы имеют расширение chp и
должны находиться в директории программы. Программа при запуске производит поиск
в своей директории всех конфигурационных файлов и их объединение во внутреннем
буфере. Идея таких файлов взята из программатора ComPic и немного изменена.
Каждому чипу соответствует своя секция. Возможность наследования свойств не
предусмотренна, так как это ухудшает прозрачность описания.
Пример структуры конфигурационного файла для
PIC16F84
[Chip PIC16F84_ICP]
Секция чипа c уникальным
названием чипа
Level1=MicroChip
Название пункта меню верхнего
уровня
Level2=PIC
Название пункта меню 2-го
уровня вложения
ItemCaption=PIC16F84
Название конечного пункта меню
InitClass=TfrmMICROCHIP_PIC_ICP
Название класса окна-фрейма
программирующего данное семейство чипов
по определенному протоколу
Названия классов предопределены в программе: TfrmMICROCHIP_PIC_ICP и
TfrmATMEL_AVR_ICP
Здесь идет
определение программируемых областей, в пунктах Content разные параметры
отделяются символом "|"
Area_1_Content= Code |
0..3FFh (1KW)
Название и описание области
программирования
Area_1_data=CODE, 0, $3FF,
14
Данные связанные с областью
программирования - уникальный идентификатор, начальный адрес, конечный
адрес, размер слова данных в битах
Здесь идет
определение установок для некоторых областей программирования определенных
выше
Param_1_Content=CP | CP | CONFIG
Определение установки с названием CP, с
уникальным идентификатором CP из области CONFIG. По умолчанию установка
принимает значение с номером 1 в суффиксе идентификатора
Описание возможных значений установки
Param_1_Choice1=1 - Code protection OFF
Название 1-го значения установки CP
Param_1_Choice1_icon=4
Номер во внутреннем списке отображаемой
иконы для 1-го значения
Param_1_Choice1_data=1111111111xxxx
маска 1-го значения
Param_1_Choice2=0 - Code protection ON
Param_1_Choice2_icon=3
Param_1_Choice2_data=0000000000xxxx
Описание 2-го значения установки
Param_2_Content=PWRTE | PWRTE | CONFIG
Param_2_Choice1=1 - Power up timer disabled
Param_2_Choice1_icon=2
Param_2_Choice1_data=xxxxxxxxxx1xxx
Param_2_Choice2=0 - Power up timer enabled
Param_2_Choice2_icon=1
Param_2_Choice2_data=xxxxxxxxxx0xxx