Site Loader

Прошивка PIC микроконтроллеров с «нуля». / Микроконтроллеры / Блоги по электронике

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность — простота схемы — надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM.Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим — в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:

Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.


Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля

Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe — файл оболочки программатора.
icprog.sys — драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm — файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1.(Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки» >> «Программатор

1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки» >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора

Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP — Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) — общий провод.
2. VDD (VCC) — плюс напряжение питания
3. MCLR’ (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) — двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:

1.Линия MCLR’ развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:

Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства

вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal — представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.

1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя!Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее

3. Нажимаем кнопку «Открыть файл…», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть — это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора

Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке — Microchip — MPASM Suite — MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка .HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!

cxema.org — Прошивка микроконтроллеров PIC

У многих радиолюбителей, захотевших повторить ту или иную конструкцию, напроч отпадает желание и мысли о сборке, когда они видят в составе устройства микроконтроллер. Для них непреодолимой стеной встаёт вопрос прошивки микроконтроллера. Чем, как, что для этого нужно и т.п.? Смотрят на него как на диковенный предмет.

На самом деле, тут нет ничего сложного. Устройства, собранные с применением микроконтроллеров как правило просты, не нуждаются в наладке и подборе элементов. Весь функционал устройства реализован програмно.

Самое широкое распространение среди радиолюбителей получили две линейки микроконтроллеров, PIC и AVR. Для их программирования разработано большое количество программаторов и программ. Для начала необходимо определится, на каком микроконтроллере выполнено устройство и в соответствии с этим выбрать программатор. С PIC микроконтроллерами понятно, у них название начинается именно с этих трёх букв, а AVR серии микроконтроллеры разделены на группы ATtiny, ATmega, ATxmega.

Своё знакомство с микроконтроллерами я начал с линей ки PIC. Для прошивки микроконтроллера, им оказался PIC16F84, я собрал простейший JDM программатор.

JDM programmerJDM programmer

Детали программматора разместил в подходящем корпусе от переходника.

Дальнейшее знакомство с микроконтроллерами заставило меня постоянно вносить изменения, модернизировать программатор под тот или иной микроконтроллер. В один прекрасный момент я решил соблрать универсальный программатор под всю линейку PIC микроконтроллеров.

Multi PIC Programmer 5

Multi PIC Programmer

Очень хороший программатор, программирует всю линейку PIC. Не требует дополнительного питания.

Для прошивки PIC контроллеров я пользуюсь программой IC-Prog. Сам процесс прошивки очень простой:

Запускаем программу

IC-Prog

заходим в настройки и выбираем свой программатор

IC-ProgIC-Prog

Пробуем читать память микроконтроллера.

IC-Prog

Если всё настроено правильно, программа прочитает микроконтроллер и выведет код, прошитый в памяти. Если микроконтроллер никогда не прошивался, Вся память будет заполнена кодом 3FFF и FF в области данных.

Следующий шаг, это открытие HEX файла, предназначенного для прошивки микроконтроллера, после открытия её код отобразится в соответствующих окнах.

IC-ProgIC-Prog

Нажимаем кнопку записи, праграмм спросит, уверены, что хотите программировать, нажимаем утвердительно ДА. Пойдёт процесс программирование.

IC-ProgIC-Prog

После программирования программа автоматически считывает только что зашитый код и сверяет с тем, что программировала. В случае удачной прошивки программа выдаст об этом соответсвующее сообщение.

IC-ProgIC-Prog

Если прошивка прошла со сбоями или область программы защищена от чтения, как в моём случае, программа выдаст сообщение об ошыбке.

IC-Prog

С PIC микроконтроллерами всё понятно. Для AVR микроконтроллеров требуются другие программаторы и программы.

Самый простой — это так называемый «5 проводков». Весь программатор состоит из всего четырёх резисторов.

Программатор AVR 5 проводков

Собрал я его минут за десять, но воспользоваться не смог, ввиду того, что на моём компьютере отсутствует принтерный порт LPT, к которому этот программатор подключается.

Тогда я собрал для самых ходовых у радиолюбителей микроконтроллеров семейства AVR программаторы. Первый для ATMEGA8, второй для ATtiny2313.

Программатор для AVR микроконтроллеров

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

Программатор для ATMEGA8Программатор для ATtiny2313

Номера выводов для подключения линий программатора отображены на рисунке

1431849595.jpg

Собранный программатор позволил мне собрать программатор для AVR, подключаемый к USB порту

