Настройка

После установки и запуска программы открывается ее основное окно.
Основное окно программы

В первую очередь необходимо настроить программатор. Для этого входим в меню Settings -> Hardware. Открывается окно настроек программатора, где нужно выбрать программатор JDM, выбрать порт, к которому подключен программатор и установить галку Blockade configuration и нажать кнопку Apply edits.
Окно настроек программатора

После этого можно протестировать, "видится" программатор или нет. Для этого в меню выбираем Device -> Hardware Test или нажимаем горячую клавишу Ctrl+T. Появится окно теста, где должно быть написано "Hardware Ok". В силу простейшей схематики программатора этот тест не дает 100% уверенности его работоспособности, но хотя-бы позволяет на что-то надеяться.
Тест программатора

Проверка, чтение МК

Далее, в выпадающих списках в правом верхнем углу основного окна выбираем семейство и конкретный чип.
Выбор микроконтроллера

После этого можно вставить новый микроконтроллер в панельку программатора и провести очередной тест. В меню выбираем Device -> Detect Device (Ctrl+D). Появится окно определения микроконтроллера, где должна отобразиться модель подключенного микроконтроллера.
Внимание! Если модель не определится (будет написано "Detected -> UNKNOWN"), продолжать не стоит. Значит программатор не работает и программирование невозможно (есть вероятность испортить микроконтроллер). Ищите ошибку в схеме программатора.
Определение микроконтроллера

Теперь немного теории. В последней ячейке программной памяти микроконтроллера при его производстве записывается значение, необходимое для калибровки внутреннего тактового генератора. Поскольку программная память перезаписываемая, есть вероятность случайно затереть калибровочное значение, что приведет к невозможности применить этот микроконтроллер в данном проекте (так как правильная тактовая частота необходима для генерации несущей ИК-сигнала и ее уход от нормы вызовет нестабильную ИК-передачу). Поэтому, крайне рекомендую выполнить действия по сохранению этого значения, описанные ниже.

Выбираем в меню Device -> Read All (Ctrl+L), чтобы прочитать память контроллера. Процесс чтения займет несколько секунд.
Окно чтения микроконтроллера

Далее необходимо пролистать окно программной памяти до конца. В новом микроконтроллере во всех ячейках кроме последней будет записано 3FFF. А в последней - некоторое число, начинающееся на 34 (3430 на рисунке). Это и есть калибровочное значение. Это число необходимо где-нибудь записать, чтобы в случае порчи можно было восстановить его.
Калибровочное значение

Программирование МК

Теперь можно приступить к программированию. Через меню File -> Open выбираем и загружаем в программу hex-файл. После этого, выбираем в меню Device -> Program All (Ctrl+P). Начнется процесс записи в микроконтроллер. Скорей всего, выскочит вопрос о несовпадении значения Bandgap в контроллере и в программе. Это настройка сброса контроллера при снижении напряжения питания, в данном проекте не используется. Поэтому можно не думая ответить "Да", чтобы записать умолчальное значение 0x03 из hex-файла (это предотвратит дальнейшее сообщение об "ошибке" несовпадения этих значений).
Bandgap

После завершения процесса записи можно прочитать микроконтроллер (Ctrl+L) и убедиться, что калибровочное значение не испорчено. На этом процесс программирования можно считать законченным.

Заключение

Теперь, на всякий случай расскажу, что делать, если калибровочное значение было затерто. Нужно поставить курсор в последнюю ячейку программной памяти и просто вписать туда ранее сохраненное значение, а потом записать это в контроллер (Ctrl+P). Программа в процессе записи предупредит о несоответствии значений в буфере и в контроллере. Нужно ответить "Да" для использования значения из буфера.
Если калибровка испорчена, а заводское значение неизвестно, можно оживить этот контроллер записью числа 3480 (среднее значение). Но использовать этот контроллер можно будет только в проектах, где не важна точность тактовой частоты, либо используется внешний тактовый генератор (на кварце). Микроконтроллер, у которого в последней ячейке не записано число вида 34xx, как правило вообще неработоспособен.

Программатор PIC

Протоколы проводного управления

Поиск по сайту