Как прошить микроконтроллер PIC?
Работа с программой PicKit2 Programmer
Если вы уже собрали USB программатор PIC своими руками, то пора научиться им пользоваться. Для этого нам необходимо установить программную оболочку "PICkit 2 Programmer", которая разрабатывалась специально для управления программатором PICkit2.
Для работы программы требуется «.NET Framework». Если этот пакет не установлен на компьютере, то его нужно установить. Также можно воспользоваться дистрибутивом "PICkit 2 Programmer" с интегрированным пакетом – PicKit 2 V2.61 Install with .NET Framework. Скачать его можно здесь.
Итак, если программа установлена, приступим к изучению её возможностей.
Устанавливаем микроконтроллер в панель программации, подключаем программатор к компьютеру и запускаем "PICkit 2 Programmer".
При запуске программа производит опрос программатора и автоматически определяет тип программируемого микроконтроллера по идентификационным битам (так называемому device ID). Внимание! Микросхемы семейства Baseline, а также микросхемы EEPROM и KeeLOG не имеют device ID. Чтобы программа смогла работать с этими микросхемами, нужно выбрать конкретное изделие через меню "Device Family".
Если вместо такой дружелюбной картинки покажется вот такая...
..., то нужно проверить корректно ли подключен usb-кабель, и через меню "Tools" – "Check Communication" произвести переподключение устройства.
Открытие файла с прошивкой.
Чтобы записать программу МК в его память, необходимо выбрать в меню пункт "File" - "Import Hex".
Затем выбрать в открывшемся окне нужный файл прошивки.
После этого в окне памяти программ (Program Memory) и данных (EEPROM Data) отобразится содержимое .hex файла.
Запись программы в МК.
Теперь можно программировать МК. Для этого жмём кнопку "Write". Процесс записи занимает 3 - 5 секунд.
Об успешном выполнении процедуры записи уведомит надпись "Programming Successful".
Для большей уверенности можно провести процедуру проверки. При нажатии на кнопку "Verify" программа сравнивает данные hex-файла и данные, записанные в МК. Если верификация прошла успешно, то в окне сообщений появится надпись "Verification Successful".
Внимание! Если вы прошиваете микроконтроллеры PIC12F675, PIC12F629 и аналогичные с внутренним тактовым генератором, то при верификации может выскакивать ошибка. Дело в том, что PICkit2 Programmer (версии 6.21) сохраняет калибровочную константу, а затем записывает её в последнюю ячейку памяти МК. Понятно, что исходный файл прошивки и записанные данные в памяти будут отличаться. О калибровочной константе будет рассказано далее.
Быстрые кнопки.
Кнопка "Auto Import Hex + Write Device" понравиться тем, кто хочет "загонять прошивку" в МК нажатием одной кнопки. Один щелчок и программа предложит выбрать файл прошивки, а затем незамедлительно запишет её в МК.
Кнопка "Read Device + Export Hex File" выполняет обратную функцию - производит считывание данных с МК и предлагает сохранить файл прошивки в .hex файл.
Изменение битов конфигурации.
Биты конфигурации задают основные параметры работы МК. Это и тип генератора (кварц, RC-цепь), включение/отключение так называемого "сторожевого таймера", установка защиты от считывания памяти программ и некоторые другие. Как правило, при написании алгоритма работы МК (программы) прописываются значения, которые нужно записать в биты конфигурации. При "прошивке" программная оболочка берёт данные о конфигурации из самого файла прошивки и принудительно указывать эти данные не требуется.
Но, нам, как начинающим не будет лишним знать, как можно просмотреть или изменить конкретные биты конфигурации. Для этого щёлкаем по надписи "Configuration". Откроется окно редактирования битов конфигурации.
Если нужно поменять 0 на 1, то меняем – жмём "Save". Естественно, менять надо осознанно. Повторяю, при использовании готового файла прошивки менять ничего не надо, программа сделает всё автоматически.
Выбор модели микроконтроллера.
Микроконтроллеры бывают разные. Поэтому при программировании МК бывает необходимость указать конкретную модель микроконтроллера. При выборе пункта меню "Device Family" выпадает список семейств микроконтроллеров. Есть среди этого списка и микросхемы памяти EEPROM.
В отличие от микроконтроллеров, микросхемы памяти EEPROM не определяются автоматически по команде "Tools" – "Check Communication". Поэтому при считывании/записи микросхем EEPROM в программе необходимо указать маркировку микросхемы.
В меню выбираем пункт "Device Family" – "EEPROMS" – "24LC".
Далее выбираем конкретную марку микросхемы в выпадающем списке "-Select Part-". Как видим, у нас микросхема 24LC08B (аналоги 24C08, 24WC08L и др.).
Чтобы считать данные с микросхемы EEPROM жмём "Read". Если в памяти записаны данные, то в окне "Program Memory" значения обновятся.
Кнопки "Write" (считать), "Erase" (стереть) выполняют соответствующие функции.
Калибровочная константа.
Как известно, для работы микроконтроллера требуется тактовый генератор. Элементом, который задаёт частоту работы этого генератора, может быть внешний кварцевый резонатор, RC - цепь. Но среди микроконтроллеров PIC есть такие, которые содержат необходимые задающие цепи внутри самой микросхемы. К таким МК относятся, например PIC12F629, PIC12F675.
На заводе в память таких микроконтроллеров записывается специальная константа, которая задаёт параметры встроенного генератора на 4 МГц. Эта калибровочная константа вида 34хх записывается в последнюю ячейку памяти программ по адресу 0x3FF.
При программировании микроконтроллера эту константу легко стереть. И хоть PICkit2 Programmer версии 2.61 автоматически сохраняет эту константу и затем записывает её при программации, не лишним будет записать значение константы OSCCAL.
При необходимости константу легко указать вручную. Для этого в меню выбираем пункт "Tools" – "OSCCAL" – "Set Manually".
В поле "OSCCAL value" указываем ранее записанное значение константы. Жмём кнопку "Set" (установить).
Теперь, когда вы знакомы с основными возможностями PICkit2 Programmer, можно смело начать сборку какого-нибудь устройства на микроконтроллере, например, RGB-светильника на PIC12F629/675.
Главная → Микроконтроллеры → Текущая страница
Также Вам будет интересно узнать:
-
Базовые логические элементы цифровых устройств.