Программатор для AVRПлата под различные микроконтроллеры

Удобство применения программатора с USB интерфейсом омрачается поиском драйверов на различные системы, в частности на win7 и 8. Для программаторов, использующих COM-порт таких проблем не возникает. Они прекрасно работают во всей линейке windows, да и в unix системах проблем не возникает. Впрочем unix система очень дружелюбна ко всем программаторам, адаптерам и прочей периферии.

Вот мой весь арсенал для прошивки микроконтроллеров

Программаторы

Небольшой видеообзор, который наглядно покажет весь процесс прошивки микроконтроллера

Прошить PIC-контроллер — это просто

Эта заметка посвещена прошивке микроконтроллеров (МК) марки PIC. Тем радиолюбителям, которые с этим ранее не сталкивались, может показаться, что это очень сложная задача. На самом деле здесь всё просто. Нам понадобится программатор PicKit3, программа для его управления, микроконтроллер и, собственно, сама прошивка — программа в формате hex.

Программатор лучше приобретать с универсальной панелькой (Адаптером), как показано на первых двух фото. Эта связка будет Вам служить долго и может прошивать практически любые PIC-контроллеры и даже внешнюю память. Для этого программатор и адаптер необходимо соединить так, как показано на Фото 1 и Фото 2. Сам контроллер устанавливается в адаптер так, показано на Фото 3. На этом же фото показана установка перемычек J1, J2 и J3 для 14-ти выводных PIC. Установку же перемычек для МК с другим числом выводов можно посмотреть в работе [1]. Эту конструкцию необходимо подключить к компьютеру через USB-разъём, который идёт в комплекте с PicKit3.

Фото 1Фото 2Фото 3
Программу для управления PicKit3 лучше всего брать с официального сайта Microchip — она легко скачивается и устанавливается на компьютер. Её внешний вид изображен на фото слева. Все вышеописанные действия нужно выполнить один раз, после чего в Ваших руках появится довольно мощный комплекс для прошивки МК. Дальнейшие действия нужно выполнять при каждой новой прошивке.

Сначала нужно установить контроллер в адаптер и дать программе самостоятельно определить тип МК. Для этого достаточно выбрать в меню Tools — Check Communication. Впрочем, эту проверку можо каждый раз и не делать — только при включении. Далее, необходимо убедиться, что напряжение прошивки установлено 5В. Этот параметр контролируется в окошке VDD PICkit3 (Target Power) и, как правило, устанавливается автоматически.

Для начала процедуры нужно выбрать файл прошивки: File — Import Hex, после чего нажать кнопку Write на панели программы. Эта команда начнёт запись в наш МК, а после её окончания засветит зелёным цветом окошко над этой кнопкой. Обычно это занимает несколько секунд. Всё — контроллер прошит и готов к работе!

Прошивка PIC — Программаторы микроконтроллеров — Схемы устройств на микроконтроллерах

При программировании не забывайте про константу(osccal), которая записана в последней ячейке данных пика.

Оsccal — представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ…

При покупке микроконтроллера (МК) считайте с него данные и запишите константу на листочек или на микроконтроллер!

Это очень важно т.к. если удалите константу при следующем программировании, pic работать не будет либо будет, но не так как должен.

В МК старшего семейства константы нету, так, что не удивляйтесь.

На рисунке ниже показано место расположения этой константы:

Константа может не пригодится когда используется внешний кварц.

В процессе прошивки (когда нажали уже на кнопку «прошить») может (а может и не спросить) вылезти следущее сообщение (см. рис.ниже ), надо нажимать НЕТ. При использовании Icprog 1.06C (я ее использую) всегда спрашивает, заменить либо нет.

Когда вы загружаете прошивку в программу то в последней ячейке памяти выставляется «3FFF» т.к. в прошивке значение вашей константы не указано (она у каждого МК своя)!

Вот программа и спрашивает будете использовать константу «3FFF» или «3424».

Видео — как прошить PIC от начала до конца!

В микроконтроллерах PIC16F628, PIC16F628A, PIC16F630 константы нету, проверено на практике.

В PIC16F676 константа есть!

Видео о прошивке PIC16F676. В видео продемонстрирован бит защиты, прошивка с ним и без него.

 

При использовании внешнего кварца (или RC) константа ненужна, можно в таких схемах использовать pic в которых была утеряна константа!

Биты конфигурации:


