Site Loader

Простой USB программатор PIC

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

Однажды я решил собрать несложный 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МикросхемаCh440G1Поиск в магазине ОтронВ блокнот
IC2МикросхемаК1533ЛА31Поиск в магазине ОтронВ блокнот
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Поиск в магазине ОтронВ блокнот
R2, R5, R6Резистор

4.

7 кОм

3Поиск в магазине ОтронВ блокнот
R7, R8Резистор

300 Ом

2Поиск в магазине ОтронВ блокнот
ZQ1Кварц12 МГц1Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Теги:
  • PIC
  • Программатор
  • USB
  • Sprint-Layout

что.такое.pickit2 [PICkit2.ru]

Содержание

  • Внутрисхемный программатор

  • Внутрисхемный отладчик

  • Цифровая лаборатория: логический анализатор и отладка последовательного интерфейса UART

  • Средство изучения интерфейса USB

  • Варианты поставки программатора PICkit 2

    • PG164120

    • DV164120 — PICkit 2 Starter Kit

    • DV164121 — PICkit 2 Debug Express

  • Другие отладочные комплекты, в которые входит PICkit 2.

  • Дискуссия

PICkit 2 это простой USB программатор для микроконтроллеров PIC, микросхем памяти и KeeLOQ ключей производства компании Microchip Technology Inc. Программатор PICkit 2 работает под управлением своей собственной оболочки (PICkit 2 Programmer) или под управлением бесплатной среды разработки MPLAB IDE. Отличительной особенностью программатора PICkit2 является низкая цена, а так же доступность полной документации, включая схему и исходные коды прошивки для микроконтроллера, и программы оболочки для компьютера.

Внутрисхемный программатор

Программатор PICkit2 позволяет запрограммировать внутрисхемно практически все Flash микроконтроллеры Microchip. При появлении новых микроконтроллеров с сайта www.microchip.com можно скачать обновление программного обеспечения и прошивки программатора PICkit2. Там же доступна для скачивания утилита для работы с программатором PICkit 2 из командной строки. Утилита позволяет программировать все контроллеры, которые поддерживает последняя версия

GUI-оболочки PICkit 2, микросхемы EEPROM с последовательным интерфейсом, KeeLOQ-кодеры. С помощью ключей запуска выбирается тип контроллера, устанавливается напряжение питания, даются команды читать, программировать и верифицировать Flash и EEPROM память контроллера. Утилиту можно использовать для интеграции программатора в автоматизированные системы, сторонние редакторы кода. Утилита тестировалась на совместимость с операционными системами Windows XP SP2 и Windows Vista. Список поддерживаемых микроконтроллеров.

Внутрисхемный отладчик

Программатор PICkit2 под управлением среды разработки MPLAB IDE может выполнять функции внутрисхемного отладчика, т.е. позволяет выполнять запуск программы, пошаговое выполнение команд, устанавливать точки останова микроконтроллера, а так же просматривать и изменять состояние регистров специального назначения и ОЗУ отлаживаемого микроконтроллера PIC.

Список поддерживаемых микроконтроллеров.

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

Для отладки таких контроллеров выпускаются специальные отладочные модули.

