Был когда-то замечательный программатор ludipipo для PIC16F84, который состоял всего из восьми деталей: трех резисторов, диода, крен'ки, конденсатора, разъема DB9 и панельки.
Прошло несколько лет, и фирма Microchip выпустила новое поколение flash-микроконтроллеров PIC16F87x. Ludipipo с ними тоже работал, но им можно было прошивать только первые 1K программной памяти и первые 64 байта EEPROM, т.е. только тот объем, который был в PIC16F84.
Возникла проблема, как же прошить все 8K в новом PIC16F876 ?...
И я решил потратить выходные на написание нового софта для старого программатора.
![]() |
PORT:COMx | Выбрать порт, к которому подключен программатор |
DEVICE:PIC16F8xx | Выбрать тип микросхемы: PIC16F84, PIC16F873, PIC16F874, PIC16F876 или PIC16F877 Буфер при этом очищается. |
LOAD:filename |
Загрузить буфер программатора из HEX-файла. Содержимое буфера изменяется только по адресам, указанным в HEX файле, т.е. можно делать "слияние" нескольких HEX-файлов. Используется "Microchip'овский" формат HEX-файла: программная память начитается с адреса 0x0000, Fuses с 0x4000, EEPROM с 0x4200. |
SAVE:filename | Сохранить буфер программатора в HEX-файле. |
PROGRAM | Прошить микросхему. |
READ | Прочитать микросхему. |
ERASE | Стереть микросхему. |
BLANKCHECK | Проверить, "чистая" микросхема или нет. Полезно выполнять после команды ERASE. |
VERIFY | Сравнить содержимое микросхемы с содержимым буфера программатора. Полезно выполнять после команды PROGRAM. |
QUIT | Выйти из программатора. Это нужно, например, для запуска программатора из BAT-файла. |
Командная строка здесь - это список команд, которые программатор должен выполнить последовательно одну за другой. Поэтому порядок команд имеет значение, например:
PPIC.EXE PORT:COM4 DEVICE:PIC16F876 LOAD:MY1.HEX PROGRAM QUIT
выбран порт COM4
выбран тип микросхемы PIC16F876
загрузка буфера программатора из файла MY1.HEX
прошивка микросхемы
выход из программы
PPIC.EXE PROGRAM PORT:COM4 DEVICE:PIC16F876 LOAD:MY1.HEX QUIT
Неправильно:
команда PROGRAM
будет использовать значения по умолчанию,
т.е. COM1, PIC16F84 и пустой буфер.
При выполнении команд из командной строки (в отличии от команд из меню) сообщения об успешном завершении операций не появляются. При аварийном завершении операции сообщение все равно появится, и если в командной строке есть операции, следующие за той, которая вызвала ошибку, то они не будут выполнены.
![]() |
![]() |