Как самостоятельно изготовить USB программатор для PIC микроконтроллеров. Какие компоненты потребуются для сборки. Как прошить и настроить самодельный программатор. Как проверить его работоспособность.
Необходимые компоненты для сборки USB программатора PIC
Для изготовления USB программатора PIC микроконтроллеров своими руками потребуются следующие компоненты:
- Микроконтроллер PIC18F2550 или PIC18F4550
- USB-разъем типа B
- Кварцевый резонатор на 20 МГц
- Стабилизатор напряжения 3.3В (например, LM1117-3.3)
- Конденсаторы, резисторы, светодиоды
- Печатная плата
- Разъем IDC-10 для подключения к программируемому микроконтроллеру
Основой программатора служит микроконтроллер PIC18F2550 или PIC18F4550, который имеет встроенный USB-модуль. Это позволяет реализовать подключение к компьютеру по USB без использования дополнительных микросхем.
Схема и печатная плата программатора
Принципиальная схема USB программатора PIC на основе PIC18F2550 выглядит следующим образом:
Ключевые элементы схемы:
- Микроконтроллер PIC18F2550
- USB-разъем, подключенный к выводам RC4 и RC5 микроконтроллера
- Кварцевый резонатор 20 МГц между выводами OSC1 и OSC2
- Стабилизатор 3.3В для питания USB-модуля микроконтроллера
- Разъем IDC-10 для подключения к программируемому МК
Разводку печатной платы можно выполнить самостоятельно или использовать готовый вариант, доступный в интернете. Важно обеспечить короткие связи между USB-разъемом и микроконтроллером.
Прошивка микроконтроллера программатора
После сборки платы необходимо прошить микроконтроллер PIC18F2550 специальной прошивкой. Для этого можно использовать любой доступный программатор PIC, например:
- Программатор PICkit2 или PICkit3 от Microchip
- Простой LPT-программатор
- Программатор на основе Arduino
Прошивку для микроконтроллера программатора можно скачать с официального сайта Microchip или найти в открытых источниках. После прошивки программатор должен определиться в системе как USB-устройство.
Настройка программатора и установка драйверов
Для работы самодельного USB программатора PIC потребуется установить драйверы и настроить программное обеспечение. Порядок действий следующий:
- Подключите собранный программатор к USB-порту компьютера
- Установите драйверы устройства, если они не установились автоматически
- Скачайте и установите программу для программирования, например, MPLAB IPE
- В настройках программы выберите тип программатора PICkit2 или PICkit3
- Укажите модель программируемого микроконтроллера
После этого программатор должен быть готов к работе. Проверьте подключение, нажав кнопку «Read Device» в программе — должна считаться информация о подключенном микроконтроллере.
Проверка работоспособности программатора
- Считайте идентификатор и конфигурационные биты подключенного микроконтроллера
- Попробуйте стереть память программ микроконтроллера
- Запрограммируйте простую тестовую программу, например, мигание светодиодом
- Проверьте возможность чтения/записи EEPROM памяти
Если все операции выполняются успешно, значит самодельный программатор работает корректно и готов к использованию для разработки проектов на PIC микроконтроллерах.
Преимущества самодельного USB программатора PIC
Изготовление USB программатора для PIC микроконтроллеров своими руками имеет ряд преимуществ:
- Низкая стоимость по сравнению с готовыми решениями
- Возможность доработки и модификации под свои нужды
- Понимание принципов работы программатора
- Отсутствие зависимости от конкретного производителя
- Возможность программирования широкого спектра PIC микроконтроллеров
Самодельный программатор может стать отличным инструментом для обучения и разработки проектов на микроконтроллерах PIC. При этом важно соблюдать меры предосторожности и использовать качественные компоненты для обеспечения надежной работы устройства.
Возможные проблемы при изготовлении программатора
При самостоятельном изготовлении USB программатора для PIC микроконтроллеров могут возникнуть следующие проблемы:
- Некорректное определение устройства в системе
- Ошибки при программировании микроконтроллеров
- Нестабильная работа программатора
- Повреждение программируемых микроконтроллеров
Для минимизации рисков рекомендуется:
- Тщательно проверять схему и качество пайки
- Использовать качественные компоненты от проверенных поставщиков
- Начинать с программирования недорогих микроконтроллеров
- Внимательно следовать инструкциям по настройке программного обеспечения
- При возникновении проблем обращаться за помощью на профильные форумы
При правильном подходе самодельный USB программатор PIC может стать надежным инструментом для разработки микроконтроллерных проектов.
Программатор для pic контроллеров своими руками в Комсомольске-на-Амуре: 96-товаров: бесплатная доставка, скидка-55% [перейти]
Партнерская программаПомощь
Комсомольск-на-Амуре
Каталог
Каталог Товаров
Одежда и обувь
Одежда и обувь
Стройматериалы
Стройматериалы
Текстиль и кожа
Текстиль и кожа
Здоровье и красота
Здоровье и красота
Детские товары
Детские товары
Продукты и напитки
Продукты и напитки
Электротехника
Электротехника
Дом и сад
Дом и сад
Сельское хозяйство
Сельское хозяйство
Промышленность
Промышленность
Мебель и интерьер
Мебель и интерьер
Все категории
ВходИзбранное
Программатор для pic контроллеров своими руками
regmarkets.ru/listpreview/images3/6c/07/6c07b40cc44335b06dd8960237e0281b.jpg»>1 242
1380
PICkit3 PIC KIT3 отладчик программатор эмулятор PIC контроллер адаптер универсальный программатор сиденье
ПОДРОБНЕЕЕще цены и похожие товары
Радио КИТ Модуль RC221M. GTP-USB-Lite программатор PIC—контроллеров Тип: программатор, Тип
ПОДРОБНЕЕЕще цены и похожие товары
1 576
1752
PICkit3 PIC KIT3 отладчик программатор эмулятор PIC контроллер макетная плата diy Электроника Тип:
ПОДРОБНЕЕЕще цены и похожие товары
DIY Модуль RC036. PICKIT 2 W. USB Программатор PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
ПОДРОБНЕЕЕще цены и похожие товары
regmarkets.ru/listpreview/images3/ea/80/ea80e3accbfcb539104a7cc4acb835e0.jpg»>3 829
6382
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
3 485
4840
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
jpg»>3 704
5145
Программатор TL866II Plus USB EEPROM с флэш-BIOS, автомобильный драйвер NAND Burn + SPI для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
jpg»>Программатор PICKIT3.5 + PIC ICD2 Универсальный Тип: программатор
ПОДРОБНЕЕЕще цены и похожие товары
5 015
6777
Программатор TL866II Plus USB EEPROM с флэш-BIOS для автомобиля NAND программатор + 17X аксессуары для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
4 893
8896
Программатор TL866II Plus USB EEPROM с флэш-BIOS для автомобиля NAND программатор + 17X аксессуары для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
3 531
5349
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
regmarkets.ru/listpreview/images3/58/14/5814d47113412788585759512c8ddafd.jpg»>3 444
5065
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
3 545
5291
Программатор TL866II Plus USB EEPROM с флэш-BIOS, автомобильный драйвер NAND Burn + SPI для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
811
901
Программатор PIC K150 ICSP, автоматическое программирование по USB, разработка микроконтроллера + USB-кабель ICSP для чипа DIP 8pin-40pin
ПОДРОБНЕЕЕще цены и похожие товары
3 661
5384
Программатор TL866II Plus USB EEPROM с флэш-BIOS, автомобильный драйвер NAND Burn + SPI для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
regmarkets.ru/listpreview/images3/d3/fd/d3fd46b4200a5be8cbfcbf4063f8f2c7.jpg»>3 425
4757
Программатор TL866II Plus USB EEPROM с флэш-BIOS, автомобильный драйвер NAND Burn + SPI для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
1 385
2199
Программатор PIC KIT3 ICSP, программатор USB для загрузки, разработка программирования для разработки, поддержка PIC16 PIC18 PIC24-DSPIC Series
ПОДРОБНЕЕЕще цены и похожие товары
Программатор XGecu TL866II PLUS для SPI Flash NAND модель EPROM MCU PIC AVR + 10 адаптеров Тип:
ПОДРОБНЕЕЕще цены и похожие товары
jpg»>3 633
4909
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
3 475
5696
Программатор TL866II Plus USB EEPROM с флэш-BIOS, автомобильный драйвер NAND Burn + SPI для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
ru/listpreview/images3/58/84/5884ba01c15699e8aef703cccb55e91e.jpg»>4 844
7229
Программатор TL866II Plus USB EEPROM с флэш-BIOS для автомобиля NAND программатор + 17X аксессуары для ATMEL AVR ATMEGA AT90 PIC GAL SRAM
ПОДРОБНЕЕЕще цены и похожие товары
3 485
4840
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
3 633
4844
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
3 131
4892
Программатор V11. 9 TL866II Plus универсальный, мини Pro программатор TL866 nand flash AVR PIC Bios, USB-программатор с 28 адаптерами
ПОДРОБНЕЕЕще цены и похожие товары
Программатор PICKIT3 PIC KIT3 PICKIT 3, программирование в автономном режиме, микроконтроллер PIC, чип, Монополия
ПОДРОБНЕЕЕще цены и похожие товары
PIC KIT2/3/3.5 программатор/эмулятор/загрузчик/программатор kit3.5 + PICKITICD2 Тип: программатор
ПОДРОБНЕЕЕще цены и похожие товары
Программатор BIOS TL866II Plus Universal EEPROM, USB универсальный автомобильный NAND Burn для ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS
ПОДРОБНЕЕЕще цены и похожие товары
2 страница из 5
Программатор своими руками.
Программатор для PIC своими руками :: SYL.ruПрограмматор для PIC или про то как мне захотелось самодельных электронных часов
Старым стал наверное, стал испытывать проблемы, при попытке разглядеть, сколько там времени на дисплее ресивера за тюлевой занавеской. Хотелось что либо сколхозить. А так как на столе, уже около года, валялись пара сегментных дисплейчика, была выбрана схема на PIC (простейшая, с возможностью регулировки хода) А для программирования PIC требовался как раз программатор Чтоб узнать что из этого получилось, добро пожаловать под кат В выбранной мной схеме часы собирались на основе PIC16F628A В списке поддерживаемых программатором микроконтроллеров — был указан и мой Это и повлияло на выбор Список поддерживаемых микроконтроллеров
10 Серия: PIC10F200 * PIC10F202 * PIC10F204 * PIC10F206 * PIC10F220 * PIC10F222 * 12C серии: PIC12C508 PIC12C508A PIC12C509 PIC12C509A PIC12C671 PIC12C672 PIC12CE518 PIC12CE519 PIC12CE673 PIC12CE674 12F серии: PIC12F509 PIC12F629 PIC12F635 PIC12F675 PIC12F683 16C серии: PIC16C505 PIC16C554 PIC16C558 PIC16C61 PIC16C62 PIC16C62A PIC16C62B PIC16C63 PIC16C63A PIC 16C64 PIC16C64A PIC16C65 PIC16C65A PIC16C65B PIC16C66 PIC16C66A PIC16C67 PIC16C620 PIC16C620A PIC16C621 PIC16C621A PIC16C622 PIC16C622A PIC16C71 PIC16C71A PIC16C72 PIC16C72A PIC16C73 PIC16C73A PIC16C73B PIC16C74 PIC16C74A PIC16C74B PIC16C76 PIC16C77 PIC16C710 PIC16C711 PIC16C712 PIC16C716 PIC16C745 PIC16C765 PIC16C773 PIC16C774 PIC16C83 PIC16C84 16F серии: PIC16F505 PIC16F506 PIC16F54 PIC16F57 * PIC16F59 * PIC16F627 PIC16LF627A PIC16F627A PIC16F628 PIC16LF628A PIC16F628A PIC16F630 PIC16F631 PIC16F631-1 PIC16F636 PIC16F636-1 PIC16F639 * PIC16F639-1 * PIC16F648A PIC16F676 PIC16F677 PIC16F677-1 PIC16F684 PIC16F685 * PIC16F685-1 * PIC16F687 * PIC16F687 *-1 PIC16F688 PIC16F689 * PIC16F689-1 * PIC16F690 * PIC16F690-1 * PIC16F72 PIC16F73 PIC16F74 PIC16F76 PIC16F77 PIC16F737 PIC16F747 PIC16F767 PIC16F777 PIC16F83 PIC16F84 PIC16F84A PIC16F87 PIC16F88 PIC16F818 PIC16F819 PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F873A PIC16LF873A PIC16F874 PIC16F874A PIC16F876 PIC16F876A PIC16F877 PIC16F877A 18 Серия: PIC18F242 PIC18F248 PIC18F252 PIC18F258 PIC18F442 PIC18F448 PIC18F452 PIC18F458 PIC18F1220 PIC18F1320 PIC18F2220 PIC18F2320 PIC18F2321 PIC18F4210 PIC18F2331 PIC18F2450 PIC18F2455 PIC18F2480 PIC18F2510 PIC18F2515 PIC18F2520 PIC18F2550 PIC18F2580 PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320 PIC18F6525 PIC18F6621 PIC18F8525 PIC18F8621 PIC18F2331 PIC18F2431 PIC18F4331 PIC18F4431 PIC18F2455 PIC18F2550 PIC18F4455 PIC18F4580 PIC18F2580 PIC18F2420 PIC18F2520 PIC18F2620 PIC18F6520 PIC18F6620 PIC18F6720 PIC18F6585 PIC18F6680 PIC18F8585 PIC18F8680
Заказ был сделан 19. 08.2016, а уже 15.09.2016 был у меня Фотографии упаковки не сохранилось, но комплектация соответствовала фото продавца, всё упаковано в отдельные пакетики, пакетики в общем большем пакете, а тот в свою очередь в почтовый жёлтый пакет с пупыркой
Внешний вид платы программатора — спаяно аккуратно, но плата не отмыта от слова СОВСЕМ
Но, плата оказалась вполне рабочей Для работы с ним потребуется программа и драйвера, скачать их можно например тут Программа интуитивно понятная, выбираем микроконтроллер, указываем путь к файлу прошивки, прошиваем Как установить микроконтроллер в разъёме программатора — программа подскажет Мой необходимо было установить первой ногой во второй контакт Обычно я жму считать чип, чтоб убедиться, что программа видит микроконтроллер, потом заливаю прошивку
В общем-то программатор вполне работоспособный и прошить мой PIC мне удалось Фузы я не выставлял — заводские, по умолчанию, — вполне прокатили
Короче, плата программатора грязная, элементы впаяны нормально, комплектация точно как указана продавцом и представлена на его странице на картинках, упаковано нормально, доставлено относительно оперативно Минус за грязь Скорее всего рекомендую к покупке, чем нет
Теперь о том для чего я всё это затеял
Самодельные часы
Проект взят отсюда Схема:
Там-же описание, прошивка, рисунок платы
Попытка найти подходящий корпус привела к товарищу, у которого завалялся корпус, в виде домика Под него была нарисована односторонняя плата
И получились часики:
В качестве питания — зарядка от мобилки Часы показывают попеременно время и температуру, уличный датчик — не задействовал Так-же были изготовлены ещё одни маленькие под самодельный корпус:
плата
Конструкция — простейшая, минимум деталей, запускаются без каких либо танцев с бубном Но, если честно, мне они не понравились, т. к. с этой прошивкой они работают только если не вносить коррекции времени Как только вносишь коррекцию — часы виснут, и помогает только передёргивание питания По этому захотелось чего ни будь большего Так что ПРОДОЛЖЕНИЕ СЛЕДУЕТ…
USBasp программатор AVR микроконтроллеров делаем сами
В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов. + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.
То что нужно! Делаем )))
Процесс изготовления
1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов
2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )
3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).
4. Процесс травления уже позади. Плата промыта и просушена.
5. Стираем растворителем тонер — получаем готовые дорожки для будущего устройства
6. Далее слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)
7. Получилась компактная плата, пока еще без элементов.
8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)
9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро )))
10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…
11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов. Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.
12. А вот и корпус, куда будет помещен программатор. Очень полезная штука )
13. Устройство благополучно внедрено в “шкурку сплиттера”. Компактно вышло.
14. Размер платы по сравнению с 5 рубленными “монетками”
16. Конечный итог…
Доработанная печатная плата USBasp программатора:
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора: Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием “usbasp.atmega8.2007-10-23.hex” из архива в конце статьи…
Подключаем к программатору адаптер для программирования микроконтроллеров.
Данные для самостоятельного изготовления можно взять здесь…
Печатная плата адаптера в формате lay для Sprintlayout
При подключении USB будет постоянно светиться зеленый (красный) светодиод
Установка драйвера для USBasp
1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и “попросит” установить двайвер.
2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.
3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.
4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device
. Радуемся, и тестируем )
Проверка работоспособности программатора
1. В качестве програмки использовал avrdude
в оболочке
Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочку
USBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .
Необходимые данные для повторения устройства находятся в этом архиве:
Прошивка, программа, печатка, драйвер
Всем удачи!
Автор: Садовой А.В.
Материал взят с журнала РАДИО 2007, №10
Ну вот и настало то время, когда и мне пришлось взяться за изучение МК. К этому подвинула статья Автоматическое ЗУ на Atmega16A Тут и без всякого раздумья стало понятно, что нужно срочно собирать программатор. Листая журнал РАДИО, нашел приемлемую схему для себя. Ниже приводится описание с журнала.
Предлагаемый программатор работает под управлением программы PonyProg [1], распространяемой бесплатно. Если ограничиться программированием МК PIC и микросхем памяти, можно воспользоваться также программами IC-Prog и WinPic800, распространяемыми на тех же условиях. Программирование 18-выводных МК PIC и 20-выводных AVR производится без каких-либо коммутаций. Достаточно установить МК в предназначенную для него панель и выбрать его тип в меню используемой программы. От установки панелей для всех МК этих семейств автор сознательно отказался, так как в любительской практике они используются редко. При необходимости нужные панели можно установить дополнительно или подключать требующиеся для программирования выводы МК к предусмотренному в программаторе разъему. Этот же разъем используется при внутрисхемном программировании. Кроме МК, устройство позволяет программировать микросхемы памяти с последовательным интерфейсом, имеющиеся в меню используемых программ. Для подобных программ с интерфейсом I2C в программаторе предусмотрена панель. До начала процесса программирования и по его завершении напряжение питания программируемой микросхемы отключено, что дает возможность безопасно установить микросхему в панель, а затем извлечь ее. Прежде чем рассматривать работу программатора подробно, вспомним некоторые особенности программирования МК семейств PIC и AVR. Номера упоминаемых далее выводов МК различных можно найти в технической документации. Чтобы перевести в режим программирования МК семейств PIC, требуется подать на его вывод MCLR напряжение +12…14 В. Обмен информацией с устройством, управляющим программированием, происходит через двунаправленный вывод DATA. Синхронизирующие импульсы обмен импульсы поступают на вывод CLOCK. МК семейства AVR повышенного напряжения не требуют. Они переходят в режим программирования при низком логическом уровне на выводе RESET. При этом необходимо, чтобы к соответствующим выводам МК был подключен кварцевый резонатор. Информация принимается через вывод MOSI, а передается через вывод MISO. Вход синхронизирующих импульсов – вывод SCK. Схема программатора изображена на рис. 1. Ее наиболее существенное отличие от прототипа [1] заключается в использовании для связи с COM-портом компьютера микросхемы МАХ232СРЕ (DA2) – специализированного преобразователя уровней RS232 – ТТЛ. Это позволило выполнить все требования по уровням передаваемых сигналов и нагрузочной способности линий порта и значительно улучшило надежность работы устройства.
Чтобы излишне не нагружать COM-порт, предусмотрено питание программатора и программируемой микросхемы только от внешнего источника. Его постоянное напряжение (15 В) или переменное (10…12 В) напряжение поступает в программатор через диодный мост VD1, служащий выпрямителем переменного напряжения или приводящий постоянное к правильной полярности. Интегральный стабилизатор DA1 питает напряжением 5 В преобразователь уровней DA2. Светодиод HL1 сигнализирует о включении питания. Стабилизатор DA3 на 12 В – управляемый. Он включен при высоком логическом уровне напряжения на управляющем входе 4 и выключен при низком уровне. Это свойство использовано для управления напряжением, переводящим МК семейства PIC в режим программирования, и напряжением питания программируемой микросхемы, которое получают из 12 В с помощью интегрального стабилизатора DA4. О включенном питании программируемой микросхемы сигнализирует светодиод HL2. Очень важен правильный выбор емкости конденсатора С7 на выходе стабилизатора DA3. При слишком большом значении напряжение, переводящее МК семейства PIC в режим программирования, после включения стабилизатора будет нарастать недостаточно быстро, что приведет к сбою. Устанавливать конденсатор С7 слишком маленькой емкости или вовсе отказаться от него нельзя – это приведет к самовозбуждению стабилизатора и сделает программирование невозможным. Диод VD2 ограничивает до безопасного значения отрицательное напряжение, которое может поступить на управляющий вход стабилизатора DA3 с контакта 3 разъема XS1 (линии TXD COM-порта). Узел на транзисторе VT2 формирует сигнала RESET для МК семейства AVR. Узел на транзисторах VT1 и VT3 разделяет имеющуюся в МК семейства PIC двунаправленную линию DATA на две однонаправленных для компьютера. Под названиями MOSI и MISO эти же однонаправленные линии используются при программировании МК семейства AVR. Для аналогичного преобразования в [1] был применен логический инвертор на одном транзисторе. Однако его практическое использование выявило довольно большое число сбоев, причина которых, по мнению автора, — недостаточная задержка информационного сигнала на линии DATA относительно синхронизирующего на линии CLOCK. Добавление второго инвертора увеличило задержку и устранило сбои, однако «лишнюю» инверсию приходится компенсировать соответствующей настройкой управляющей программы, о чем будет сказано далее. Используя для управления программированием программу PonyProg, следует выбрать в соответствующем ее окне программатор «SI Prog I/O» и задать инверсию сигналов в соответствии с табл. 1. Программа WinPic при работе в ОС windows XP позволяет программировать только МК семейства PIC и микросхем памяти. Однако в ОС Windows 98 МК этой программой не программируются. С программой IC-Prog ситуация обратная. При настройке обеих программ должен быть выбран программатор “JDM Programmer”. Инверсию сигналов задают в соответствии с табл. 2. (для WinPic) и табл. 3. (для IC-Prog).
Наличие нескольких во многом равноценных управляющих программ дает возможность пользоваться программатором даже при возникновении проблем в работе с одной из них. Например, МК, отсутствующий в списке доступных одной программе, может быть найден в списке другой. Так случилось при попытке запрограммировать МК PIC16F628A. В списке программы PonyProg имеется лишь PIC16F628 на экране монитора появляется сообщение «Неизвестный тип микроконтроллера». Даже если проигнорировать это сообщение, попытки не только запрограммировать, но и просто прочитать содержимое памяти МК положительного результата не дают. Однако в списках программ WinPic800 и IC-Prog нужный МК есть, его программирование с помощью этих программ выполняется без замечаний.
ЛИТЕРАТУРА
1. Lanconelly C. PonyProg – serial device programmer 2. Gijzen B. IC-Prog Prototype Programmer 3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible
Все ясно и понятно как «божий день», остается за малым, а может быть не малым, воплотить все дела паяльником. Далее привожу фото-обзор как я создавал программатор:
Разметил размер будущей платы, использую так называемые «макетные платы» , как то еще не приспособился к печатным платам, поэтому пользуюсь макетками.
При сборке предыдущей статьи Светодинамическое устройство «LED-подарок девушке» как то подумал «а что если покрасить плату в черный цвет?» смотрится креативненько))) плату покрасил и в этот раз.
Вот и собрал. В отличии от оргинала, не стал впаивать панельки под МК, а впаял разъем в виде «штырьков» без понятия как они называются правильно))) Разъем для подключения адаптера с переменкой 15 В использовал от модема TP-Link и выключатель питания от него же. Диодный мост взял КЦ407.
Подписал разъем
Настало время проверить. Установил прогу PonyProg, запустил ее, появилось окно в котором требуется «…произвести калибровку». Жмем «Yes»
«Калибровка завершена»
«Настройка платы программатора» находится в верхнем меню «Установка». Жмем «Проверка» если все нормально, то появится окошко «Тест Ок»
Теперь можно записывать или считывать прошивку с МК или микросхем памяти. Как раз на работу принесли усилок фирмы BBK вот понадобилось проверить микруху памяти 24С02. Подключил микруху к соответствующим выводам на разъеме, подключил программатор к COM-порту компа, включил питание, считал/записал прошивку вот и все. Так же проверил микруху 24С04 все работает. МК PIC и AVR еще не проверял, но т.к. нужно потихоньку собирать ЗУ на Atmega16A скоро будем «шить» )))
Внутрисхемный USB-программатор-отладчик PICkit2
28 ноября 2007
Для начала освоения и практического применения микроконтроллеров разработчику необходим доступный инструментарий. Компания Microchip Technology Inc. выпускает недорогой программатор начального уровня PICkit2, схема и программное обеспечение в исходных кодах которого выложены на сайте www.microchip.com/pickit2. Рассмотрим особенности и возможности этого USB-программатора.
Программатор PICkit2 соединяется с компьютером по широко распространенному интерфейсу USB (программатор построен на базе контроллера PIC18F2550 USB 2.0). Через USB-порт так же осуществляется обновление прошивки программатора, т.е. при необходимости PICkit2 может обновить свое программное обеспечение без применения дополнительных программаторов. Использование интерфейса USB позволило программатору отказаться от дополнительного источника питания и получать питание непосредственно от USB-порта компьютера. PICkit2 имеет простую схемотехнику, что позволяет уместить его в небольшом брелке (см. рис. 1).
Рис. 1. Внешний вид программатора PICkit2
Программатор PICkit2 служит для внутрисхемного программирования большинства Flash микроконтроллеров Microchip и с появлением новых микроконтроллеров список поддерживаемых устройств постоянно расширяется. Типовая схема подключения приведена на рис. 2.
Вывод | Назначение |
1 | Vpp/MCLR -напряжение программирования, сигнал сброса |
2 | Vdd — напряжение питания для программируемой схемы |
3 | Vss — «земляной» вывод |
4 | ICSPDAT/PGD — сигнал данных |
5 | ICSPCLK/PGC — сигнал тактирования |
6 | AUX — вспомогательный вывод, как правило не используется |
Рис. 2. Типовая схема внутрисхемного программирования
Программатор PICkit2 работает под управлением своей собственной оболочки или под управлением среды разработки MPLAB IDE. При работе программатора под управлением оболочки «PICkit2 Programmer» (рис. 3) PICkit2 позволяет выполнять все стандартные операции: стирать, программировать и проверять память программ и EEPROM, устанавливать защиту кода, редактировать содержимое Flash и EEPROM. Помимо этих стандартных функций, программатор PICkit2 позволяет осуществлять ряд дополнительных и интересных действий.
Рис. 3. Программа «RICkit2 Programmer»
Программатор PICkit2 является внутрисхемным программатором, т.е. подключается к плате или разрабатываемому устройству, в котором установлен микроконтроллер. Поэтому такое устройство может иметь свой источник питания или получать питание извне. Для устройств с внешним питанием PICkit2 может формировать напряжение питания в диапазоне напряжений от 2,5 до 5 В с шагом 0,1 В. Это полезная особенность, т.к. вы можете отлаживать различные устройства, не отсоединяя программатора, а питание устройства будет осуществляться от самого программатора.
Внимание! USB-порт компьютера может выдавать ток до 100 мА. Если подключенное к PICkit2 устройство потребляет больший ток, то USB-порт автоматически выключится. Если вам нужно получить ток больше 100 мА, то используйте внешний источник питания.
Как правило, напряжение шины USB составляет 5 В. Однако для некоторых компьютеров и ноутбуков напряжение может отличаться. Для приложений требующих высокую точность, программатор PICkit2 имеет возможность калибровать напряжение, выдаваемое во внешнюю схему.
Для устройств с внешним сбросом оболочка программатора позволяет управлять сигналом сброса микроконтроллера.
В меню «Tools» появилась возможность включить опцию «Use VPP First Program Entry», это может понадобиться для контроллеров, конфигурация которых и настройка портов не позволяет войти в режим программирования (например, для контроллеров PIC12F675 с включенным внутренним сбросом и портами, подключенными к PGD и PGC, настроенными на выход). Попробуйте включить эту опцию, если программатор выдает ошибку проверки конфигурации («Verification of configuration failed»).
Некоторые микроконтроллеры PIC12F и PIC16F имеют внутренний RC-генератор, калибровочная константа для которого определена на заводе-изготовителе и хранится по последнему адресу в памяти программ микроконтроллера. Как правило, «правильные» программаторы при программировании таких микроконтроллеров сначала считывают калибровочную константу, затем стирают микроконтроллер, а затем программируют его пользовательской программой с запомненной константой. Если по каким-либо причинам константа утеряна, то PICkit2 (версии ПО 1.хх) поможет восстановить калибровку генератора. Для этого в микроконтроллер записывается специальная программа, которая генерирует на выводе микроконтроллера меандр, программатор PICkit2 измеряет частоту и рассчитывает калибровочную константу, которая затем может быть записана в микроконтроллер.
Рис. 4. Окно «UART Communication Tool» программы «PICkit 2 Programmer»
Если ваше устройство должно общаться с другими устройствами по UART, то вы можете использовать PICkit2 как средство отладки последовательных протоколов. UART Communication Tool (см. рис. 4) позволяет задавать скорость до 38400 бод, и так же позволяет:
- Получать отладочную информацию из микроконтроллера;
- Вести лог данных, получаемых от микроконтроллера, в текстовом файле;
- Разрабатывать и отлаживать последовательную передачу по интерфейсу UART;
- Посылать команды микроконтроллеру на этапе отладки.
Для того чтобы использовать UART Communication Tool, нужно соединить выводы микроконтроллера UART и программатора PICkit2 согласно табл. 1.
Таблица 1. Соединение выводов UART-микроконтроллера и программатора PICkit2
Выводы программатора PICkit2 | Выводы микроконтроллера UART |
(1) VPP | — |
(2) Vdd | Напряжение питания |
(3) GND | GND |
(4) PGD | TX UART — логический уровень |
(5) PGC | RX UART — логический уровень |
(6) AUX | — |
В версии оболочки 2.40 появилась возможность программирования микросхем последовательной памяти с интерфейсом I2C и SPI (24LCxxх, 25LCхxx и 93LCхxx) и ключей KeeLOQ.
Работа под средой разработки MPLAB IDE.
Обычно разработчики, работающие с PIC-контроллерами, используют в качестве среды разработки MPLAB IDE, так как MPLAB IDE — это мощный бесплатный инструментарий разработки и отладки программ для PIC-микроконтроллеров. MPLAB IDE включает в себя редактор, программный симулятор, позволяет подключать Си-компиляторы различных производителей, работает совместно с программаторами и эмуляторами Microchip. Среда разработки MPLAB IDE (см. рис. 5) также поддерживает программатор PICkit2 и выполняет те же стандартные функции, что и под оболочкой PICkit2: можно записывать и считывать отдельно память программ и EEPROM, стирать память микроконтроллера и проверять ее на чистоту. Однако список поддерживаемых микроконтроллеров не такой обширный, но зато появляется возможность внутрисхемной отладки некоторых популярных микроконтроллеров.
Рис. 5. Окно среды разработки MPLAB IDE, использование программатора PICkit 2 в качестве внутрисхемного отладчика
Для внутрисхемной отладки используются те же самые выводы микроконтроллера, что и для программирования, поэтому никаких переделок в схеме не нужно*. Для включения режима отладки нужно в меню Debugger ® Select Tool выбрать PICkit2.
После соединения с отлаживаемым микроконтроллером можно устанавливать точки останова, выполнять программу по шагам, наблюдать за изменением переменных в окне Watch (см. рис. 6).
Рис. 6. Окно среды разработки MPLAB IDE, отслеживание изменения переменных
Варианты поставок PICkit2
Компания Microchip Technology Inc. поставляет программатор PICkit2 в разных комплектациях (см. табл. 2).
Таблица 2. Комплектация PICkit2
Код заказа | Описание |
PG164120 | программатор PICkit2 |
DV164120 | программатор PICkit2 + демонстрационная плата с PIC16F690 |
DV164121 | PICkit2 Debug Express (программатор PICkit2 + демонстрационная плата с PIC16F887) |
Комплект DV164120, помимо программатора, содержит демонстрационную плату с установленным контроллером PIC16F690 и, за счет совместимости по выводам, позволяет работать с любыми PIC-контроллерами в корпусах DIP-8, DIP-14 и DIP-20 (см. рис. 7).
Рис. 7. Совместимость по выводам контроллеров в 8-, 14- и 20-выводных корпусах
Программатор-отладчик PICkit2 является весьма мощным и универсальным отладочным средством для микроконтроллеров Microchip, но в то же время имеет доступную цену и даже, при желании, может быть легко повторен по документации, предоставляемой Microchip. Программатор PICkit2 активно поддерживается двумя платформами: оболочкой PICkit2 и средой разработки MPLAB IDE, причем с каждым апгрейдом добавляются все новые и новые функции, а способность программатора обновлять свое ПО дает возможность произвести обновление меньше чем за минуту. Помимо функций программирования микроконтроллеров и микросхем памяти, PICkit2 может использоваться как отладочное средство, а именно — как внутрисхемный отладчик или как отладчик протоколов UART, и, надеемся, в следующих обновлениях Microchip порадует нас новыми функциями!
* — Для внутрисхемной отладки желательно иметь новую версию PICkit2 с красной кнопкой. Если у вас предыдущая версия PICkit2, то для обновления нужно слегка модифицировать схему, или добавить подтягивающие резисторы к GND на линии PGD и PGC в схеме, так как PICkit2 изначально планировался только как программатор. Инструкцию по обновлению PICkit2 можно скачать с сайта www.gamma.spb.ru.
Получение технической информации, заказ образцов, поставка — e-mail
•••
Наши информационные каналы
Программатор микроконтроллеров PIC
В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе и микроконтроллеров PIC фирмы MicroChip. Это позволило получить достаточно функциональные устройства, несмотря на их простоту. Но работа микроконтроллера невозможна без программы управления, которую необходимо записать. В данной статье мы рассмотрим универсальный программатор EXTRA-PIC позволяющий программировать PIC контроллеры и память EEPROM I2C. Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D:
PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*
Примечание: микроконтроллеры, которые отмечены звездочкой (*) необходимо подключить к программатору через ICSP разъем.
Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.
Непосредственно сама схема программатора EXTRA-PIC:
Рисунок печатной платы в формате Sprint LayoutА теперь инструкция как запрограммировать микроконтроллер.
В виде примера возьмем микроконтроллер PIC16F876A.
Соберите программатор и подготовьте блок питания с напряжением на выходе не менее 15В
Распакуйте программу в отдельный каталог. В созданном каталоге должны находиться три файла:
icprog.exe – файл оболочки программатора;
icprog.sys – драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;
icprog.chm – файл помощи (Help file).
Настройка программы IC-PROG v1.05D.
Для Windows95, 98, ME | Для Windows NT, 2000, XP |
(Только для Windows XP ): Правой кнопкой щёлкните на файле icprog. exe. «Свойства » >> вкладка «Совместимость » >> Установите «галочку» на «Запустить программу в режиме совместимости с: » >> выберите «Windows 2000 «. | |
| |
«Настройки » >> «Программатор«. Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok «. | |
Далее, «Настройки » >> «Опции » >> выберите вкладку «Общие » >> установите «галочку» на пункте «Вкл. NT/2000/XP драйвер » >> Нажмите «Ok » >> если драйвер до этого не был установлен в системе, в появившемся окне «Confirm » нажмите «Ok «. Драйвер установится, и оболочка программатора перезапустится. | |
Примечание: Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода «. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы. | |
«Настройки » >> «Опции » >> выберите вкладку «I2C» >> установите «галочки» на пунктах:«Включить MCLR как VCC » и «Включить запись блоками «. Нажмите «Ok «. | |
Программа готова к работе. |
Установите микросхему в панель программатора, соблюдая положение ключа.
Подключите шнур удлинителя, включите питание.
Запустите программу IC-PROG.
В выпадающем списке выберите контроллер PIC16F876A.
Если у вас нет файла с прошивкой – подготовьте его:
откройте стандартную программу «Блокнот»;
вставьте в документ текст прошивки;
сохраните под любым именем, например, prohivka.txt (расширение *.txt или *.hex).
Далее в IC-PROG Файл >> Открыть файл (! не путать с Открыть файл данных ) >> найти наш файл с прошивкой (если у нас файл с расширением *.txt , то в типе файлов выберите Any File *.* ). Окошко «Программного кода» должно заполнится информацией.
Нажимаем кнопку «Программировать микросхему» (загорается красный светодиод).
Ожидаем завершения программирования (около 30 сек.).
Для контроля нажимаем «Сравнить микросхему с буфером».
ПРОГРАММАТОР EXTRA PIC
Для программирования микроконтроллеров серии pic, есть немало различных радиосхем. А недавно нашёл схему ещё одного программатора EXTRAPIC и сразу же им заинтересовался. В ней всё очень просто и грамотно. На входе стоит MAX 232 преобразующая сигналыпоследовательного порта RS-232 в сигналы, пригодные для использования в цифровыхсхемах с уровнями ТТЛ или КМОП ,не перегружает по току COM-порт компьютера, так как использует стандартэксплуатации не представляет опасности для COM-порта. Этот девайс работает с любыми COM-портами, как стандартными (+/-12v; +/-10v) так и снестандартными COM-портами некоторых моделей современных ноутбуков, имеющихпониженные напряжения сигнальных линий, вплоть до +/-5v!Поддерживается распространёнными программами IC-PROG, PonyProg , WinPic 800
Списокподдерживаемых микросхем, при использовании с программой IC-PROG v1.05D:
Контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A,PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674,PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63,PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71,PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76,PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83,PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621,PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625,PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*,PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745,PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*,PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873,PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877,PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258,PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320,PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*
Примечание: микроконтроллеры, помеченные звездочкой (*) подключаются кпрограмматору только через разъем ICSP.
Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02,24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256,AT24C512.
Схема программатора
На стороне программатора используется разъем DB9 типа «гнездо»(«мама», «дырки»). Очень часто ошибаются и ставят «вилку»(«папу», «штырьки»), т.е. такое же как и на сторонеПК!
Расположениевыводов ICSP у PIC-контроллеров
Материал только для общей справки. Обязательно убедитесь, что указанноерасположение выводов соответствует выбранному вами микроконтроллеру. Для этого,обратитесь к Data Sheets и Programming Specifications на соответствующиймикроконтроллер (обычно всё совпадает). Вывод PGM рекомендуется «притягивать» к общему проводу (GND), черезрезистор, номиналом 1К.
Микроконтроллеры с 14-контактным корпусом вставляется частью ножек всоответствующую 8-контактную панель.
Рисунок печатной платы:
Работа с программатором
Сперва устанавливаем программу IC—prog. Скачайте и распакуйте программу вотдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe — файл оболочкипрограмматора.
icprog.sys — драйвер,необходимый для работы под Windows NT, 2000, XP. Этот файл всегда долженнаходиться в каталоге программы.
icprog.chm — файл помощи (Help file).
Установили,теперь надо ее настроить. Дляэтого:
- (Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>
выберите «Windows 2000«. - Запустите файл icprog. exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok«.
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok«). Оболочка программатора перезапустится.
Настройки» >> «Программатор
- Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok«.
- Далее, «Настройки» >> «Опции» >> выберите вкладку «Общие» >> установите «галочку» на пункте «Вкл. NT/2000/XP драйвер» >> Нажмите «Ok» >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне «Confirm» нажмите «Ok» . Драйвер установится, и оболочка программатора перезапустится.
- Примечание:
Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода«. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы. - «Настройки» >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками«. Нажмите «Ok«.
- «Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании«. Нажмите «Ok«.
Теперь надо протестироватьпрограмматор в месте с IC—prog. Далее, в программе IC-PROG, в меню,запустите: Настройки >> Тест Программатора
Перед выполнением каждого пункта методикитестирвания, не забывайте устанавливать все «поля» в исходноеположение (все «галки» сняты), как показано на рисунке выше.
- Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
- При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
- При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).
- Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигналне проходит, следует тщательно проверить весь путь прохождения этого сигнала,включая кабель соединения с COM-портом компьютера.
Тестированиеканала данных программатора EXTRAPIC:
- 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
- 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
- 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
- 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
- 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
- 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, топрограмматор готов к эксплуатации.
DRB9F, разъём COM-порта («female»,»мама»), (1шт).
Разъём питания, диаметр внутр. штыря 2,1мм. (1шт).
SCL-40, панель DIP40. (1 шт).
SCS-28, панель DIP28, узкая. (1шт).
SCS-18, панель DIP18. (1шт).
SCS-08, панель DIP8. (1шт).
78L05, стабилизатор +5v, корпус ТО-92. (2шт).
78L12, стабилизатор +12v, корпус TO-92. (1шт).
MAX232, ST232, SP232, ADM232, или аналог. (1шт).
КР1533ЛА3,КР15xxЛА3, 74xx00, или аналог. (1шт).
1N4007, диод. (1шт).
1N4148, диод. (2шт).
АЛ307 или GNL-5013, светодиод зелёного цвета. (1шт).
АЛ307 или GNL-5013, светодиод красного цвета. (1шт).
КТ502Е, транзистор p-n-p, корпус TO-92. (1шт).
КТ3102, транзистор n-p-n, корпус TO-92. (1шт).
220,0x25v, электролитический / Оксидный конденсатор. (1шт).
10,0x16v, электролитический / Оксидный конденсатор. (4шт).
0,1 мкФ, керамический дисковый конденсатор. (2шт).
1k0, Резистор. (Цвета: «коричн.,чёрн.,красн.,золот.»). (6шт).
4k7, Резистор. (Цвета: «жёлт.,фиол.,красн.,золот.»). (2шт).
При написании статьи использовался данный источник. Печатную плату для EXTRA PIC и другие файлы, полезные при повторении схемы и прошивки скачайте в архиве. Схему собрал и испытал: -igRoman-
Originally posted 2019-01-20 19:11:45. Republished by Blog Post Promoter
Простой программатор в народе jdm. Простейший программатор JDM для PIC на пассивных компонентах. Описание процесса программирования микросхем
Программатор JDM я использовал для контроллеров PIC16F676, PIC16F630 и PIC16F629 . От изначального, мой вариант отличается тем, что напряжение программирования Vpp можно подать раньше напряжения питания Vdd для перепрограммирования контроллеров. Для этой цели служит верхний по схеме транзистор. Он открывается когда напряжение на контакте 3 розетки DB9F достигнет примерно 8 В относительно контакта 5 розетки или 13 В относительно минуса контроллера Vss . Выключатель Vdd_Vpp в замкнутом состоянии позволяет напряжению питания Vdd появиться на выводах контроллера ранее напряжения программирования Vpp .
Схема программатора JDM
Для программирования будет использоваться COM-порт, у которого будут задействованы следующие выводы — 3, 4, 5, 7 и 8. В схеме заложена возможность программирования микросхем памяти серии 24сХХ . Для этого в колодке DIP16 используются нижние 8 контактов, первый контакт микросхемы вставляется в пятый конакт колодки. Джампер J1 позволяет отключить защиту от записи.
Нижний по схеме транзистор как и ранее используется для сдвига напряжений так как плюс питания контроллера Vdd соединяется с контактом 5 розетки — общим проводом порта, а минус питания Vss получается с помощью диодов, подключенных к контактам 3 и 7 розетки, и стабилитрона.
Транзисторы в JDM программаторе использовал 2SC945 и BC548 , диоды — 1N4148 . Конденсатор u1 надо расположить как можно ближе к выводам питания микроконтроллера. Резистор 1k необязателен, если установлены резистор 10k и джампер J1 на колодке DIP16.
Этот программатор успешно работает с программами и
Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com.
В схеме данного программатора используется преобразователь логических уровней max232.
Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя.
Так и сделал. Взял микросхему Ch440G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось.
В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно).
После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе — ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же — всё шьёт, но очень медленно.
Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (Ch440 — 0.3-0.5$ , к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков — это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами.
Вот фото готового девайса:
Как поётся в песне «я его слепила из того, что было». Набор деталей самый разнообразный: и smd, и DIP.
Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | Микросхема | Ch440G | 1 | В блокнот | ||
IC2 | Микросхема | К1533ЛА3 | 1 | В блокнот | ||
VR1 | Линейный регулятор | LM7812 | 1 | В блокнот | ||
VR2 | Линейный регулятор | LM7805 | 1 | В блокнот | ||
VT1 | Биполярный транзистор | КТ502Е | 1 | В блокнот | ||
VT2 | Биполярный транзистор | КТ3102Е | 1 | В блокнот | ||
VD1-VD3 | Выпрямительный диод | 1N4148 | 2 | В блокнот | ||
C1, C2, C5-C7 | Конденсатор | 100 нФ | 5 | В блокнот | ||
C3, C4 | Конденсатор | 22 пФ | 2 | В блокнот | ||
HL1-HL4 | Светодиод | Любой | 4 | В блокнот | ||
R1, R3, R4 | Резистор | 1 кОм | 3 |
Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа — «прошивка», а также программатор.
И если с первым пунктом нет проблем — готовую «прошивку» обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.
Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).
Основная часть.
Панель установки МК.
Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является «облегчённой» копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.
Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор — это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).
Необходимые изменения.
В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.
Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.
Также добавлен «подтягивающий» резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.
Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.
Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.
В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.
В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось «допиливать» программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.
Ядром устройства является микроконтроллер PIC18F2550-I/SP .
Это единственная микросхема в устройстве. МК PIC18F2550 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.
Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.
Название | Обозначение | Номинал/Параметры | Марка или тип элемента |
Для основной части программатора | |||
Микроконтроллер | DD1 | 8-ми битный микроконтроллер | PIC18F2550-I/SP |
Биполярные транзисторы | VT1, VT2, VT3 | КТ3102 | |
VT4 | КТ361 | ||
Диод | VD1 | КД522, 1N4148 | |
Диод Шоттки | VD2 | 1N5817 | |
Светодиоды | HL1, HL2 | любой на 3 вольта, красного и зелёного цвета свечения | |
Резисторы | R1, R2 | 300 Ом | |
R3 | 22 кОм | ||
R4 | 1 кОм | ||
R5, R6, R12 | 10 кОм | ||
R7, R8, R14 | 100 Ом | ||
R9, R10, R15, R16 | 4,7 кОм | ||
R11 | 2,7 кОм | ||
R13 | 100 кОм | ||
Конденсаторы | C2 | 0,1 мк | К10-17 (керамические), импортные аналоги |
C3 | 0,47 мк | ||
Электролитические конденсаторы | C1 | 100 мкф * 6,3 в | К50-6, импортные аналоги |
C4 | 47 мкф * 16 в | ||
Катушка индуктивности (дроссель) | L1 | 680 мкГн | унифицированный типа EC24, CECL или самодельный |
Кварцевый резонатор | ZQ1 | 20 МГц | |
USB-розетка | XS1 | типа USB-BF | |
Перемычка | XT1 | любая типа «джампер» | |
Для панели установки микроконтроллеров (МК) | |||
ZIF-панель | XS1 | любая 40-ка контактная ZIF-панель | |
Резисторы | R1 | 2 кОм | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R2, R3, R4, R5, R6 | 10 кОм |
Теперь немного о деталях и их назначении.
Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.
Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа «B» (квадратная). В компьютере же используется USB-розетка типа «А». Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.
В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 — 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.
Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.
Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 — это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.
При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.
Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force — с нулевым усилием установки).
Благодаря ей можно «зашить» МК практически в любом корпусе DIP.
На схеме «Панель установки микроконтроллера (МК)» указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.
Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).
А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).
Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).
Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .
Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или «карандашным» методом .
Вот рисунок позиционирования элементов на печатной плате (кликабельно).
При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).
«Прошивка» микроконтроллера PIC18F2550.
Файл «прошивки» — PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .
Залить «прошивку» в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).
Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex — «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .
Ну, а если разрешить проблему «курицы и яйца» не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .
Обновление «прошивки» программатора.
Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться — чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить «прошивку».
Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню «Tools» — «Download PICkit 2 Operation System» открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.
После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню «Help» — «About» в программе PICkit2 Programmer.
Это всё по техническим моментам. А теперь о софте.
Работа с программатором. Программа PICkit2 Programmer.
Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы — PICkit2 Programmer. Рекомендую.
После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод («питание»), а операционная система опознает устройство как «PICkit2 Microcontroller Programmer» и установит драйвера.
Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.
Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции «Что делать?» на английском.
Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.
Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .
Необходимые файлы:
Развитие электроники идёт стремительными темпами, и всё чаще главным элементом того или иного устройства является микроконтроллер. Он выполняет основную работу и освобождает проектировщика от необходимости создания изощрённых схемных решений, тем самым уменьшая размер печатной платы до минимального. Как всем известно, микроконтроллером управляет программа, записанная в его внутреннюю память. И если опытный программист-электронщик не испытывает проблем с использованием микроконтроллеров в своих устройствах, то для начинающего радиолюбителя попытка записать программу в контроллер (особенно PIC) может обернуться большим разочарованием, а иногда и небольшим пиротехническим шоу в виде дымящей микросхемы.
Как ни странно, но при всём величии сети Интернет в нём очень мало информации о прошивке PIC-контроллеров , а тот материал что удаётся найти — очень сомнительного качества. Конечно, можно купить заводской программатор за неадекватную цену и шить сколько душе угодно, но что делать, если человек не занимается серийным производством. Для этих целей можно собрать несложную и не дорогую в реализации самоделку , именуемую JDM-программатором по приведенной ниже схеме (рисунок №1):
Рисунок №1 — схема программатора
Сразу привожу перечень элементов для тех, кому лень всматриваться в схему:
- R1 — 10 кОм
- R2 — 10 кОм (подстроченный). Регулировкой сопротивления данного резистора нужно добиться около 13В на выводе №4 (VPP) во время программирования. В моём случае сопротивление составляет 1,2 кОм
- R3 — 200 Ом
- R4, R5 — 1,5 кОм
- VD1, VD2, VD3, VD4, VD6 — 1N4148
- VD5 — 1N4733A (Напряжение стабилизации 5,1В)
- VD7 — 1N4743A (Напряжение стабилизации 13В)
- C1 — 100 нФ (0,1 мкФ)
- C2 — 470 мкФ х 16 В (электролитический)
- SUB-D9F — разъём СОМ-порта (МАМА или РОЗЕТКА)
- Панелька DIP8 — зависит от используемого вами контроллера
В схеме использован пример подключения таких распространённых контроллеров, как PIC12F675 и PIC12F629 , но это совсем не значит, что прошивка других серий PIC будет невозможна. Чтобы записать программу в контроллер другого типа, достаточно перекинуть провода программатора в соответствии с рисунком №2, который приведён ниже.
Рисунок №2 — варианты корпусов PIC-контроллеров с необходимыми выводами
Как можно догадаться, в схеме моего программатора использован корпус DIP8 . При большом желании можно изготовить универсальный переходник под каждый тип микросхемы, получив тем самым универсальный программатор. Но так как с PIC-контроллерами работаю редко, для меня хватит и этого.
Хоть сама схема довольно проста и не вызовет трудностей в сборке, но она тоже требует уважения. Поэтому неплохо было бы сделать под неё печатную плату. После некоторых манипуляций с программой SprintLayout , текстолитом, дрелью и утюгом, на свет родилась вот такая заготовка (фото №3).
Фото №3 — печатная плата программатора
Скачать исходник печатной платы для программы SprintLayout можно по этой ссылке:
(скачиваний: 680)
При желании его можно изменить под свой тип PIC-контроллера. Для тех, кто решил оставить плату без изменений, выкладываю вид со стороны деталей для облегчения монтажа (рисунок №4).
Рисунок №4 — плата с монтажной стороны
Ещё немного колдовства с паяльником и мы имеем готовое устройство, способное прошить PIC-контроллер через COM-порт вашего компьютера. Ещё тёпленький и не отмытый от флюса результат моих стараний показан на фото №5.
Фото №5 — программатор в сборе
С этого момента, первый этап на пути к прошивке PIC-контроллера , подошёл к концу. Второй этап будет включать в себя подключение программатора к компьютеру и работу с программой IC-Prog .
К сожалению, не все современные компьютеры и ноутбуки способны работать с данным программатором ввиду банального отсутствия на них COM-портов , а те что установлены на ноутбуках не выдают необходимые для программирования 12В . Так что я решил обратится к своему первому ПК , который давным-давно пылился и ждал своего звёздного часа (и таки дождался).
Итак включаем компьютер и первым делом устанавливаем программу IC-Prog . Скачать её можно с сайта автора или по этой ссылке:
(скачиваний: 778)
Подключаем программатор к COM-порту и запускаем только что установленное приложение. Для корректной работы необходимо выполнить ряд манипуляций. Изначально необходимо выбрать тот тип контроллера, который собираемся шить. У меня это PIC12F675 . На скриншоте №6 поле для выбора контроллера выделено красным цветом.
Скриншот №6 — выбор типа микроконтроллера
Скриншот №7 — настройка метода записи контроллера
В этом же окне переходим во вкладку «Программирование » и выбираем пункт «Проверка при программировании «. Проверка после программирования может вызвать ошибку, так как в некоторых случаях самой прошивкой устанавливаются фьюзы блокировки считывания СР . Чтобы не морочить себе голову данную проверку лучше отключить. Короче следуем скриншоту №8.
Скриншот №8 — настройка верификации
Продолжаем работу с этим окном и переходим на вкладку «Общие «. Здесь необходимо задать приоритет работы программы и обязательно задействовать NT/2000/XP драйвер (скриншот №9). В некоторых случаях программа может предложить установку данного драйвера и потребуется перезапуск IC-Prog .
Скриншот №9 — общие настройки
Итак, с этим окном работа окончена. Теперь перейдём к настройкам самого программатора. Выбираем в меню «Настройки»->»Настройки программатора » или просто нажимаем клавишу F3 . Появляется следующее окно, показанное на скриншоте №10.
Скриншот №10 — окно настроек программатора
Первым делом выбираем тип программатора — JDM Programmer . Далее выставляем радиокнопку использования драйвера Windows . Следующий шаг подразумевает выбор COM-порта , к которому подключен ваш программатор. Если он один, вопросов вообще нет, а если более одного — посмотрите в диспетчере устройств, какой на данным момент используется. Ползунок задержки ввода/вывода предназначен для регулирования скорости записи и чтения. Это может понадобится на быстрых компьютерах и при возникновении проблем с прошивкой — этот параметр необходимо увеличить. В моём случае он остался по умолчанию равным 10 и всё нормально отработало.
На этом настройка программы IC-Prog окончена и можно переходить к процессу самой прошивки, но для начала считаем данные с микроконтроллера и посмотрим что в него записано. Для этого на панели инструментов нажимаем на значок микросхемы с зелёной стрелкой, как показано на скриншоте №11.
Скриншот №11 — процесс чтения информации с микроконтроллера
Если микроконтроллер новый и до этого не прошивался, то все ячейки его памяти будут заполнены значениями 3FFF , кроме самой последней. В ней будет содержаться значение калибровочной константы. Это очень важное и уникальное для каждого контроллера значение. От него зависит точность тактирования, которая путём подбора и установки этой самой константы закладывается заводом изготовителем. На скриншоте №12 показана та ячейка памяти, в которой будет храниться константа при чтении контроллера.
Скриншот №12 — значение калибровочной константы
Повторюсь, что значение уникальное для каждой микросхемы и не обязательно должно совпадать с тем, что на рисунке. Многие по неопытности затирают эту константу и в последствии PIC-контроллер начинает некорректно работать, если в проекте используется тактирование от внутреннего генератора. Советую записать эту константу и наклеить надпись с её значением прямо на контроллер. Таким образом вы избежите множество неприятностей в будущем. Итак, значение записано — двигаемся дальше. Открываем файл прошивки, имеющий как правило расширение .hex . Теперь вместо надписей 3FFF , буфер программирования содержит код нашей программы (скриншот №13).
Скриншот №13 — прошивка, загруженная в буфер программирования
Выше я писал, что многие затирают калибровочную константу по неосторожности. Когда же это происходит? Это случается в момент открытия файла прошивки. Значение константы автоматически меняется на 3FFF и если начать процесс программирования, то назад дороги уже нет. На скриншоте №14 выделена та ячейка памяти где ранее была константа 3450 (до открытия hex-файла ).
Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.
Программа — программатор ProgCode v 1.0
Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1.
В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).
Рисунок (скриншот программы ProgCode v1.0)
Если в программу загружается HEX файл, то желательно перед этим выбрать в списке контроллеров тот МК, для которого расчитана загружаемая прошивка. Если этого не сделать, то файл, расчитанный на микроконтроллер с памятью большего размера чем выбран в списке, будет обрезан и части программы потеряна — при таком варианте загрузки файла выводится предупреждение.
Если этого не произошло, то выбрать нужный контроллер можно и после загрузки файла в программу.
Формат файлов SFR
В программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение. SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.
Настройки порта и протокола при подключении программатора
После установки программы — по умолчанию выставлены все настройки, которые необходимы для работы программатора со схемой JDM, приведённой на этой странице.
Инверсия сигнала в приведённой схеме нужна только для выхода OutData, так как в этой цепи сигнал инвертирован согласующим транзистором. На всех остальных выводах инверсия отключена.
Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.
Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.
В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.
Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств
Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»
Рисунок — Настройка COM порта для работы с JDM программатором
После этого перезагружаем компьютер.
Обозреватель локальных проектов
Кроме непосредственно программирования контроллеров в программе реализован удобный обозреватель проектов на МК, находящихся как на локальных папках компьютера, так и в интернете. Сделано это для удобства работы. Нередко нужные проекты лежат в разных папках, и приходится тратить время на то, чтобы добраться до нужной дирректории, чтобы просмотреть проект. Здесь нужные папки легко добавить в список папок и просматривать любой проект двумя-тремя кликами мышки.
Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.
Рисунок (скриншот обозревателя программы ProgCode v1.0)
Вот так выглядит окно с настройками ассоциаций файлов:
Обозреватель проектов в интернете
Обозреватель проектов в интернете так-же как и локальный обозрватель проектов позволяет быстро перейти на нужный сайт в интернете парой кликов, просмотреть проект и при необходимости сразу прошить программу в МК.
При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:
Описание процесса программирования микросхем
Большинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.
Рассмотрим запись информации во флэш память микроконтроллера PIC 16 F 628 A
Есть 2 линии DATA и CLOCK , по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.
Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA
) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK
).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC
16.
Вот список и значение команд, которые PIC
способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд
«LoadConfiguration » 000000 — Загрузка конфигурации
«LoadDataForDataMemory
» — 000011 — Загрузка данных в память данных(EEPROM
)
«IncrementAddress
» 000110 — Увеличение адреса PC
МК
«ReadDataFromProgramMemory
» 000100 — Чтение данных из памяти программ
«ReadDataFromDataMemory
» 000101 — Чтение данных из памяти данных(EEPROM
)
«BeginProgrammingOnlyCycle
» 011000 — Начать цикл программирования
«BulkEraseProgramMemory
» 001001 — Полное стирание памяти программ
«BulkEraseDataMemory
» 001011 — Полное стирание памяти данных(EEPROM
)
Реагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR
контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC
сконфигурирован на работу от внутреннего RC
генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR
позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды
«LoadDataForProgramMemory » 000010 — Загрузка данных в память программ
необходимо отправить в контроллер сами данные — 16 бит,
которые выглядят так:
“0xxxxxxxxxxxxxx 0”.
Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC
16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC
ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда
«BeginEraseProgrammingCycle» 001000 — Начать цикл программирования
Получив её, контроллер отключается от внешнего мира на 6 миллисекунд, которые нужны ему, чтобы завершить процесс записи.
Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.
Схема JDM программатора
Очень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)
Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.
Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.
Поключение выходов программатора к конкретному МК зависит от типа МК. Часто на плату программатора монтируют несколько панелек, которые расчитаны на определённый тип контроллеров.
В таблице приведено назначение ножек некоторых типов МК при программировании.
Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.
Назначение выводов для микроконтроллеров серии PIC16Fxxx в зависимости от типа корпуса в большинстве случаев является стандартным, но если возникает сомнения на этот счёт, то надёжнее всего свериться с даташитом на конкретный экземпляр МК. Часть документации присутствует на русском сайте
http://microchip.ru Полное же собрание даташитов и другой документации находится на сайте производителя PIC микроконтроллеров:
http://microchip.com
Индекс проектов
Программа позволяет напрямую выходить на страницу индекса, парой кликов просматривать описание нужного проекта и сразу-же прошивать программу в контроллер.
При необходимости прошить контроллер выбранной прошивкой — кликаем мышкой на файл формата SFR, к примеру Timer_a.sfr
Программа загружает файл с сервера в новую вкладку.
После этого остаётся только вставить МК в панельку программатора, если это ещё не сделано, и нажать на кнопку «Записать всё».
Программа записывается в МК. После этого контроллер вставляется в плату устройства и устройство готово к работе.
Программатор pic в Украине. Цены на программатор pic на Prom.ua
USB программатор K150 ICSP для PIC-контроллеров DL
Уточняйте дату доставки
979.44 грн
489.72 грн
Купить
Интернет-магазин Delery
USB программатор K150 ICSP для PIC-контроллеров SP
Уточняйте дату доставки
1 007. 42 грн
503.71 грн
Купить
Shoppes
USB программатор K150 ICSP для PIC-контроллеров DS
Уточняйте дату доставки
916.48 грн
458.24 грн
Купить
USB программатор K150 ICSP для PIC-контроллеров CT
Уточняйте дату доставки
937.46 грн
468.73 грн
Купить
Интернет-магазин Carty
Программатор Pic контроллеров
Отправка в течение 1 дня
420 грн
Купить
Doctor Smarts
USB программатор K150 ICSP для PIC-контроллеров, 102815
Отправка в течение 1 дня
385 грн
Купить
Интернет магазин » Горячий Стиль «
Ровно
PICkit2 USB Программатор PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
Отправка в течение 1 дня
732 грн
Купить
IT Electronics
Полтава
PICkit3.5 USB Программатор PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
Отправка в течение 1 дня
804. 50 грн
Купить
IT Electronics
Полтава
PICkit2 USB Программатор PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
Отправка в течение 1 дня
по 775.2 грн
от 2 продавцов
775.20 грн
Купить
IT Electronics
Полтава
Программатор PIC K150 USB
Отправка в течение 2 дней
381 грн
Купить
Ником радио-маркет
Чернигов
USB программатор K150 ICSP для PIC-контроллеров
Отправка в течение 1 дня
385 — 540 грн
от 11 продавцов
385 грн
Купить
PROMRV
Ровно
Программатор PIC контроллеров K150 ICSP
Уточняйте дату доставки
366.70 грн
Купить
Radio Store
Днепр
Програматор PIC K150 з кабелем
Уточняйте дату доставки
451 грн
Купить
Інтернет-магазин «Мікроампер»
USB программатор K150 ICSP для PIC-контроллеров
Отправка в течение 1 дня
385 — 419 грн
от 9 продавцов
778 грн
389 грн
Купить
GoodStore | Подарки, Товары для дома и работы
RT809F Программатор EPROM FLASH VGA ISP AVR GAL PIC
Отправка в течение 1 дня
3 230. 10 грн
Купить
IT Electronics
Полтава
Смотрите также
PIC K150 ICSP USB программатор
Отправка в течение 1 дня
402.80 грн
Купить
IT Electronics
Полтава
Программатор USB PIC K150 SCM
Отправка в течение 1 дня
480 грн
Купить
Landis
Киев
PICKIT2 PICKIT3 адаптер программатора PIC K150
Уточняйте дату доставки
102 грн
Купить
aikonss
USB программатор K150 ICSP для PIC-контроллеров
Отправка в течение 1 дня
385 — 679 грн
от 2 продавцов
385 грн
Купить
Магазин «Freedelivery»
Ровно
USB программатор K150 ICSP для PIC-контроллеров
Уточняйте дату доставки
по 385 грн
от 4 продавцов
385 грн
Купить
freedelivery
Программатор PICKIT3 PIC EEPROM и KeeLOQ
Уточняйте дату доставки
999 грн
Купить
ФОП Носуль С. А.
Программатор USB PIC SP200S SP200SE Programmer For ATMEL MICROCHIP SST ST WINBOND
Уточняйте дату доставки
375 грн
Купить
ФОП Носуль С. А.
PICPRO USB программатор K150 ICSP для PIC микроконтроллеров
Отправка в течение 1 дня
по 355 грн
от 2 продавцов
355 грн
Купить
Sxemki.com
Кропивницкий
RT809F Программатор EPROM FLASH VGA ISP AVR GAL PIC
Отправка в течение 1 дня
3 230.10 грн
Купить
Интернет магазин «E-To4Ka»
Полтава
Программатор USB PIC K150 ICSP
Уточняйте дату доставки
389.99 грн
Купить
Интернет-магазин «Налетай»
Полтава
USB Программатор PICkit2 PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
Заканчивается
736 грн
Купить
Интернет-магазин «Налетай»
Полтава
USB Программатор PICkit2 PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ
Уточняйте дату доставки
775. 20 грн
Купить
Интернет-магазин «Налетай»
Полтава
USB программатор K150 ICSP для PIC-контроллеров
Уточняйте дату доставки
366 грн
Купить
Интернет-магазин «Дрібниці»
USB программатор K150 ICSP для PIC-контроллеров 2000-02552
Отправка в течение 1 дня
385 грн
Купить
ПОЛЕЗНЫЕ МЕЛОЧИ
Ровно
Usb программатор pic своими руками Собираем программатор для микроконтроллеров pic и микросхем eeprom
Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – «прошивка», а также программатор. И если с первым пунктом нет проблем – готовую «прошивку» обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.
Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).
Основная часть.
Панель установки МК.
Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является «облегчённой» копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite, что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.
Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).
В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.
Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.
Также добавлен «подтягивающий» резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.
Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора. Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать при ремонте, например, телевизоров. В связи с этим мне и пришлось «допиливать» программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.
Ядром устройства является микроконтроллер PIC18F2550-I/SP.
Это единственная микросхема в устройстве. МК PIC18F2550 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.
Список деталей для сборки программатора.
Название | Обозначение | Номинал/Параметры | Марка или тип элемента |
Для основной части программатора | |||
Микроконтроллер | DD1 | 8-ми битный микроконтроллер | PIC18F2550-I/SP |
Биполярные транзисторы | VT1, VT2, VT3 |
| КТ3102 |
VT4 |
| КТ361 | |
Диод | VD1 |
| КД522, 1N4148 |
Диод Шоттки | VD2 |
| 1N5817 |
Светодиоды | HL1, HL2 |
| любой на 3 вольта, красного изелёного цвета свечения |
Резисторы | R1, R2 | 300 Ом | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R3 | 22 кОм | ||
R4 | 1 кОм | ||
R5, R6, R12 | 10 кОм | ||
R7, R8, R14 | 100 Ом | ||
R9, R10, R15, R16 | 4,7 кОм | ||
R11 | 2,7 кОм | ||
R13 | 100 кОм | ||
Конденсаторы | C2 | 0,1 мк | К10-17 (керамические), импортные аналоги |
C3 | 0,47 мк | ||
Электролитические конденсаторы | C1 | 100 мкф * 6,3 в | К50-6, импортные аналоги |
C4 | 47 мкф * 16 в | ||
Катушка индуктивности(дроссель) | L1 | 680 мкГн | унифицированный типа EC24, CECL или самодельный |
Кварцевый резонатор | ZQ1 | 20 МГц |
|
USB-розетка | XS1 |
| типа USB-BF |
Перемычка | XT1 |
| любая типа «джампер» |
Для панели установки микроконтроллеров (МК) | |||
ZIF-панель | XS1 |
| любая 40-ка контактная ZIF-панель |
Резисторы | R1 | 2 кОм | МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги |
R2, R3, R4, R5, R6 | 10 кОм |
Теперь немного о деталях и их назначении.
Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.
Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа «B» (квадратная). В компьютере же используется USB-розетка типа «А». Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.
В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.
Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.
Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 – это диод Шоттки. Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.
При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.
Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).
Благодаря ей можно «зашить» МК практически в любом корпусе DIP.
На схеме «Панель установки микроконтроллера (МК)» указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.
Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).
А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).
Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).
Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. ПечИзготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат, с помощью цапонлака (так делал я) или «карандашным» методом.атать рисунок платы необходимо в зеркальном отображении.
Вот рисунок позиционирования элементов на печатной плате (кликабельно).
При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).
Портативные программаторы PIC
Kanda теперь поставляет три разных автономных программатора PIC для портативных устройств. и производственное программирование.
- Ручной программатор PIC: Надежный, управление одной кнопкой, 256 КБ, удержание одной программы
- 8-позиционный ручной программатор PIC: Сохраняет 8 программ, выбор поворотным переключателем, одна программная кнопка
- Портативный программатор PIC: Сохраняет 32 программы, клавиатуру и ЖК-дисплей для выбора
Ручной программатор PIC
Функции портативного устройства
Автономный портативный программатор PIC является старшим братом портативного программатора PIC с брелоком PIC. Он имеет такую же простую в использовании операцию с одной кнопкой, но он достаточно надежен, чтобы подайте на цель напряжение 3,3 В или 5 В. Так что лучше для низковольтных целей и программ быстрее, чем программатор брелоков. Он имеет ряд особенностей, которые делают его идеально подходит для использования в полевых и производственных условиях.
- Управление одной кнопкой
- Питание от батареи 9В PP3
- Разъем для блока питания 9 В (цилиндр 2,1 мм, центр плюс)
- Поддерживает семейства PIC16F и PIC18F, включая детали PIC18F J
- Обеспечивает целевое напряжение 3,3 В или 5 В, с 9 В или 12,5 В VPP для программирования высокого напряжения
- Режимы программирования низкого и высокого напряжения
- Время быстрого программирования
Стартовый комплект
Вам понадобится один начальный комплект ручного программатора PIC для загрузки ручных программаторов с ПК. Как только это загружен, ручной программатор PIC полностью автономен и может использоваться в полевых условиях или в производстве без ПК или питания.
- Win 2000/XP/VISTA/Win7 (32- и 64-разрядная версии)
- Интерфейс USB-порта — доступен параллельно
- Код, данные и конфигурация загружены из HEX-файла
- Поддерживает устройства PIC16F и PIC18F, включая микроконтроллеры J и K
- Управление одной кнопкой, самый простой программатор PIC на рынке
8-позиционный ручной программатор PIC
Базовый портативный программатор PIC хорош своей простотой, но вы ограничены одна программа, поэтому мы представили 8-полосную версию.
Он имеет такое же простое управление одной кнопкой для целевого программирования, но имеет 8-позиционный поворотный переключатель для выбора до 8 различных программ.
Функции 8-позиционного ручного программатора PIC
- Выбор простой программы с помощью поворотного переключателя
- Каждый программный слот может иметь другой файл, микроконтроллер PIC, байты конфигурации и данные
- Каждый программный слот имеет размер до 256 КБ
- То же действие одной кнопки для цели программирования
- Программное обеспечение ПК считывает программатор и отображает список программ, включая 30-символьное описание, имя файла и микроконтроллер PIC
- Необходимо программировать только необходимые программные слоты
- Интерфейс USB для загрузки программатора с ПК
Стартовый комплект
Вам понадобится один начальный комплект ручного программатора PIC для загрузки ручных программаторов с ПК. Как только это загружен, портативный программатор PIC можно использовать в полевых условиях или на производстве без ПК или электропитания.
- Win 2000/XP/VISTA/Win7/Win8 (32- и 64-разрядная версии)
- Интерфейс USB-порта — доступен параллельно
- Код, данные и конфигурация загружены из HEX-файла
- Поддерживает устройства PIC16F и PIC18F, включая микроконтроллеры J и K
Функции автономного программатора
Автономный портативный программатор PIC является самым сложным из всей линейки, но мы постарались для поддержания той же философии , простой в использовании . Клавиатура для выбора программ очень простой, с выбором программы по номеру или прокруткой с помощью клавиш со стрелками. Однажды программа выбран, просто нажмите кнопку программы.
- Клавиатура и ЖК-дисплей
- Сохраняет до 32 программ по 256 КБ каждая
- Включает аккумулятор и зарядное устройство
- Включает интерфейс USB для ПК и программное обеспечение для загрузки
- Win 2000/XP/VISTA/Win7,8,10 32- и 64-битные
- Программирование низкого и высокого напряжения
- Код, данные и конфигурация загружены из HEX-файла
- Поддерживает устройства PIC16F и PIC18F, включая микроконтроллеры J и K
Сравнение портативных и портативных программаторов PIC
Портативный | 8-канальный ручной | Портативный | |
Интерфейс ПК | USB | USB | USB |
Память | 256 КБ | 8 x 256 КБ | 32 x 256 КБ |
Мощность | 9В ПП3 | 9В ПП3 | Аккумулятор 9 В |
Целевая мощность | Да | Да | Да |
Разъем питания | Да | Да | Да |
Генератор VPP | Встроенный | Встроенный | Встроенный |
9В ВПП | Да | Да | Да | ЖК-дисплей | № | № | Да |
Загрузить обзорное техническое описание
Все варианты программатора PIC см. в Руководстве по программированию PIC.
| Передатчик на базе BA1404 — это захватывающий продукт, который будет транслировать стереофонический сигнал высокого качества в FM-диапазоне 88–108 МГц. Его можно подключить к любому источнику стереозвука, например к iPhone или компьютеру. Генератор функций XR2206 создает высококачественные синусоидальные, прямоугольные и треугольные сигналы высокой стабильности и точности. Выходные сигналы могут быть модулированы как по амплитуде, так и по частоте. Выходная частота может регулироваться от 1 Гц до 2 МГц. Частотомер/счетчик 60 МГц измеряет частоту от 10 Гц до 60 МГц с разрешением 10 Гц. Это очень полезное стендовое испытательное оборудование для тестирования и определения неизвестной частоты генераторов, радиоприемников, передатчиков, функциональных генераторов, кварцевых кристаллов и т. д. Благодаря встроенному усилителю оно имеет превосходную входную чувствительность. Создайте свой собственный точный LC-метр специальной серии и начните изготавливать на заказ прецизионные катушки и катушки индуктивности. Измеритель позволяет измерять невероятно малые индуктивности, что делает его идеальным инструментом для изготовления всех типов радиочастотных катушек и катушек индуктивности. Он может измерять индуктивность от 10 нГн до 1000 нГн, от 1 мкГн до 1000 мкГн, от 1 мГн до 100 мГн и емкость от 0,1 пФ до 900 нФ. Измеритель Accurate LC разработан для профессионалов, которым требуется беспрецедентная точность измерений, и включает в себя высокоточные компоненты, которые можно найти только в наборах премиум-класса. Беспроводное управление устройствами с помощью 4-канального радиочастотного пульта дистанционного управления. Работает сквозь стены на расстоянии 200 м / 650 футов. Вы можете управлять освещением, вентиляторами, гаражными воротами, роботами, системами безопасности, моторизованными шторами, оконными жалюзи, дверными замками, разбрызгивателями и всем, что только можно придумать. Вольтметр Амперметр может измерять напряжение до 70 В с разрешением 100 мВ и силу тока до 10 А с разрешением 10 мА. Это идеальное дополнение к любому источнику питания, зарядным устройствам и другим электронным устройствам, где необходимо контролировать напряжение и ток. В измерителе используется микроконтроллер PIC16F876A со встроенным АЦП (аналого-цифровым преобразователем) и ЖК-дисплеем 16×2 с зеленой подсветкой. В схемотехнике используется очень мало компонентов, и ее можно смонтировать на небольшой печатной плате. Счетчик также можно модифицировать и откалибровать с помощью трех кнопок для измерения напряжения выше 70 В и силы тока более 10 А. FM-радиоприемник TDA7000 с усилителем LM386 Опубликовано 7 июня 2022 г. BA1404 Стерео FM-передатчик с усилителем Опубликовано 4 мая 2022 г. Портативный регулируемый настольный источник питания 1–32 В, 0–5 А Опубликовано в среду, 13 апреля 2022 г. Блок питания, который я использовал для питания большинства своих проектов, слишком часто подвергался короткому замыканию. Я фактически убил 2 случайно и нуждался в замене. В моей мастерской лежало много липо-аккумуляторов 18650, поэтому я решил использовать их для создания портативного регулируемого настольного источника питания, который можно было бы легко перемещать и использовать на ходу. Блок питания состоит из повышающего модуля питания постоянного тока, дисплея напряжения и тока, переключателя, подстроечных потенциометров стандартного размера 10K, XT-60 и балансировочного разъема для зарядки массива из 8×4 аккумуляторов 18650. Усилитель FM-передатчика мощностью 1 Вт Опубликовано 30 марта 2022 г. Самый простой FM-приемник Опубликовано 1 февраля 2022 г. FM-передатчик мощностью 7 Вт Опубликовано 20 января 2022 г. Простой стерео FM-передатчик с использованием микроконтроллера AVR Опубликовано 3 января 2022 г. Не то чтобы стерео много значило для меня вдали от компьютера. Я использую передатчик FM-радиовещания для передачи выходного сигнала моих компьютеров на FM-радио на кухне, в спальне, на подъездной дорожке и в саду. В этих условиях я считаю, что моно достаточно, будь то музыка или радиопрограммы из Интернета, поскольку я все равно в основном занят чем-то другим. Когда я стою на четвереньках в саду, по локоть сажаю куст, музыка действительно не кажется более сладкой, когда она звучит в стерео. Но это не помешало мне увлечься идеей создания стереокодера. Стерео всегда казалось большим количеством схем и беспокойства из-за небольшой выгоды, которую оно давало. То есть до нескольких недель назад. Стерео FM-приемник Опубликовано 24 декабря 2021 г. Простой FM-передатчик, сделанный своими руками Опубликовано 1 октября 2021 г. Более того, когда-нибудь возникало желание создать собственную FM-станцию на определенной частоте? Ну, если ответ да на любой из этих вопросов, то вы находитесь в правильном месте!. Мы собираемся заняться изготовлением небольшого FM-передатчика для хобби с действительно простым руководством по компонентам и компонентами, которые легко доступны с полки.
Electronics-DIY.com © 2002-2022. Все права защищены. |
|
Создание простого программатора PIC.
- Опубликовано
- Авинаш
- В учебниках по микрочипу PIC
В этом уроке мы создадим простой программатор на базе последовательного порта для PIC. микроконтроллеры. Я пробовал несколько простых в изготовлении программаторов и программного обеспечения, и здесь я представляю программиста, который работал лучше всего. Дизайн основан на ЖДМ. Мы будем использовать программное обеспечение PICPgm. Кристиан Стадлер. Мне понравилась производительность программного обеспечения, оно быстрое и прост в использовании. Программист будет использовать COM-порт компьютера для коммуникация.
Требуемые компоненты.
Серийный номер | Артикул | Значение/деталь № | Кол-во |
01 | Транзистор | BC337-40 или BC337-25 | 2 |
02 | Конденсатор электролитический | 100 мкФ 16 В постоянного тока | 2 |
03 | Стабилитрон | 5,1 В 0,5 Вт | 1 |
04 | Стабилитрон | 6,2 В 0,5 Вт | 1 |
05 | Диод | 1N4148 | 4 |
06 | Резистор | 1,5К | 1 |
07 | Резистор | 10К | 1 |
08 | Светодиод | КРАСНЫЙ Цвет | 1 |
09 | Розетка DB9 с крышкой | – | 1 |
10 | 6-контактный гнездовой разъем с проволокой | – | 1 |
11 | Veroboard, провода и т. д. | – | – |
Схема цепи
Теперь соберите схему, как показано ниже, на куске картона.
Рис. : Простой программатор PIC на основе последовательного порта. |
Таким образом, наш программатор PIC будет иметь два интерфейса
- Последовательный интерфейс для подключения к ПК
- 6-контактный разъем ICSP — он будет подключен к нашему PIC, который будет сидеть в нашем проекте (скажем, в макете).
Рис. : Простой программатор PIC на основе последовательного порта. |
Мы используем метод программирования ICSP, т. е. внутрисхемное последовательное программирование. В этом методе наш PIC останется на плате конечного приложения во время программирования. В нашем конечном приложении будет простой 6-пиновый заголовок. Мы должны подключить этого программатора в конечное приложение с помощью этого коннектора. Теперь мы можем подключить программатор с ПК и загрузите файл HEX в наш PIC micro. Фигура ниже проиллюстрируйте процесс.
Рис. : Использование программатора ISCP. |
Наш программатор PIC готов. В следующем уроке я покажу вам, как написать приложение «Hello World» для микроконтроллеров PIC. После этого вы будете иметь все инструменты и базовые навыки для работы с проектами, связанными с PIC. затем мы перейдем к изучению микроконтроллера PIC шаг за шагом.
Важное примечание
Этот программатор работает только с физическим последовательным портом! Он НЕ работает с преобразователями USB в последовательные порты.
Хорошо, друзья, пока, до встречи в следующем уроке .
Авинаш Гупта
Столкнулись с проблемой в вашем проекте в области встроенной электроники или робототехники? Мы здесь, чтобы помочь!
Опубликовать запрос о помощи.
Avinash
Avinash Gupta сосредоточен исключительно на бесплатном и высококачественном учебном пособии, чтобы сделать изучение встроенной системы увлекательным!
Еще сообщения — Сайт
Следуй за мной:
Как начать работу с микроконтроллерами PIC | ПОС
Получите представление о микроконтроллерах PIC с обзором функций и простым первым проектом!
В предыдущей статье мы рассмотрели различные микроконтроллеры, доступные на рынке, и то, как каждый из них имеет свои преимущества и недостатки. Эта статья начинает нашу серию статей о микроконтроллерах PIC с более подробного рассмотрения микроконтроллера PIC и рассказа о том, как приступить к работе.
Чтобы начать работу с микроконтроллерами PIC, вам потребуется некоторое аппаратное и программное обеспечение. Программатор может быть дорогим (для официального PICKIT3), но интернет-ресурсы предполагают, что универсальный программатор PK3 (с открытым исходным кодом) будет работать так же хорошо (~ 20 фунтов стерлингов).
Микроконтроллеры PIC представляют собой простые устройства с большими возможностями ввода-вывода и обычно имеют множество периферийных устройств. Благодаря своим программируемым возможностям и удобному корпусу (DIP) они являются идеальными устройствами для многих хобби-проектов. Итак, что нам нужно знать об этих устройствах на данный момент?
- Все PIC имеют контакты питания, которые необходимо подключить (VDD и VSS)
- Все PIC имеют контакты для программирования, которые необходимо подключить к контактному разъему говорит иначе
- Многие устройства могут поставляться с широким диапазоном напряжения питания (обычно от 3,3 В до 5 В)
PIC, который мы будем использовать, будет PIC16F819. Почему? Что ж, PIC16F819, возможно, является одним из лучших устройств, когда речь идет о периферийных устройствах, количестве контактов и цене! Хотя этот чип может стоить несколько долларов сам по себе, он может стоить всего 2 доллара у таких дистрибьюторов, как Farnell, Digi-Key и Mouser.
Основные характеристики PIC16F819Итак, какие функции можно найти в PIC16F819?
- Внутренний генератор (8 МГц)
- 16 Контакты в / выводах
- Аналог-цифровой преобразователь
- Три таймера (2 8-битные / 1 16-битные)
- Capture, Compare, PWM
- Порт SSP (SPI и I2C)
- Широкий диапазон напряжений (от 2 В до 5 В)
- Сторожевой таймер
Эти функции позволят PIC16F819 работать во многих проектах, но пока мы будем использовать контакты ввода/вывода только для включения и выключения светодиода! Но как только вы начнете привыкать к микроконтроллерам, вы быстро сможете использовать все эти функции для создания богатых проектов. Так как же выглядит этот чип и что делают контакты? На приведенной ниже диаграмме показана микросхема PIC16F819 в 18-контактном DIP-корпусе и показано, что может делать каждый вывод.
СхемаУстройства PIC используют очень простой разъем для программирования, состоящий из 5 или 6 контактов. Все PIC используют выводы MCLR, VDD, VSS, PGD и PGC, но более старые устройства могут не использовать вывод PGM. Прежде чем мы рассмотрим нашу базовую схему, давайте начнем с самого PICKIT3:
Цель нашего теста — заставить PIC мигать светодиодом. Поэтому нам нужно подключить наш PIC к светодиоду и PICKIT3, а также предоставить все необходимые пассивные компоненты, чтобы это произошло!
Как установить MPLAB X и XC8Прежде чем мы сможем запрограммировать наш PIC, нам нужно установить MPLAB X и XC8.
MPLAB X — это IDE (интегрированная среда разработки), предоставляющая все инструменты, необходимые для кодирования проекта PIC, включая текстовые редакторы с цветовой кодировкой, элементы управления отладкой, просмотр памяти, настройку устройства и многое другое.
XC8 — это компилятор C, который позволяет нам использовать язык программирования C для разработки программ для линейки PIC16 и PIC18. Когда XC8 установлен, MPLAB X обнаружит компилятор XC и позволит нам создавать проекты, используя XC8, без необходимости настраивать сложную информацию о сборке (вот почему IDE очень важны).
При установке XC8 и MPLAB убедитесь, что вы отметили «Добавить в путь», чтобы MPLAB X мог найти его независимо от того, где окажется XC8.
Убедитесь, что вы включили бесплатную опцию при установке XC8.
Включить все эти опции!
Создание проекта PIC16 CПосле установки всего программного обеспечения и создания схемы пришло время начать с подключения PICKIT3 к компьютеру через порт USB. Прежде чем продолжить, убедитесь, что Windows распознает PICKIT3, потому что если это не так, то и MPLAB X не распознается. Вы будете знать, что это сработало, потому что Windows создаст всплывающее окно с надписью «Устройство успешно установлено». . После этого начните с загрузки MPLAB X.
После загрузки MPLAB X вы можете создать новый проект с помощью мастера (рекомендуется). Перейдите в меню «Файл» > «Новый проект» и в появившемся окне выберите «Автономный проект», прежде чем нажать «Далее >».
Следующее окно запрашивает устройство. Выберите PIC16F819 в списке и нажмите «Далее >».
При выборе устройства вас спросят, какой инструмент программирования вы хотите использовать. Выберите инструмент, который у вас есть, но, скорее всего, вы будете использовать PICKIT3 (рекомендуется).
Теперь выберите компилятор XC8 в качестве компилятора для проекта.
Последний шаг — дать вашему проекту имя и выбрать расположение папки. По умолчанию MPLAB X помещает проекты в папку проекта и назначает уникальную папку для каждого проекта. В этом уроке мы назовем наш проект «FirstProject».
Наш проект создан и готов к программированию. Но прежде чем мы начнем вводить код, чтобы светодиод мигал (только в демонстрационных целях), нам нужно указать MPLAB X настроить PICKIT3 на выходную мощность для нашей схемы. Если мы этого не сделаем, PICKIT3 не сможет обнаружить PIC из-за отсутствия питания! Это, пожалуй, самая распространенная ошибка для новичков! ЕСЛИ НЕТ ПИТАНИЯ, ТО ПИК НЕ РАБОТАЕТ!
Чтобы заставить PICKIT3 подавать питание, мы сначала идем в File > Project Properties
Следующая задача — убедиться, что ваш PICKIT3 был правильно выбран. Для этого убедитесь, что ваш серийный номер PICKIT3 выбран в списке, а затем выберите PICkit 3 из списка слева.
На этой странице перейдите в раскрывающийся список «Категории опций» и выберите «Питание». В этом окне установите флажок «Целевая схема питания от PICkit 3» и убедитесь, что уровень напряжения установлен на 5,0 (5 В). Нажмите «Применить», и ваш PIC теперь будет иметь питание, и если вы правильно подключили его, MPLAB X без проблем найдет и запрограммирует ваше устройство!
Следующая задача — ввести код, который заставит наше устройство мигать! Сначала перейдите в «Файл»> «Новый файл» и в появившемся окне выберите «C»> «Основной файл C». После выбора выберите следующий.
Следующей задачей является присвоение имени этому файлу, так что пока просто назовите его main и нажмите Finish.
У MPLAB X есть свои плюсы, и это один из них. Несмотря на создание нового основного файла, MPLAB не добавил его в наш проект, поэтому нам нужно добавить этот файл для его компиляции. Щелкните правой кнопкой мыши «Исходные файлы» и выберите «Добавить существующий элемент». В открывшемся диалоговом окне выберите созданный нами файл main.c, и теперь этот файл станет частью нашего проекта.
Следующая задача в нашем тесте — поместить код в наш основной файл, который заставит светодиод мигать. В этой статье не будет рассматриваться ни то, как работает C, ни его особенности, так как это всего лишь введение, но то, как работает код, должно быть в некоторой степени самоочевидным. Скопируйте приведенный ниже код в свой основной файл (удалите все содержимое в основном файле ПЕРЕД копированием этого кода). Сохраните файл и нажмите зеленую стрелку «Выполнить проект».
Предполагая, что ошибок сборки нет, вы должны увидеть компиляцию кода, подключение программатора и мигание светодиода. Вот оно! Вы только что сделали свой первый проект PIC для микроконтроллера!
Практическое руководство: Программирование PIC с помощью Linux
Возможно, микроконтроллеры PIC от Microchip не получают здесь достаточного количества сообщений. Одним из недостатков для некоторых из нас является то, что поддержка PIC в Linux не очень хорошо известна. Информация есть, но никто не описал процесс перехода от написания кода на C к программированию чипа. Написанное для пользователей Linux, знакомых с микроконтроллерами, основными схемами, языком программирования C и умеющих читать таблицы данных, это практическое руководство должно помочь вам быстро приступить к программированию PIC в Linux.
Компилятор:
Компилятор C для малых устройств, sdcc — это то, что будет использоваться для создания файла .hex, необходимого для программирования PIC. Поддержка PIC все еще расширяется и все еще находится в стадии бета-тестирования, поэтому имейте в виду, что вещи, выходящие за рамки кода и микросхем этой статьи, могут нуждаться в некоторой отладке. Однако, как и в любом другом проекте с открытым исходным кодом, проекту будет помогать больше пользователей. Лучше всего то, что он бесплатный, с портами для Windows и MacOS X. Это компилятор, который работает со многими архитектурами и устройствами без программных ограничений бесплатных версий платных компиляторов, которые ограничены Windows. Sdcc доступен через менеджеры пакетов различных дистрибутивов, включая Ubuntu и Fedora.
Для установки sdcc в Ubuntu:
sudo apt-get install sdcc
Для установки sdcc в Fedora:
sudo yum install sdcc
Чипы:
В написании этой микросхемы использовались три разных чипа. учебник: 40-контактный PIC16F887, 14-контактный PIC16F688 и 8-контактный PIC12F675. Вы можете следить за любой из этих фишек, а также других фишек.
Программатор:
Мы будем использовать два программатора: программатор PIC-MCP-USB от Olimex, совместимый с PICStart+, и PICkit 2 от Microchip. Оба программатора были протестированы на работу с тремя используемыми здесь чипами.
Программисты PICStart+ используют программу picp. Большинство программаторов, совместимых с PICSStart+, будут работать с picp. Легко устанавливается в Ubuntu с помощью:
<pre>sudo apt-get install picp
Для Fedora и других дистрибутивов может потребоваться загрузить и установить его из исходного кода. Итак, в выбранной вами пустой директории:
wget http://home.pacbell.net/theposts/picmicro/picp-0.6.8.tar.gz смолка -xzf picp-0.6.8.tar.gz компакт-диск picp-0.6.8 делать судо сделать установить
Исходный код находится на странице инструментов разработки [Jeff Post] для программистов PIC вместе с другими вариантами программирования.
Если вы будете использовать PIC16F887 и picp, вам потребуется изменить файл /etc/picp/picdevrc, добавив следующие строки:
[16F887] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ПИКСТАРТ [16F887: определение] 20 00 3f и далее 3f и далее 00 7f 00 7f 3f ff 3f ff 00 ff 00 и далее 00 00 00 00 00 00 0Д 10 20 00 04 20 07 02 00 00 01 00 00 00 00 00 00 01 22 0f [16F887:защита] 3f 07 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 07 00 00 00 00 00 00 00 00 00 00 00 00 00
Приведенные выше строки являются измененными параметрами для PIC16F886, найденными в сообщении [Al Williams]. Для микросхем, которых еще нет в /etc/picp/picdevrc, необходимо добавить дополнительные параметры в /etc/picp/picdevrc.
Программисты PICkit 2 будут работать с другой программой под названием pk2cmd, размещенной здесь компанией Microchip. Вам нужно будет установить pk2cmd из исходников. поэтому в каталоге по вашему выбору:
wget http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz tar -xzf pk2cmdv1.20LinuxMacSource.tar.gz cd pk2cmdv1.20LinuxMacSource сделать линукс судо сделать установить
Обратите внимание, что Microchip рекламирует PICkit 3 как замену PICkit 2. Это не замена PICkit 2, поскольку для PICkit 3 нет драйверов Linux, поэтому не покупайте PICkit 3, думая, что он будет работать в Linux. .
Существует еще одна программа, которая утверждает, что работает с рядом самодельных программаторов PIC: PICPgm. На данный момент мы не пробовали эту программу или какой-либо из программаторов DIY. Мы знаем, что есть другие программаторы PIC, как дешевые, так и дорогие, которые не были упомянуты. Возможно, нужно написать сводку новостей для программистов PIC.
Код:
Код для этого руководства представляет собой своего рода программу приветствия, использующую светодиоды. Код для этого размещен на Github, вы можете следить за файлом blink.c для PIC16F887, PIC16F688 или PIC12F675. Также включены рабочие файлы .hex. Вот код PIC16F887 в качестве справки, когда мы рассмотрим каждую основную операцию:
//Простая программа для начала программирования // Микроконтроллеры PIC в Linux. // Автор Девлин Тайн. // Выпущено в общественное достояние. #include "pic/pic16f887.h" //Используйте эти слова конфигурации: //0x2ff4 0x3fff //Установить слова конфигурации: целое число без знака в _CONFIG1 configWord1 = 0x2FF4; беззнаковое целое в _CONFIG2 configWord2 = 0x3fff; //Скомпилировать: //sdcc -mpic14 -p16f887 blink.c //Чтобы запрограммировать чип с помощью picp: // Предположим, что /dev/ttyUSB0 — это последовательный порт. // Стереть чип: //picp/dev/ttyUSB0 16f887 -ef // Пишем программу: //picp/dev/ttyUSB0 16f887 -wp blink.hex // Запишите слова конфигурации (необязательно): //picp/dev/ttyUSB0 16f887 -wc 0x2ff4 0x3fff //Делаем все сразу: стираем, программируем и считываем слова конфигурации: //picp /dev/ttyUSB0 16f887 -ef -wp blink.hex -rc //Чтобы запрограммировать чип с помощью pk2cmd: //pk2cmd -M -PPIC16f887 -Fblink.hex //Настройка переменных беззнаковый char ucharCount = 0; беззнаковое целое число uintDelayCount = 0; недействительный основной (пустой) { //Установить PORTC на все выходы ТРИСК = 0x00; ucharCount = 0; uintDelayCount = 0; // Цикл навсегда пока ( 1 ) { //Цикл задержки пока (uintDelayCount < 10000) { // Увеличиваем счетчик циклов uintDelayCount++; } //Сброс счетчика цикла задержки uintDelayCount = 0; // Увеличиваем счетчик ucharCount++; // Отображение количества выводов PORTC ПОРТС = ucharCount; } }
Первая строка — это #include для файла заголовка конкретного чипа, который вы будете использовать. Он сообщает компилятору, какие регистры доступны и где они расположены в памяти. В большинстве систем заголовочные файлы находятся в /usr/share/sdcc/include.
Затем мы устанавливаем конфигурационное слово или слова fuses. Они могут быть записаны только тогда, когда чип запрограммирован, но мы можем определить их здесь, чтобы нам не пришлось программировать их вручную позже. PIC16F887 имеет адрес для конфигурационных слов, определенных в заголовочном файле как _CONFIG1 и _CONFIG2. PIC16F688 и PIC12F675 не имеют адреса слова конфигурации, определенного в их заголовке (мы сказали, что sdcc был в бета-версии, не так ли?), поэтому мы просто используем адрес слова конфигурации: 0x2007. Слова конфигурации относятся к модели чипа и применению и описаны в главе «Особые характеристики ЦП» в описаниях каждого из соответствующих чипов. В примерах blink.c слово конфигурации представляет собой просто 16-битное шестнадцатеричное слово, но это слово можно сделать более удобочитаемым, объединив параметры конфигурации по И. Проверьте заголовочные файлы чипов на наличие названий опций.
Затем мы устанавливаем некоторые глобальные переменные, одну для значения, которое будет выводиться на светодиоды, а другую для счетчика задержки.
В void main() мы устанавливаем регистр PORTC с тремя состояниями, TRISC для всех выходов. PIC12F675 имеет только один порт, GPIO, и его регистр с тремя состояниями — TRISIO. После установки регистра с тремя состояниями мы входим в бесконечный цикл с помощью while(1). Внутри этой петли находится петля задержки, чтобы мы могли видеть изменение светодиодов. После цикла задержки счетчик дисплея увеличивается, а затем записывается в PORTC (или GPIO) для отображения на светодиодах.
Компиляция кода:
Теперь, когда мы рассмотрели код, пришло время превратить его во что-то, что может использовать PIC. sdcc возьмет файл blink.c и создаст кучу файлов. Одним из этих файлов будет blink.hex, который программатор устройства PIC будет записывать в PIC. Вот как:
Для PIC16F887:
sdcc -mpic14 -p16f887 blink.c
Для PIC16F688:
sdcc -mpic14 -p16f688 blink.cДля PIC16: 0003
sdcc -mpic14 -p12f675 blink.c
Параметр -mpic14 сообщает sdcc, что он будет компилировать 14-битные инструкции семейств PIC16 и PIC12. Второй вариант — конкретный чип, для которого будет компилироваться код. Последним в строке является файл, содержащий код C, который будет скомпилирован.
Программирование чипа:
Для программирования чипа вам понадобится программатор и подключите чип, который вы хотите загрузить, с вашей программой. Если вы не используете программатор сокетов, такой как PIC-MCP-USB, вам нужно будет ознакомиться с техническими описаниями программатора и чипа, который нужно запрограммировать, для правильного подключения. После правильного подключения вам нужно будет запустить программу для запуска программатора:
Для программатора PICStart+ на /dev/ttyUSB0, программирующего PIC16F887:
picp /dev/ttyUSB0 16f887 -ef -wp blink. hex -rc
Для программатора PICkit 2, программирующего PIC16F887:
-f8PP8pk-Fblink.hex
Если вы программируете другой чип или программатор PICStart+ находится на порту, отличном от /dev/ttyUSB0, вам необходимо внести соответствующие изменения в команды.
Примечание. Код для PIC16F887 отключает низковольтное программирование. Некоторые из программаторов, доступных, но прямо не упомянутых, выполняют только низковольтное программирование. Если у вас есть один из этих программаторов, вам нужно будет изменить код так, чтобы бит низковольтного программирования в словах конфигурации допускал низковольтное программирование. Низковольтный вывод программирования на микроконтроллере также должен быть переведен в низкий уровень во время нормальной работы.
Подключите схему:
Схема для этого проекта с предоставленным кодом очень проста для макета. Ниже приведены схемы для трех микросхем:
Начните с подключения контактов Vdd к источнику положительного напряжения от 4,5 до 6 вольт, а контакта Vss к земле. Для 40-контактного PIC16F887 и 14-контактного PIC16F688 потребуется подтягивающий резистор на главном выводе сброса. К любому или всем контактам PORTC (или контактам GPIO для PIC12F675) подключите светодиоды с токоограничивающими резисторами на землю. Обратите внимание, что контакт 4 PIC12F675 является только входом и не зажигает светодиод. Ток на любом выводе трех используемых микросхем ограничен 20 мА, поэтому токоограничивающие резисторы не являются обязательными для большинства дешевых мармеладных светодиодов. То, что вы должны увидеть при включении схемы, это мигающие светодиоды. Светодиоды должны светиться с двоичным счетом.
Ваша очередь!
Теперь, когда мы дали вам возможность начать программировать PIC с помощью Linux, мы надеемся увидеть больше проектов, использующих эти микросхемы и упомянутые выше инструменты. Хотя эта статья была написана для пользователей Linux, пользователи Windows и MacOS X должны иметь возможность использовать sdcc для своих нужд программирования PIC.
Информация об изображении: Логотип Tux создан Ларри Юингом, Саймоном Бадигом и Аней Гервински с Викисклада. Логотип Microchip является зарегистрированным товарным знаком Microchip Technology Incorporated.
Средства разработки для программистов PIC