Таблица: Модули для отладки маловыводных контроллров
Контроллер Число выводов Наименование модуля Используемый отладочный кристалл Максимальное напряжение питания
PIC10F200/2/4/6 8/14 AC162059 PIC16F505-ICD 5.5V
PIC10F220/2 8/14 AC162070 PIC16F506-ICD 5.5V
PIC12F508/509 8/14 AC162059 PIC16F505-ICD 5.5V
PIC12F510 8/14 AC162070 PIC16F506-ICD 5.5V
PIC12F519 8/14 AC162096 PIC16F526-ICD 5.5V
PIC12F609/HV609 28 AC162083 PIC16F616-ICD 5.
5V
PIC12F615/HV615 28 AC162083 PIC16F616-ICD 5.5V
PIC12F629 8 AC162050 PIC12F675-ICD(1) 5.5V
PIC12F635 14 AC162057 PIC16F636-ICD 5.5V
PIC12F675 8 AC162050 PIC12F675-ICD(1) 5.5V
PIC12F683 8 AC162058 PIC12F683-ICD 5.5V
PIC16F505 8/14 AC162059 PIC16F505-ICD 5.5V
PIC16F506 8/14 AC162070 PIC16F506-ICD 5.5V
PIC16F526 8/14 AC162096 PIC16F526-ICD 5.5V
PIC16F610/HV610 14/16 AC162083 PIC16F616-ICD 5.5V
PIC16F616/HV616 14/16 AC162083 PIC16F616-ICD 5. 5V
PIC16F627A/628A 18 AC162053 PIC16F648A-ICD 5.5V
PIC16F630 14 AC162052 PIC16F676-ICD 5.5V
PIC16F631 20 AC162061 PIC16F690-ICD 5.5V
PIC16F636 14 AC162057 PIC16F636-ICD 5.5V
PIC16F639 (Dual die) 20 AC162066 PIC16F636-ICD 5.5V
PIC16F648A 18 AC162053 PIC16F648A-ICD 5.5V
PIC16F676 14 AC162052 PIC16F676-ICD 5.5V
PIC16F677 20 AC162061 PIC16F690-ICD 5.5V
PIC16F684 14 AC162055 PIC16F684-ICD 5.5V
PIC16F685/687 20 AC162061 PIC16F690-ICD 5. 5V
PIC16F688 14 AC162056 PIC16F688-ICD 5.5V
PIC16F689/690 20 AC162061 PIC16F690-ICD 5.5V
PIC16F716 18 AC162054 PIC16F716-ICD(1) 5.5V
PIC16F785/HV785 20 AC162060 PIC16F785-ICD 5.5V
PIC18F13K50 PIC18F14K50 20 AC244023 PIC18F14K50-ICE 3.6V
PIC18LF13K50 PIC18LF14K50 20 AC244024 PIC18LF14K50-ICE 3.6V
Замечание 1: Эти отладочные контроллеры имеют некоторые ограничения. Смотрите спецификацию на модуль для дополнительной информации

Цифровая лаборатория: логический анализатор и отладка последовательного интерфейса UART

UART Tool позволяет использовать PICKit2 для передачи данных между отлаживаемым микроконтроллером и компьютером по UART.

Logic Tool позволяет симулировать воздействия и отслеживать состояние сигналов разрабатываемого устройства. Поддерживается 2 режима:

  • «Logic I/O» — формирование нужных логических уровней и мониторинг состояния уровней цифровых сигналов;

  • «Analyzer» — отображение формы до трех цифровых сигналов, с возможностью формирования реакции на событие (например, по нарастанию фронта одного сигнала, когда другой находится в высоком логическом уровне).

Средство изучения интерфейса USB

Программатор PICKit 2 можно использовать как средство разработки, отладки и знакомства с USB устройствами. Если вам хочется освоить USB интерфейс, то в «стандартном» случае вам нужно иметь программатор и собственно плату с установленным USB контроллером. Если у вас есть программатор PICkit-2 то можно поступить гораздо проще! Сердцем программатора PICkit 2 является USB-контроллер Microchip PIC18F2550. На фабрике в PICkit 2 прошит загрузчик (бутлоадер – bootloader) и прошивка программатора. Бутлоадер необходим для возможности обновления прошивки программатора при выходе новых версий PICkit2. Можно воспользоваться данной возможностью для своих целей, а именно для изучения интерфейса USB. В этом случае все что вам понадобится это PICkit 2.

Варианты поставки программатора PICkit 2

PG164120

PG164120 — собственно сам программатор PICkit 2 (в комплекте PICkit2, USB кабель, CD с ПО и документацией).


DV164120 — PICkit 2 Starter Kit

DV164120 — PICkit™ 2 Starter Kit — Программатор PICkit2 + демонстрационная плата с контроллером PIC16F690 (в комплекте PICkit2, демонстрационная плата, USB кабель, CD с ПО и документацией).


DV164121 — PICkit 2 Debug Express

DV164121 — PICkit™ 2 Debug Express — Программатор PICkit2 + демонстрационная плата с контроллером PIC16F887 (в комплекте PICkit2, демонстрационная плата, USB кабель, CD с ПО и документацией).

Другие отладочные комплекты, в которые входит PICkit 2.

Другие отладочные комплекты, в которые входит PICkit 2

Автономный портативный программатор PIC с клавиатурой и ЖК-дисплеем для программирования микроконтроллера PIC

Автономный портативный программатор PIC

Портативный программатор PIC — это автономная, более адаптируемая версия давно зарекомендовавших себя портативных программаторов PIC от Kanda. Он основан на философии Kanda , сохраняй простоту , поэтому его намного проще использовать, чем другие портативные программаторы.