WDT — сторожевой таймер 
PWRT — задержка для стабилизации генератора при вкючении питания 
MCLR — использовать вход внешнего сброса микроконтроллера (reset) 
BODEN — задейств-ть сброс при снижении напр. питания 
CP — защитить код программы от считывания 
CPD — защитить содержимое EEPROM от считывания


  При написании программы для МК, программист, прежде всего, выставляет бит защиты, далее программа (исходник) компилируется (обычно в расширение .HEX) и зашивается в МК, следовательно в отличии от AVR, выставлять биты конфигурации при прошивке pic-ов НЕ НАДО!

В PIC предусмотрен бит защиты:

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

На рисунке ниже показан бит защиты и ошибка которая выскакивает после прошивки:

Если после прошивки, с использованием бита защиты, считать данные с МК то вот, что получится:

Код Защиты

Особенности для модификаций с буквой "А" pic16F84A (статья дописывается)

 

Если утеряна константа, что делать?

Способ первый: пробывать поставить от другого МК константу или наугад , мы знаем, что все константы начинаются на 34 далее две цифры xx которые надо угадать.

Способ второй: порадует владельцев программатора  PICKit 2, появилось приложение для восстановления калибровочной константы для PIC16F630/676, читать тут.

Способ третий:Восстановление OSSCAL для 12F629 & 12F675 (проверенный и простой )

С целью оказания помощи тем, кто потерял константу и хочет ее восстановить, оставляйте в комментариях тип МК и константу.

 

 

Для прошивки можно использовать бесплатную программу, наверное самая популярная — icprog, версия последняя 1,6В.

Скачать icprog106B + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы…)

Настраивается программа индивидуально к каждому программатору в отдельности!

PICPgm

Простое программное обеспечение для прошивки PIC-микроконтроллеров, отличающееся стабильностью, качеством и скоростью программирования.

Приложение PICPgm Development Programmer (или просто PICPgm) имеет простой, дружелюбный графический интерфейс и предназначено для работы с микроконтроллерами семейства PIC. Основное окно пакета состоит из меню, панели инструментов, рабочей части со вкладками и строки состояния. В настоящее время программа поддерживает 660 микросхем, принадлежащих разным сериям: PIC10F, PIC12F, PIC16F, PIC18F, PIC24H, PIC24F, dsPIC30F, dsPIC33F. Пакет способен взаимодействовать с множеством различных программаторов, которые могут быть подключены к компьютеру через USB, принтерный порт или последовательный COM-порт. Выбрать используемый программатор можно в настройках приложения. Среди прочих в списке есть такие популярные программаторы, как PICPgm USB и PICPgm LVISP, JDM, Microchip AN589, Trivial LVP, EPIC Parallel Port, P16PRO40, целая группа Olimex программаторов, а также многие другие.

Программное обеспечение работает с flash-памятью, внутренним EEPROM и конфигурационными битами согласно данным из hex-файла. В PICPgm имеются стандартные для подобного рода программ функции: чтение содержимого микроконтроллера и запись его в hex-файл, очистка памяти чипа, верификация, автоопределение модели программатора и микроконтроллера, проверка объема свободной памяти контроллера. Поддерживаются методики низковольтного и внутрисхемного (ISP) программирования. Кроме того могут быть сконфигурированы выводы программатора.

Каждый hex-файл представлен на рабочем окне вкладками: «Code Mem», «Data Mem», «Config Mem» и «Config Bits», в которых можно найти всю необходимую информацию. В отдельной вкладке ведется запись всех происходящих событий. Для начала работы необходимо подключить программатор и прошиваемое устройство. При запуске софта большинство аппаратных средств (и программаторы, и PIC-микроконтроллеры) распознаются автоматически. Все это можно установить и самостоятельно в окне настроек, выбрав нужные модели из предлагаемых списков. После этого остается указать путь к файлу прошивки формата *.hex и нажать на кнопку «Programm PIC».

Программа PICPgm идеально подходит для начинающих пользователей, желающих заняться программированием с минимальными затратами и усилиями. Среди основных недостатков программного обеспечения стоит отметить тот факт, что все программы, которые будут загружаться в микроконтроллер с помощью PICPgm, должны быть представлены в виде файлов с расширением *.hex. Если исполняемая программа написана на каком-либо другом языке (например, C), то понадобится стороннее программное обеспечение, которое преобразует код. Существуют различные компиляторы, предназначенные специально для программирования различных типов микроконтроллеров PIC: MicroC, MPLAB. Каждый из них создаст нужный hex-файл.

