Поиск по этому блогу

2 янв. 2014 г.

Как запрограммировать PIC16

Если мы желаем собрать микроконтроллерное устройство и уже имеем готовый hex-файл прошивки, остается лишь записать эту информацию в память микроконтроллера. На основе личного опыта я расскажу о том, как это сделать. 
picmaniac
    Прежде всего необходим программатор. Существует несколько программаторов, пригодных для работы с PIC. Я выбрал JDM. Почему? Потому что этот программатор не требует дополнительного источника питания и очень прост по конструкции. Подключается к COM-порту. Изготовить его можно буквально за один вечер. Посмотрите на схему:
JDM программатор
    Транзисторы можно установить КТ315 или КТ3102 с любой буквой, диоды - например, КД521, КД522 или аналогичные. Кроме того, желательно дополнительно припаять керамический конденсатор 0,1 мкФ к выводам Vss (5-й) и Vdd (14-й) панельки. Верхний по схеме переключатель добавлен на всякий случай для соединения входа тактового генератора с Vss, а нижний необходим для МК, имеющих режим низковольтного программирования (LVP). Вот вариант печатной платы:

Плата программатора JDM
    А отсюда можно скачать чертеж платы в формате Sprint-Layout.
    При помощи этого программатора можно записывать данные не только в PIC16, но и в PIC12, а также в микросхемы памяти с последовательным интерфейсом. Для работы с 28-выводными контроллерами (PIC16F876) можно просто припаять пятью короткими проводами к плате дополнительную 28-выводную панельку. Даже 20-выводной хватает, если контроллер со смещением вставлять. В моём варианте смонтированная плата закреплена двума винтами М3 на изолирующем основании, а снизу приклеена металлическая пластина. При помощи магнита вся конструкция цепляется сверху на корпус компьютера.
    Такой программатор годится и для внутрисхемного программирования, если припаять к плате короткими проводами соответствующий разъём (см. на втором фото). 

Один из вариантов изготовления

Приспособа для внутрисхемного программирования

    Кроме платы с деталями (аппаратной части), нам потребуется и программа для компьютера, с помощью которой мы сможем управлять процессом обмена данных с микроконтроллером. Я выбрал IC-Prog.
    Почему именно IC-Prog? Он удобен, нормально работает как под 9х, так и под ХР, и поддерживает не только PIC, но также и немало других типов микросхем. О том, как работать с IC-Prog, подробно рассказано в журнале "Радио" №№ 9-11 за 2004 год. Здесь я вкратце расскажу о том, как записать данные в PIC-микроконтроллер.
    Скачать IC-Prog можно с www.ic-prog.com
    Если на компьютере установлена Windows 9x, достаточно одного исполняемого файла icprog.exe. Для работы под Windows XP нужен также драйвер icprog.sys, который должен находиться в одной папке с файлом icprog.exe.
    Сразу после запуска IC-Prog удобно переключить интерфейс на русский язык. Settings -- Options -- Language -- Russian. Далее, нажав F3, выбираем программатор (JDM Programmer), COM-порт, к которому он подключен, а также способ доступа к портам - напрямую, или используя драйвер Windows. Обычно я использую драйвер. При использовании программатора JDM инверсию сигналов нигде устанавливать не нужно. Задержку я обычно выбирал 8...16. Если микроконтроллер не программируется, или программируется неустойчиво, "через раз", то попробуйте задержку увеличить.
Настройки программатора

    При работе в Windows XP включаем соответствующий режим.

Режим работы под ХР

    Затем выбираем тип микроконтроллера, с которым нам предстоит работать.

Выбор микроконтроллера

    И вот наступил торжественный момент, когда мы можем прочитать данные из памяти микроконтроллера! Нажимаем на кнопку "Читать микросхему" Read и - процесс пошел. После завершения чтения содержимое памяти контроллера отображается на экране. Если PIC чистый, там будет 3FFF. После длительного перерыва конденсаторы в JDM разряжаются, и пока они не зарядятся, микроконтроллер может и не перейти в режим программирования. Поэтому желательно произвести чтение несколько раз подряд. Теперь открываем файл прошивки с расширением .hex и смотрим на конфигурацию - совпадают ли биты с указанными в описании устройства? Если нет, то скорее всего hex-файл не содержит слова конфигурации. В настройках можно предусмотреть в этом случае предупреждение.
Предупреждение о конфигурации

    Биты конфигурации, защиты кода и настройки тактового генератора микроконтроллера можно изменять при помощи мыши прямо в IC-Prog. Защиту кода и EEPROM без особой необходимости лучше не включать. Повышенная внимательность полезна при работе с однократно программируемой микросхемой.
    Пришло время записать в микросхему данные. Еще раз проверив, что все биты установлены верно, нажимаем кнопку "Программировать микросхему" Write и наблюдаем за ходом процесса. После программирования производится проверка правильности. Проверку можно производить и в процессе программирования, в настройках есть соответствующий пункт. Если после первой попытки появилось сообщение об ошибке, попробуйте еще раз.
    Вот и всё. Желающие могут более детально разобраться с IC-Prog сами, ничего сложного там нет. На сайте журнала "Радио" выложено переведённое на русский язык руководство.