Он имеет 31 программный слот или изображение, которые загружаются с ПК с отдельной целевой информацией, включая разные PIC микроконтроллеры, код и данные, байты конфигурации, напряжение программирования и название слота. После загрузки его можно использовать в любом месте, идеальный автономный программатор PIC. Выбор программы прост, по номеру или путем прокрутки заголовков. После выбора слота нажмите кнопку Program, чтобы обновить целевой микроконтроллер PIC.

Питание программатора

  • Он оснащен батареей 9В PP3 с запасной в комплекте, что позволяет выполнять 100 операций программирования.
  • Может использоваться с блоком питания 9 В, см. аксессуары для подходящего настенного трансформатора международного стандарта.
  • Можно установить перезаряжаемую батарею PP3, см. аксессуары для зарядного устройства
  • При необходимости может питать целевую цепь.
  • В более ранних версиях этого программатора было встроенное зарядное устройство — в новой версии оно больше не выпускается 3

Portable PIC Programmer Operation


  1. Загрузка с ПК через USB с помощью интерфейса Kanda и простого программного обеспечения, входящего в комплект
  2. Возьми с собой
  3. На месте выберите правильную цель с помощью ЖК-дисплея, клавиатуры или стрелок прокрутки
  4. Подключитесь к цели и нажмите кнопку программирования
  5. Результат проверки на ЖК-дисплее
  6. Все, работа выполнена — переходим к следующей работе
  7. Используйте сетевой/настенный трансформатор из комплекта поставки или 9В ПП3 батарея
  8. Оснащен перезаряжаемой батареей 9 В PP3 (6F22), см. аксессуары для зарядного устройства или используйте свой собственный
  9. Может работать со стандартной неперезаряжаемой батареей 9 В

Для кого этот программатор?
Portable PIC Programmer идеально подходит для тех, кому необходимо быстро и легко обновить микроконтроллер PIC. прошивки в различное оборудование. Это может быть

  • Техники-технологи, которым необходимо настраивать продукты или работать с различными линейками продуктов
  • Разработчики программного обеспечения, которым необходимо попробовать различные версии прошивки на сайте
  • Сервисные инженеры, которые должны обслуживать смешанное оборудование
  • Инженеры по техническому обслуживанию, которым необходимо обновить ряд машин

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

Техническая информация


  • ОС Windows: Win 2000, XP, Vista, Win 7, Win 8, Win 10, Win11 — 32- и 64-разрядная
  • Интерфейс ПК: USB-адаптер и программное обеспечение в комплекте
  • Размеры: 125 x 70 x 25 мм (4,8 x 2,6 x 1 дюйм)
  • Вес: 130 г (4,5 унции)
  • Питание: Использует батарею 9 В PP3 или блок питания 9 В (дополнительно) с цилиндром 2,1 мм, центр +ve
  • Соответствует RoHS
  • Емкость: 31 программный слот, каждый по 256 КБ, для хранения кода, данных и конфигурации, микроконтроллер PIC, Название и опции программирования
  • Обеспечивает целевое напряжение 3,3 В или 5 В, в зависимости от устройства и выбора пользователя
  • 9В или 12В VPP поставляется, использует первое программирование VPP, если поддерживается целевым PIC
  • Также поддерживается низковольтное программирование (LVP)
  • Новая версия с адаптером 6 SIL, а не с 6-контактным гибким проводом

Поддержка микроконтроллера PIC


  • PIC18Fxxxx
  • PIC18FxxJxx
  • PIC18FxxKxx (9В ВПП)
  • Теперь поддерживает PIC18FxxK80, PIC18F6xK22/8xK22, PIC18FxxJ50, PIC18F6xK90/8xK90 и PIC18FxxK83
  • Поддерживает PIC18FxxQ10, PIC18FxxQ4x
  • Поддерживает версии LF

Доступны БЕСПЛАТНЫЕ обновления для поддержки новых устройств.

Микроконтроллеры PIC12F

  • PIC12F1822, PIC12F1840
  • ПИК12Ф609, ПИК12Ф615, ПИК12Ф617
  • ПИК12Ф635, ПИК12Ф683
  • ПИК12Ф1571, ПИК12Ф1572

Версии Plus LF

