Программатор ПИК-ов
Реактивно пишет пики, в том числе и 18-е,
работает только под 98-ми. На дельфях я
больше не пишу, так что
глобального обновления программатора не
будет, ну может мелкие доработки.
Схема
Программа
Схему пропика переделал так как нужно,
собственно сам Микрочип советует делать
так. Т.е. использовал те же линии Clock и Data, +5,
+Uprog. Кстати можно и пропиком шить по этой
схеме. Схема
. 74LS244 - шинный формирователь с тремя
состояниами, по нашему 555ап5 один в один (вытащил
из валявшегося под ногами синклера). 7404 - 561лн2,
ну тут пардон - под рукой ничего другого не
было, там можно и что-нибудь другое
поставить, например ту же лп9, удалив лишние
каскады на 3102. Транзистор Q5 служит для
принудительного сброса отлаживаемого
девайса, Q6 для исключения КЗ. Если
отлаживаемая схема питается от своего
источника, то Vdd подключать не надо,
достаточно только DATA, CLOCK, MCLR и никаких
переключателей, только между ножками RB6, RB7 и остальной схемой желательно
наличие резюка, скажем 1к, а на MCLR единицу
через диод и 1к.
Сам программатор ,
назначение большинства кнопок, думаю
понятно.
Кнопки:
HexToPic - открывает последний открытый
вами файл и прописывает его. Если работаете
в MPlab, то для проверки проги, достаточно
нажать F10 (компиляция), Alt+Tab(переключение на
программатор), F10(программировать пик).Если
программатор свернуть в систрей, то правой
кнопкой мыши кликнуть на иконке и выбрать
HexToPic. При внутрисхемном программировании
не требуется никаких переключателей, даже
питание схемы разрывать не нужно - после
программирования пик запустится, ну если,
конечно, правильно софт написан :-))
Auto - определяет Device ID пика, не на всех
проверено, так что пардон, в любом случае
можно исправить в файле ini.
Autosel Device - перед работой определяет и
устанавливает тип пика (в большинстве
случаев не нужно)
Down MCLR - "дергает" в ноль
соответсвующий вывод, т.е. сброс пичка.
Флажки:
Fuses not change - запрещает изменение слова
конфигурации при загрузке файла.
EEprom ReadOnly - запрещает запись в епром, при
программировании.
Erase before Write - перед записью стирает все
содержимое, замечу, что делать это вовсе не
обязательно, пики 62х, 87х, и т.п. имеют команду
begin erase, т.е. в этом случае перезаписываться
будут только измененные ячейки, перезапись
пика в этом случае может занять и 2 сек, в
зависимости от кол-ва и размещении
измененных байт. Достаточно нажать кнопку
Write.
Test blank before - тестирует пик на чистоту
перед записью.
TimeProg - пауза после команды записи, до
проверки, можно уменьшать до 4, по-крайней
мере у меня шьет, оптимально значение - 8.
ConfigWord - КонфигВорд.
ID_LOCS - соответственно.
Size Prog - размер проги.
Файл девайсов: k-pics.ini
Пример: (для Pic серии 16xxxx)
;****************************************************************
Device:
p16F876
- то, что будет
отображаться в боксе выбора пика
Type = 14bit
- тип пика, пока только 14
ProgSize = $2000
- размер памяти программ
EESize = $100
- размер внутреннего епрома
TimeProg = 00
- пауза после команды записи, 00
значит по умолчанию
DevID = $09E0
- ID номер пика
Fuses:
- подробнее внизу
Fuse1:$3030:CP_ALL=$FCF:CP_HALF=$1FDF:CP_UP256=$2FEF:CP_OFF=$3FFF:
Fuse2:$100:CPD_ON=$3EFF:CPD_OFF=$3FFF:
Fuse3:$200:WRT_OFF=$3DFF:WRT_ON=$3FFF:
Fuse4:$80:LVP_OFF=$3F7F:LVP_ON=$3FFF:
Fuse5:$800:DEBUG_ON=$37FF:DEBUG_OFF=$3FFF:
Fuse6:$40:BODEN_OFF=$3FBF:BODEN_ON=$3FFF:
Fuse7:$8:PWRT_ON=$3FF7:PWRT_OFF=$3FFF:
Fuse8:$4:WDT_OFF=$3FFB:WDT_ON=$3FFF:
Fuse9:$3:LP_OSC=$3FFC:XT_OSC=$3FFD:HS_OSC=$3FFE:RC_OSC=$3FFF:
;*****************************************************************
Fuses:
Fuses1: -
соответственно определение первого фуза
$3030 -
все биты этого фуза в единице
CP_ALL - то,
что будет отображаться в боксе выбора фуза
=$FCF -
в нулях, те биты, которые соответствуют
этому значению фуза, (взять прямо из файла ini
на этот пик)
остальные значения этого фуза аналогично.
Программатор для пиков
серии 18fxxxx.
Схема
абсолютно та же, что и для 16 пиков, никаких
переделок. В принципе можно пользоваться и
схемой от пропика, но качественного
внутрисхемного программирования не
гарантирую.
Сам программатор, kpics203.zip
, 230к, версия бета. Изменения небольшие: для
18-х пиков дополнительное меню конфигурации,
кнопка Config. Слова конфигурации не читаются
из hex-файла, а прописываются в программаторе
с сохранением при выходе и входе. Добавлено
меню Calibration.
По файлу k-pics.ini:
Все аналогично 16-м пикам, за исключением
байт конфигурации
Запись:
Clab1: Osc Switch :$1:$20:Enabled=$DF:Disabled=$FF:
Формат:
Clab1:< название метки
>:<номер байта
конфигурации>:<все
биты в единице>:<строка
в боксе выбора>=<значение
взять из файла inc к этому процессору>:<строка
в боксе выбора>=<значение
взять из из файла inc к этому процессору>:
Метки от Clab1 до Clab11.
Номер байта конфигурации $1 - старший байт
первого слова, другими словами CONFIG1H, $2 -
мдадший байт первого слова, CONFIG1L
соответственно, и т.д.
Beta версия - не доделана, а
именно, не делает проверку перед прописью
конфигурации. Может содержать ошибки
оформительского характера, не сохраняет в
файл прочитанное из пика. Не умеет делать
modify memory (время перезаписи - 0.5 сек.) Пока нет времени
доделывать до конца, прописывает и ладно.
Любые вопросы по схеме,
программе - mirabis@mail.ru
|