PICPgm был разработан усилиями небольшой группы программистов. Руководителем проекта является Christian Stadler. Первая версия пакета вышла в 2004 году, с тех пор авторы регулярно обновляют программу.

PICPgm Development Programmer полностью бесплатен и свободно распространяется в интернете. Данное программное обеспечение небольшое по размеру, но требует инсталляции. Последняя версия доступна на официальном сайте. Также на сайте представлены электрические схемы программаторов.

Данное приложение написано на английском языке, русификатора к нему нет.

Доступны версии PICPgm для операционных систем Linux, Microsoft Windows (98, ME, 2000, XP, Vista, 7 – 32- и 64-разрядных) и MacOS X (экспериментальная версия). Проблем с совместимостью в ОС Windows Vista и Windows 7 не обнаружено. Версия программы для Windows включают в себя драйвер для доступа к параллельному порту. Кроме того для ОС Windows и Linux существует вариант программы с командной строкой (то есть без графического интерфейса), который имеет те же возможности, но управляется с помощью аргументов командной строки.

Распространение программы: бесплатная.

Официальный сайт PICPgm: http://picpgm.picprojects.net

Скачать PICPgm

Обсуждение программы на форуме

Простой переходник для прошивки PIC18F2550

Каждый электронщик, проектирующий девайсы на контроллерах, рано или поздно сталкивается с вечной проблемой: USB, или не USB? С одной стороны, JDM — вполне себе выход, благо COM-порты в природе все еще встречаются. И на табуретке сидеть можно, лишь бы занозу в зад не вогнать. С другой — хочется немного комфорта, а уж после пары-тройки залоченных пиков (и такое бывает!), тем более. Еще одной проблемой JDM’ов являются помехи. Они не так заметны, когда программатор болтается на двадцатисантиметровом шлейфе, но попробуйте воткнуть его прямо в порт, и получите массу случайных значений в прошивке, любезно предоставленных нам блоком питания и идущим к нему силовым кабелем.

Однако и с USB-программаторами, как известно, все не так просто. Это в меньшей степени касается контроллеров от Atmel, и в куда большей — микрочиповских. Самой животрепещущей темой при сборке очередного Pickit2 становится знаменитая схема: «Чтобы сделать программатор, тебе нужен еще один программатор. Вот так-то, чувак, никаких исключений. Жизнь — боль». Электронщики, вспомнившие, что у них завалялся тот самый JDM, достают его, сияя от гордости, ставят в программатор 18-й камень и… Переходят к созерцанию безысходности:

Дело в том, что у PIC18F2550 несколько иное расположение выводов, вот именно оно-то и не учитывается в 90% самодельных программаторов. Чтобы хоть как-то прошить этот контроллер, в Сети часто рекомендуют собрать программатор типа ART2003. Пять проводков да пара сопротивлений — нет ничего проще. Если бы не одно «но»: LPT-порты по древности и частоте встречаемости стремительно приближаются к экскрементам мамонтов. К тому же, чем новее компьютер, тем меньше шансов вообще что-либо прошить таким программатором — глючит он от слишком быстрого железа. Что же делать? Элементарно! Всего-то нужен примитивный переходник (честно говоря, меня всегда удивляло, почему никто до этого раньше не додумался, а если и додумался, то не сказал). Первым делом лезем в даташит пациента и находим картинку с изображением его выводов:

Теперь открываем даташит самого известного камня от Microchip — PIC16F628A — и сравниваем:

Нас интересуют выводы VPP, VDD, VSS, PGC, PGD, PGM. Они есть как в одном, так и в другом контроллере. Остальное — дело техники. Разводим в SprintLayout’е простенькую платку размером 2.5 на 4 см.

Далее прилагается файл .lay6 с переходниками для PIC18F2550 и PIC18F4550 (последний имеет 40 выводов). Они также подходят и для программирования PIC18F2455 и PIC18F4455. Переносим на текстолит, вытравливаем, припаиваем панельку под 2550, со стороны дорожек делаем штырьки из заблаговременно сохраненных обрезков выводов всяких деталей. Их мы будем использовать вместо выводов «виртуального» PIC16F628A. Вот, что получилось:

Ставим переходник так, будто хотим прошить 628A, подключаем получившийся «бутерброд» к компьютеру, запускаем WinPIC800 и…

Вуаля! Теперь можно прошить заветный 18-й!

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *