УФФ...
первый рабочий тест таки испекся.
ПРОТОТИП ПРОГРАММАТОРА для АТ89С2051/4051Не слишком оптимально и требует редакции - НО ВПОЛНЕ РАБОТОСПОСОБЕН.
управление с помощью загрузки командных хекс файликов (так проще тест и проверку организовать).
Принцип.
Открываем папочку hex files
первично (из командного режима бутлоадера) сначала загружаем сам программатор (pgx.hex)
затем применяем следующие файл-команды:
Код: Выделить всё
at2051.hex - загрузка максимального значения адреса ПЗУ для AT89C2051
at4051.hex - загрузка максимального значения адреса ПЗУ для AT89C4051
bbinfo.hex - возвращает строчку-идентификатор блока расширения (Px051v0 на данный момент)
chenge_mc.hex - приводит линии панельки в соответствии с режимом установки/снятия МК
chip_erase.hex - выполняется "общее стирание" МК
purity.hex - выполняет проверку на "чистоту" - возвращает или только значение (шестнадцатеричное для простоты)
счетчика ошибок (в норме 0x0000)
или значение счетчика ошибок (ненулевое), адрес первой встреченной ошибки и считанный байт данных этой ячейки
rd_dump.hex - выполняет чтение ПЗУ МК в "верхнюю страницу" ОЗУ накопителя (позже будет использовано, пока просто читает)
blank.hex - заполняет нижнюю страницу накопителя ОЗУ кодом 0xFF (подготовка к загрузке целевого файла)
rd_sign.hex - читает и возвращает для просмотра первые два байта сигнатуры МК
wr_lb1.hex - запись бита защиты LB1
wr_lb2.hex - запись бита защиты LB2
wrv_data.hex - запись и верификация массива из нижней страницы ОЗУ накопителя в МК - возвращает или только значение
(шестнадцатеричное для простоты)счетчика ошибок (в норме 0x0000)
или значение счетчика ошибок (ненулевое), адрес первой встреченной ошибки и считанный байт данных этой ячейки
Служебные команды, используемые для настройки/проверки источников питания вывода RESET
upg_on.hex - включить источник +12 вольт
upg_of.hex - отключить источник +12 вольт
z_on.hex - включить закорачивающий ключ
z_of.hex - отключить закорачивающий ключ
ts_rom.hex - тест проверки корректности размещения байт в ПЗУ (с помощью заведомо исправного промышленного программатора)
Следует учесть, что ряд команд (purity.hex, rd_dump.hex, wrv_data.hex) не будут исполняться до тех пор (завершение с просьбой загрузки предельной границы массива данных), пока не будет загружено значение максимального адреса массива (at2051.hex или at4051.hex)
Команда chenge_mc.hex помимо прочего сбрасывает значение максимального адреса массива (по флагам).
Загрузка целевого файла производится также как и загрузка командного - система автоматически разместит данные из целевого файла по соответствующим адресам нижней страницы ОЗУ накопителя.
Поскольку применен алгоритм обхода при прошивке тех ячеек, значение которых равно 0xFF рекомендуется перед загрузкой целевого файла выполнить команду blank.hex.
Вот вкратце/сумбурно пока все.
Ссылка на полный архив исходников:
https://yadi.sk/d/apC6cV-h0hvObw(старые удалены как потерявшие актуальность).
Папка PAVR относится к собственно приставке (МК ATTiny2313)
Папка PGX051 - проект подгружаемой в КОТУИНКО программы для работы всего комплекта в режиме программатора AT89C2051/4051
Папка kotuino_b2b - собственно основа проекта КОТУИНО (биос b52b).
Папка comand_files_pgx051 содержит исходники командныхфайлов и сами командные файлы.
При изменениях в PGX необходимо проверять и командные файлы - их базовые параметры для упрощения привязаны к значениям, считываемым из листинга pgx.lst после чистовой компиляции.