Микроконтроллеры PIC16F

  • PIC16F610
  • PIC16F616
  • PIC16F627
  • PIC16F628
  • PIC16F627A, PIC16F628A, PIC16F648A (программирование режима HVP, только если контакт сброса не перепрограммирован как ввод-вывод)
  • ПИК16Ф631, ПИК16Ф636, ПИК16Ф639
  • PIC16F677
  • PIC16F68x, PIC16F690
  • PIC16F7x
  • PIC16F7x7
  • PIC16F72x
  • PIC16F785
  • PIC16F818
  • PIC16F819
  • PIC16F8x
  • PIC16F8xA
  • PIC16F87x
  • PIC16F873A
  • PIC16F874A
  • ПИК16Ф876А
  • PIC16F877A
  • PIC16F88x
  • PIC16F91x
  • PIC16F15xx
  • PIC16F161x
  • PIC16F170x
  • PIC16F171x
  • PIC16F176x
  • PIC16F177x
  • PIC16F178x
  • PIC16F18xx
  • PIC16F183xx
  • PIC16F19xx
  • PIC16F188xx
  • PIC16F153xx
  • PIC16F184xx
  • PIC16F152xx
  • PIC16F180xx
  • PIC16F181xx
  • Также поддерживаются версии LF

PIC12F и PIC16F Не поддерживается

  • PIC12F629
  • PIC16F630
  • PIC16F676
  • PIC16F5x
  • PIC16F505

Примечания: Программисты поддерживают 9V VPP для PIC18FxxKxx и PIC16F1xxx. Режим LVP поддерживается микроконтроллерами PIC с LVP.

Содержимое комплекта портативного программатора PIC

  • Портативный программатор V3 PIC
  • Интерфейс USB для ПК и провод
  • 10-жильный кабель
  • 6-контактный адаптер SIL (MCLR, VCC, GND, PGD, PGC, PGM)
  • Запасная батарея 9В PP3

Автономное ПО PIC Programmer

Установите программное обеспечение с прилагаемого компакт-диска и подключите USB-интерфейс, входящий в комплект, и USB-разъем. драйвера будут установлены автоматически.
Подключите портативный программатор к USB-интерфейсу и запустите программное обеспечение, чтобы прочитать содержимое программатора. Содержание каждый слот отображается в списке с его номером, заголовком, целевым микроконтроллером PIC и именем файла. Вы можете редактировать существующие слоты или добавить новые слоты до максимум 32, но на самом деле должен быть загружен только 1 слот.

Помимо настройки целевого PIC-микроконтроллера и файлов, каждый слот может иметь свой метод программирования (LVP или HVP), 3,3 В или 5V VCC и различные варианты.
Нажмите кнопку «Создать» или «Редактировать программу», чтобы загрузить программатор. Содержимое программатора можно сохранить и загрузить в другой портативный программатор



Выбор программного слота
Портативный программатор имеет клавиатуру и ЖК-дисплей.

Раскладка клавиатуры

Либо введите номер слота программы в виде 3 цифр, например 003, и нажмите Select, либо используйте стрелки вверх и вниз для прокрутки. через названия слотов в нужный слот и нажмите Select. Пустые слоты отображаются как недоступные, в противном случае номер и название слота отображаются на ЖК-дисплее.


Программирование цели PIC
Подключите программатор к вашей целевой схеме микроконтроллера PIC, используя прилагаемые 6-контактные выводы. или используйте адаптер для других интерфейсов, таких как ICD2 RJ11. Затем выберите целевую программу по номеру или с помощью прокрутки и просто нажмите кнопку «Программа». Ход программирования и прохождение/ошибки отображаются на ЖК-экране.

Практическое руководство: Программирование 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 5F6 P16f688 blink.c 
2 Для 7F6 PIC10080007
 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:

-f8PPpk

-Fblink.hex

Если вы программируете другой чип или программатор PICStart+ находится на порту, отличном от /dev/ttyUSB0, вам необходимо внести соответствующие изменения в команды.

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

Подключите схему:

Схема для этого проекта с предоставленным кодом очень проста для макета. Ниже приведены схемы для трех микросхем:

Начните с подключения контактов Vdd к источнику положительного напряжения от 4,5 до 6 вольт, а контакта Vss — к земле. Для 40-контактного PIC16F887 и 14-контактного PIC16F688 потребуется подтягивающий резистор на главном выводе сброса. К любому или всем контактам PORTC (или контактам GPIO для PIC12F675) подключите светодиоды с токоограничивающими резисторами на землю.

alexxlab

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

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