Программы для pic контроллеров. Программирование PIC-контроллеров: обзор средств разработки и инструментов

Как выбрать среду разработки для PIC-контроллеров. Какие инструменты нужны для программирования микроконтроллеров PIC. Как настроить и использовать MPLAB IDE для создания проектов. Как отлаживать и прошивать программы для PIC-микроконтроллеров.

Содержание

Особенности и применение PIC-микроконтроллеров

PIC-микроконтроллеры от компании Microchip остаются популярным выбором для многих встраиваемых систем благодаря ряду преимуществ:

  • Низкое энергопотребление
  • Компактные размеры
  • Невысокая стоимость
  • Широкий выбор моделей с различным функционалом
  • Хорошая поддержка от производителя

Эти микроконтроллеры отлично подходят для создания недорогих компактных устройств с низким энергопотреблением, не требующих сложной обработки данных. Типичные области применения PIC-микроконтроллеров включают:

  • Бытовая электроника
  • Промышленная автоматика
  • Автомобильная электроника
  • Измерительное оборудование
  • Системы «умного дома»
  • Медицинские приборы

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


Обзор средств разработки для PIC-микроконтроллеров

Для программирования PIC-микроконтроллеров доступен широкий выбор программных и аппаратных средств разработки. Рассмотрим основные инструменты, необходимые для создания проектов на базе PIC:

Интегрированные среды разработки (IDE)

IDE предоставляют комплексный набор инструментов для написания, отладки и компиляции кода. Наиболее популярные среды:

  • MPLAB X IDE — официальная бесплатная среда от Microchip
  • MikroC PRO for PIC — платная среда с удобным C-компилятором
  • CCS PIC C Compiler — платный C-компилятор со встроенной IDE
  • Flowcode — графическая среда программирования

Компиляторы

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

  • XC8, XC16, XC32 — бесплатные C-компиляторы от Microchip
  • HI-TECH C — оптимизирующий C-компилятор
  • CCS C Compiler — популярный платный C-компилятор
  • MPASM — бесплатный ассемблер от Microchip

Программаторы и отладчики

Для записи программы в микроконтроллер и отладки необходимо специальное оборудование:


  • PICkit — бюджетные программаторы от Microchip
  • ICD — внутрисхемные отладчики
  • REAL ICE — мощный отладчик реального времени
  • MPLAB SNAP — недорогой программатор-отладчик

Настройка и использование MPLAB IDE

MPLAB IDE является бесплатной интегрированной средой разработки от компании Microchip для создания проектов на базе PIC-микроконтроллеров. Рассмотрим основные этапы работы с MPLAB IDE:

Установка MPLAB IDE

Для установки MPLAB IDE выполните следующие шаги:

  1. Перейдите на официальный сайт Microchip и скачайте последнюю версию MPLAB X IDE
  2. Запустите установочный файл и следуйте инструкциям мастера установки
  3. При необходимости установите дополнительные компоненты, такие как компиляторы XC8/XC16/XC32
  4. После завершения установки запустите MPLAB X IDE

Создание нового проекта

Для создания нового проекта в MPLAB IDE:

  1. Выберите File -> New Project
  2. В мастере создания проекта укажите тип проекта (например, Standalone Project)
  3. Выберите семейство и модель используемого PIC-микроконтроллера
  4. Укажите компилятор (например, XC8 для 8-битных PIC)
  5. Задайте имя и расположение проекта
  6. Нажмите Finish для создания проекта

Написание кода

После создания проекта можно приступать к написанию кода:


  1. Создайте новый файл исходного кода (File ->
    New File)
  2. Выберите язык программирования (C или ассемблер)
  3. Напишите код программы, используя встроенный редактор
  4. Сохраните файл в папке проекта

Компиляция проекта

Для компиляции проекта выполните следующие действия:

  1. Выберите пункт меню Run -> Build Project
  2. MPLAB IDE запустит процесс компиляции
  3. Проверьте окно Output на наличие ошибок или предупреждений
  4. При успешной компиляции будет создан hex-файл для программирования микроконтроллера

Отладка программ в MPLAB IDE

MPLAB IDE предоставляет мощные возможности для отладки программ. Основные инструменты отладки включают:

Симулятор MPLAB SIM

Встроенный симулятор позволяет отлаживать программу без реального оборудования:

  • Выполнение программы по шагам
  • Установка точек останова
  • Просмотр и изменение значений регистров и переменных
  • Эмуляция входных сигналов

Аппаратные отладчики

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

  • PICkit — бюджетный вариант для начинающих
  • ICD — более функциональный отладчик
  • REAL ICE — профессиональный отладчик реального времени

Аппаратные отладчики позволяют:


  • Пошагово выполнять программу на реальном микроконтроллере
  • Устанавливать точки останова в программе
  • Просматривать содержимое регистров и памяти
  • Измерять реальные временные характеристики

Программирование PIC-микроконтроллеров

После отладки программы ее необходимо записать в память микроконтроллера. Для этого используются программаторы:

Подключение программатора

Для подключения программатора к MPLAB IDE:

  1. Подключите программатор к компьютеру через USB
  2. В MPLAB IDE выберите Tools -> Select Programmer
  3. Укажите модель вашего программатора
  4. Нажмите Connect для установки соединения

Запись программы в микроконтроллер

Для записи программы в PIC-микроконтроллер:

  1. Убедитесь, что проект успешно скомпилирован
  2. Выберите пункт меню Programmer -> Program Device
  3. MPLAB IDE запустит процесс программирования
  4. Дождитесь сообщения об успешной записи

После программирования микроконтроллер готов к работе с новой прошивкой.

Интеграция MATLAB/Simulink с MPLAB

Для разработки более сложных систем управления можно использовать связку MATLAB/Simulink и MPLAB IDE. Это позволяет создавать программы для PIC-контроллеров на языке графического программирования Simulink.


Преимущества использования Simulink

  • Визуальное программирование с помощью блок-схем
  • Богатая библиотека готовых компонентов
  • Возможность моделирования и симуляции
  • Автоматическая генерация кода для микроконтроллера

Настройка взаимодействия Simulink и MPLAB

Для интеграции Simulink с MPLAB необходимо:

  1. Установить MATLAB и Simulink
  2. Установить дополнение Embedded Coder
  3. Установить компилятор C для PIC (например, XC16)
  4. Настроить пути к компилятору в Simulink
  5. Установить блоки поддержки PIC для Simulink

Создание проекта в Simulink

Процесс создания проекта для PIC в Simulink включает:

  1. Создание модели устройства из блоков Simulink
  2. Настройку параметров целевого микроконтроллера
  3. Симуляцию работы модели
  4. Автоматическую генерацию C-кода
  5. Компиляцию и программирование микроконтроллера через MPLAB

Выбор оптимальных инструментов разработки

При выборе средств разработки для PIC-микроконтроллеров следует учитывать несколько факторов:

Уровень сложности проекта

  • Для простых проектов достаточно MPLAB IDE и компилятора XC8
  • Сложные проекты могут потребовать использования MATLAB/Simulink

Опыт разработчика

  • Начинающим подойдут визуальные среды вроде Flowcode
  • Опытные разработчики оценят возможности MPLAB X IDE

Бюджет проекта

  • Бесплатные инструменты: MPLAB IDE, XC компиляторы
  • Платные решения: MikroC PRO, CCS C Compiler

Требования к производительности

  • Для максимальной оптимизации кода подойдут ассемблер или HI-TECH C
  • Для быстрой разработки удобнее использовать C-компиляторы

Выбор оптимального набора инструментов позволит повысить эффективность разработки проектов на базе PIC-микроконтроллеров.



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

PCB CAD Черчение схем Аудио-софт Микроконтроллеры Измерения Генераторы Расчеты Android Разное

Atmel Studio

Интегрированная среда разработки (IDE) от компании Atmel для разработки приложений под микроконтроллеры ARM Cortex-M и AVR. Freeware

Подробнее

AVRDUDE

Консольная программа для считывания, изменения и записи содержимого памяти микроконтроллеров архитектуры AVR, применяющая технологию внутрисхемного программирования. Есть русифицированные графические оболочки. Freeware

Подробнее

WinAVR

Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. Freeware

Подробнее

BASCOM-AVR

Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику. Freeware (бесплатная с ограничением на код 4 кБ) и Shareware

Подробнее

CodeVisionAVR

IDE для AVR микроконтроллеров. Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR, формирует емкий и результативный программный код. Платная, есть бесплатная Evaluation-версия с ограничением на код 4 кБ.

Подробнее

VMLAB

Инструмент для разработки и отладки программного кода, а также моделирования работы радиотехнических устройств на базе AVR микроконтроллеров. Freeware

Подробнее

MPLAB

Единая бесплатная интегрированная среда разработки для контроллеров производства Microchip

Подробнее

MPIDE

Среда разработки, выполненная на базе открытой системы Arduino IDE и предназначенная специально для контроллеров PIC32 от компании Microchip Technology.

Подробнее

WinPic800

Небольшой, но весьма эффективный бесплатный программный пакет для прошивки PIC-микроконтроллеров различных серий. Есть русский язык.

Подробнее

PICPgm

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

Подробнее

CooCox CoIDE

Бесплатная высокоинтегрированная программная среда, предназначенная для разработки кода микроконтроллеров архитектуры ARM и др.

Подробнее

Keil uVision

Среда разработки, представляющая собой набор утилит для выполнения полного комплекса мероприятий по написанию программного обеспечения для микроконтроллеров различных семейств. Платная, но есть демоверсия с рядом ограничений, в т.ч. на размер кода — не более 32 КБ.

Подробнее

IAR Embedded Workbench

Многофункциональная среда разработки приложений на языках C, C++ и ассемблере для целого ряда микроконтроллеров от различных производителей. Среда разработки платная, но бесплатная версия с ограничениями на размер кода в зависимости от микроконтроллера.

Подробнее

Flowcode

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

Подробнее

Algorithm Builder

Бесплатная графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR от отечественных разработчиков.

Подробнее

MikroC

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

Подробнее

mikroPascal

Мощная среда разработки приложений на языке Паскаль для различных архитектур микроконтроллеров. Программа платная. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

Подробнее

mikroBasic

Среда разработки программ на языке Бейсик для микроконтроллеров различных производителей. Программа платная от 199$. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

Подробнее

MicroCode Studio Plus

Программа для создания и отладки кода, написанного на языке программирования BASIC, под PIC-микроконтроллеры. Программа платная 50$. MicroCode Studio – облегченный, бесплатный вариант с ограничением на кол-во строк кода.

Подробнее

IC Prog

Одна из самых популярных бесплатных оболочек для программирования, поддерживающая огромное число микроконтроллеров, ППЗУ и адаптеров различной конструкции. На русском языке.

Подробнее

Pony Prog 2000

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

Подробнее

SinaProg

Графическая оболочка для программы AVRdude, включающая в себя простой и функциональный AVR fuse-калькулятор. Freeware.

Подробнее

AVR8 Burn-O-Mat

Графическая оболочка для популярной программы AVRDUDE, использующейся при прошивке микроконтроллеров компании Atmel. Freeware.

Подробнее

Khazama AVR Programmer

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

Подробнее

UniProf

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

Подробнее

eXtreme Burner — AVR

Бесплатное программное обеспечение, предназначенное для прошивки AVR-микроконтроллеров.

Подробнее

Code Composer Studio

Интегральная среда проектирования, предназначенная для создания программного обеспечения, использующегося в процессорах и микроконтроллерах компании Texas Instruments Incorporated. Программа платная, бесплатная версия CCS-FREE с рядом ограничений.

Подробнее

TivaWare

Набор высококачественных, полноценных библиотек для контроллеров семейства TIVA от Texas Instruments. Freeware.

Подробнее

FastAVR

Один из лучших компиляторов Basic-подобного языка для серии восьмибитных микроконтроллеров AVR.

Подробнее

Atollic TrueSTUDIO

Интегрированная среда разработки программ для ARM-процессоров, включающая в себя GNU компилятор и отладчик. Среда разработки платная, но есть бесплатная версия TrueSTUDIO Lite с рядом ограничений.

Подробнее

Sourcery CodeBench

Самодостаточная интегрированная среда разработки, предназначенная для создания приложений на C/C++ для IA32, ColdFire, Power, MIPS, ARM и некоторых других архитектур микроконтроллерных устройств. Платная 400$ (есть 30-дневная ознакомительная версия)

Подробнее

CODESYS

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

Подробнее

Flash Magic

Бесплатное приложение для программирования микроконтроллеров компании NXP Semiconductors

Подробнее

STEP 7-Micro/WIN

Простое и удобное программное обеспечение, созданное для работы с программируемыми контроллерами серии SIMATIC S7-200 компании Siemens AG. Платная.

Подробнее

PIC Simulator Studio

многофункциональное и высокопроизводительное программное обеспечение, предназначенное в первую очередь для симуляции в реальном времени цифровых и аналого-цифровых схем, ядром которых выступает микроконтроллер PIC micro. Бесплатное

Подробнее

PIC Simulator IDE

Программа, предназначенная для отладки кода контроллеров microPIC компании Microchip Technology. Платная от 39 евро (есть ознакомительная версия с ограничениями)

Подробнее

4D Workshop IDE

Специализированная программная среда, предназначенная для работы с микропроцессорами в графических контроллерах и готовых дисплейных модулях компании 4D Systems. Freeware.

Подробнее

Средства программирования PIC-контроллеров / Хабр

Введение

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

Миниатюрные PIC контроллеры хороши для построения преобразователей интерфейсов последовательной передачи данных, для реализации функций «прием – обработка – передача данных» и несложных регуляторов систем автоматического управления.

Компания Microchip распространяет MPLAB — бесплатную интегрированную среду редактирования и отладки программ, которая записывает бинарные файлы в микроконтроллеры PIC через программаторы.

Взаимодействие MPLAB и Matlab/Simulink позволяет разрабатывать программы для PIC-контроллеров в среде Simulink — графического моделирования и анализа динамических систем. В этой работе рассматриваются средства программирования PIC контроллеров: MPLAB, Matlab/Simulink и программатор PIC-KIT3 в следующих разделах.

• Характеристики миниатюрного PIC контроллера PIC12F629
• Интегрированная среда разработки MPLAB IDE
• Подключение Matlab/Simulink к MPLAB
• Подключение программатора PIC-KIT3

Характеристики миниатюрного PIC-контроллера

Семейство РIС12ххх содержит контроллеры в миниатюрном 8–выводном корпусе со встроенным тактовым генератором. Контроллеры имеют RISC–архитектуру и обеспечивают выполнение большинства команд процессора за один машинный цикл.

Для примера, ниже даны характеристики недорогого компактного 8-разрядного контроллера PIC12F629 с многофункциональными портами, малым потреблением и широким диапазоном питания [1].

• Архитектура: RISC
• Напряжение питания VDD: от 2,0В до 5,5В (< 6,5В)
• Потребление:
— <1,0 мА @ 5,5В, 4МГц
— 20 мкА (тип) @ 32 кГц, 2,0В
— <1,0 мкА (тип) в режиме SLEEP@2,0В
• Рассеиваемая мощность: 0,8Вт
• Многофункциональные каналы ввода/вывода: 6/5
• Максимальный выходной ток портов GPIO: 125мА
• Ток через программируемые внутренние подтягивающие резисторы портов: ≥50 (250) ≤400 мкА @ 5,0В
• Разрядность контроллера: 8
• Тактовая частота от внешнего генератора: 20 МГц
Длительность машинного цикла: 200 нс
• Тактовая частота от внутреннего RC генератора: 4 МГц ±1%
Длительность машинного цикла: 1мкс
• FLASH память программ: 1К
Число циклов стирание/запись: ≥1000
• ОЗУ память данных: 64
• EEPROM память данных: 128
Число циклов стирание/запись: ≥10K (-40оС ≤TA≤ +125 оС)
• Аппаратные регистры специального назначения: 16
• Список команд: 35 инструкций, все команды выполняются за один машинный цикл,
кроме команд перехода, выполняемых за 2 цикла
• Аппаратный стек: 8 уровней
• Таймер/счетчик ТМR0: 8-разрядный с предделителем
• Таймер/счетчик ТМR1: 16-разрядный с предделителем

Дополнительные особенности:

• Сброс по включению питания (POR)
• Таймер сброса (PWRTтаймер ожидания запуска генератора (OST
• Сброс по снижению напряжения питания (BOD)
• Сторожевой таймер WDT
• Мультиплексируемый вывод -MCLR
• Система прерываний по изменению уровня сигнала на входах
• Индивидуально программируемые для каждого входа подтягивающие резисторы
• Программируемая защита входа
• Режим пониженного энергопотребления SLEEP
• Выбор режима работы тактового генератора
• Внутрисхемное программирование ICSP с использованием двух выводов
• Четыре пользовательские ID ячейки

Предельная рабочая температура для Е исполнения (расширенный диапазон) от -40оС до +125 оС;
Температура хранения от -65оС до +150 оС.

КМОП технология контроллера обеспечивает полностью статический режим работы, при котором остановка тактового генератора не приводит к потере логических состояний внутренних узлов.
Микроконтроллер PIC12F629 имеет 6-разрядный порт ввода/вывода GPIO. Один вывод GP3 порта GPIO работает только на вход, остальные выводы можно сконфигурировать для работы как на вход так и на выход. Каждый вывод GPIO имеет индивидуальный бит разрешения прерываний по изменению уровня сигнала на входах и бит включения внутреннего подтягивающего резистора.

Интегрированная среда разработки MPLAB IDE

MPLAB IDE — бесплатная интегрированная среда разработки ПО для микроконтроллеров PIC включает средства для создания, редактирования, отладки, трансляции и компоновки программ, записи машинного кода в микроконтроллеры через программаторы.

Загрузка MPLAB IDE

Бесплатные версии MPLAB (включая MPLAB 8.92) хранятся на сайте компании Microchip в разделе «DOWNLOAD ARCHIVE».

Создание проекта

Пример создания проекта программ PIC контроллера в среде MPLAB включает следующие шаги [2].

1. Вызов менеджера проекта.

2. Выбор типа PIC микроконтроллера.

3. Выбор компилятора, например, Microchip MPASM для ассемблера.

4. Выбор пути к каталогу проекта (клавиша Browse…) и ввод имени проекта.

5. Подключение файлов к проекту в окне Project Wizard → Step Four можно не выполнять. Это можно сделать позднее, внутри активного проекта. Клавиша Next открывает следующее окно.

6. Завершение создания проекта (клавиша Finish).

В результате создания проекта FirstPrMPLAB интерфейс MPLAB принимает вид, показанный на Рис. 1.


Рис. 1. Интерфейс среды MPLAB v8.92 и шаблон проекта.

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

Создание программы в MPLAB можно выполнить в следующей последовательности.

1. Открыть редактор программ: меню → File → New. Изначально программе присвоено имя Untitled.

2. Набрать или скопировать программу, например, на ассемблере.

3. Сохранить программу под другим именем (меню → File → Save As), например, FirstPrMPLAB.asm.


Рис. 2. Пример простейшей программы (на ассемблере) вывода сигналов через порты контроллера GP0, GP1, GP2, GP4, GP5 на максимальной частоте.

Запись ‘1’ в разряде регистра TRISIO переводит соответствующий выходной буфер в 3-е состояние, в этом случае порт GP может работать только на вход. Установка нуля в TRISIO настраивает работу порта GP на выход.

Примечание. По спецификации PIC12F629 порт GP3 микроконтроллера работает только на вход (соответствующий бит регистра TRISIO не сбрасывается – всегда находится в ‘1’).

Регистры TRISIO и GPIO находятся в разных банках области памяти. Переключение банков выполняется 5-м битом регистра STATUS.

Любая программа на ассемблере начинается директивой org и заканчивается директивой end. Переход goto Metka обеспечивает циклическое выполнение программы.

В программе (Рис. 2) используются следующие обозначения.

Директива LIST — назначение типа контроллера
Директива __CONFIG — установка значений битов конфигурации контроллера
Директива equ — присвоение числового значения
Директива org 0 — начало выполнения программы с адреса 0
Команда bsf — устанавливает бит указанного регистра в 1
Команда bсf — сбрасывает бит указанного регистра в 0
Команда movlw — записывает константу в регистр W
Команда movwf — копирует содержимое регистра W в указанный регистр
Команда goto — обеспечивает переход без условия на строку с меткой
Директива end — конец программы

Установка требуемой конфигурации микроконтроллера
Конфигурация микроконтроллера PIC12F629 зависит от настроек слова конфигурации (2007h), которые можно задать в программе через директиву __CONFIG.

Непосредственно или через окно MPLAB: меню → Configure → Configuration Bits:

Где:

Бит 2-0 — FOSC2:FOSC0. Выбор тактового генератора
111 — Внешний RC генератор. Подключается к выводу GP5. GP4 работает как CLKOUT
110 — Внешний RC генератор. Подключается к выводу GP5. GP4 работает как ввод/вывод
101 — Внутренний RC генератор 4МГц. GP5 работает как ввод/вывод. GP4 — как CLKOUT
100 — Внутренний RC генератор 4МГц. GP5 и GP4 работают как ввод/вывод
011 — EC генератор. GP4 работает как ввод/вывод. GP5 — как CLKIN
010 — HC генератор. Резонатор подключается к GP4 и GP5
001 — XT генератор. Резонатор подключается к GP4 и GP5
000 — LP генератор. Резонатор подключается к GP4 и GP5

Бит 3 — WDTE: настройка сторожевого таймера (Watchdog Timer)
1 — WDTE включен
0 — WDTE выключен

Сторожевой таймер предохраняет микроконтроллер от зависания – перезапускает программу через определенный интервал времени если таймер не был сброшен. Период таймера устанавливается в регистре OPTION_REG. Обнуление сторожевого таймера вызывается командой CLRWDT.

Бит 4 — PWRTE: Разрешение работы таймера включения питания:
1 — PWRT выключен
0 — PWRT включен

Таймер задерживает микроконтроллер в состоянии сброса при подаче питания VDD.

Бит 5 — MCLR: Выбор режима работы вывода GP3/-MCLR
1 — работает как -MCLR
0 — работает как порт ввода-вывода GP3

Бит 6 — BODEN: Разрешение сброса по снижению напряжения питания (как правило < 2.0В)
1 — разрешен сброс BOR
0 — запрещен сброс BOR автоматически включается таймер

При разрешении сброса BOR автоматически включается таймер PWRT

Бит 7 — .CP: Бит защиты памяти программ от чтения программатором
1 Защита выключена
0 Защита включена

При выключения защиты вся память программ стирается

Бит 8 — .CPD: Бит защиты EPROM памяти данных
1 Защита выключена
0 Защита включена

После выключения защиты вся информация будет стерта

Бит 11-9 — Не используются: Читается как ‘1’.

Бит 13-12 — BG1:BG0. Биты калибровки сброса по снижению питания
00 — нижний предел калибровки
11 — верхний предел калибровки

Добавление программы к проекту

Пример добавления программы к проекту показан на (Рис. 3).

Рис. 3. Добавление программы FirstPrMPLAB.asm к проекту FirstPrMPLAB.mcp

Сохранить материалы проекта можно командой: меню → File → Save Workspace.

Компиляция

Чтобы создать бинарный файл с расширением hex для прошивки микроконтроллера необходимо откомпилировать проект. Запуск компиляции выполняется командой меню → Project → Build All. Результаты компиляции можно увидеть в окне Output (Рис. 1). Если в программе нет ошибок, то компилятор выдаёт сообщение об успешной компиляции: BUILD SUCCEEDED, загрузочный HEX файл можно найти в рабочем каталоге:


Отладка программы

Отладку программы в среде MPLAB IDE можно выполнить при помощи аппаратного эмулятора MPLAB REAL ICE или программного симулятора MPLAB SIM. Запуск последнего выполняется как показано на Рис. 4.

Рис. 4. Подключение к симулятору MPLAB SIM для отладки программы.

После запуска отладчика в окне Output (Рис. 1) появляется закладка MPLAB SIM, куда MPLAB выводит текущую информацию отладчика. Команды отладчика (Рис. 5) после запуска становятся активными.

Рис. 5. Команды отладчика.

Команды отладчика:

• Run — Непрерывное выполнение программы до точки останова (Breakpoint) если таковая установлена.
• Halt — Остановка программы на текущем шаге выполнения.
• Animate — Анимация непрерывного выполнения программы.
• Step Into — Выполнение по шагам (вызовы Call выполняются за один шаг).
• Step Over — Выполнение по шагам включая команды вызовов Call.
• Reset — Начальная установка программы. Переход указателя на первую команду.
• Breakpoints — Отображение списка точек останова. Обработка списка.

При выполнении программы по шагам текущий шаг выделяется стрелкой (Рис. 6). Непрерывное выполнение программы останавливается командой Halt или достижением программой точки останова. Точка останова устанавливается/снимается в строке программы двойным щелчком.
Пример программы на ассемблере, которая с максимальной скоростью меняет состояние портов контроллера показан на Рис. 6 (справа). Программа передаёт в регистр портов GPIO данные b’10101010’ и b’01010101’. Поскольку в регистре GPIO передачу данных в порты контроллера выполняют не все разряды, а только 0,1,2,4 и 5, то состояние регистра GPIO (Рис. 6, слева) отличается значениями: b’00100010’ и b’00010101’.


Рис. 6. Состояние регистров специального назначения контроллера на момент выполнения программы (слева) и выполняемая по шагам программа (справа).

В процессе отладки можно наблюдать за состоянием регистров, переменных, памяти в соответствующих окнах, открываемых в разделе View основного меню. В процессе отладки можно вносить изменения в код программы, содержимое регистров, памяти, изменять значения переменных. После изменения кода необходимо перекомпилировать программу. Изменение содержимого регистров, памяти и значения переменных (окна раздела View: Special Function Register, File Register, EEPROM, Watch) не требует перекомпиляции.

Входные сигналы портов модели микроконтоллера можно задать в разделе Debugger → Stimulus. Устанавливаемые состояния сигналов портов привязываются к времени (тактам) отладки.

Иногда результаты выполнения программы в режиме отладки не соответствуют выполнению этой же программы в реальном контроллере, так, например, отладчик программы (Рис. 6) без инструкций movlw 0x07 и movwf cmcon показывает, что выходы GP0 и GP1 регистра GPIO не изменяются — находятся в нулевом состоянии, содержимое регистра GPIO попеременно равно 0x14 и 0х20. Однако, контроллер, выполняющий программу без указанных инструкций, показывает на осциллографе циклическую работу всех пяти выходов: 0x15 и 0х22, включая GP0 и GP1 (см. Рис. 7).

Осциллограммы контроллера, выполняющего циклы программы Рис. 6 (Metka… goto Metka) показаны на Рис. 7.


Рис. 7. Осциллограммы выхода GP0 (слева) и GP1 (справа) микроконтроллера PIC12F629, работающего от внутреннего 4МГц RC генератора. Программа (Рис. 6) формирует сигналы максимальной частоты на всех выходах контроллера. За период сигналов 5.3 мкс выполняется 5 команд (6 машинных циклов), амплитуда GP0 сигнала на осциллограмме равна 4.6В, измеренное программатором питание контроллера 4.75В.

Прошивка микроконтроллера

Для записи программы в микроконтроллер (прошивки контроллера) необходимо микроконтроллер подключить к интегрированной среде MPLAB IDE через программатор. Организация подключения показана ниже в разделе «Подключение программатора PIC-KIT3».

Примечание. В контроллер PIC12F629 записана заводская калибровочная константа настройки частоты внутреннего тактового генератора. При необходимости её можно прочитать и восстановить средствами MPLAB с использованием программатора.

Команды для работы с программатором и изменения его настроек находятся в меню MPLAB Programmer. Тип программатора в MPLAB выбирается в разделе: меню → Programmer → Select Programmer.

Рис. 8. Выбор программатора для подключения к среде MPLAB.

Прошивка микроконтроллера через программатор запускается командой: меню → Programmer → Program. Сообщение об успешной прошивке показано на Рис. 9.

Рис. 9. Запуск прошивки микроконтроллера и вид сообщения об успешной прошивке.

Примечание: Во время прошивки микроконтроллера у программатора PIC-KIT3 мигает желтый светодиод.

Подключение MATLAB/SIMULINK к MPLAB

В системе моделирования динамических систем Simulink (приложение к Matlab) на языке графического программирования [7] можно разрабатывать программы для семейства PIC контроллеров имеющих АЦП/ЦАП, счетчики, таймеры, ШИМ, DMA, интерфейсы UART, SPI, CAN, I2C и др.

Пример Simulink программы PIC контроллера показан на Рис. 10.

Рис. 10. Пример программы на языке графического программирования для PIC контроллера выполненной в среде моделирования динамических систем Simulink.

Взаимодействие средств разработки и компиляции программ для PIC контроллеров в Simulink показано на Рис. 11 [6].

Рис. 11. Структура средств построения адекватной модели PIC контроллера на языке графического программирования.

Для построения среды разработки необходимы следующие компоненты Matlab:

• Simulink
• Real-Time Workshop Embedded Coder
• Real-Time Workshop

И Cи компилятор компании Microchip:

• C30 для контроллеров PIC24, dsPIC30 и PIC33
• или C32 для контроллеров серии PIC32

Установка компонентов Matlab

На сайте имеются Simulink библиотеки (dsPIC Toolbox) для PIC контроллеров и версий Matlab c R2006a по R2012a:

Для скачивания библиотеки необходимо зарегистрироваться. Программы поддерживают работу 100 микроконтроллеров из серий PIC 16MC, 24F, 30F, 32MC, 33F, 56GP, 64MC, 128MC, 128GP.
Бесплатные версии работают с Simulink моделями PIC контроллеров имеющих до 7 портов ввода-вывода.

Для установки dsPIC Toolbox — библиотеки блоков PIC контроллеров для Matlab/Simulink необходимо [4]:

• Скачать dsPIC Toolbox для требуемой версии Matlab.
• Распаковать zip файл в папке, в которой будут установлены Simulink блоки.
• Запустить Matlab.
• Настроить текущий каталог Matlab на папку с распакованным файлом.
• Открыть и запустить файл install_dsPIC_R2012a.m, например, кнопкой меню или клавишей клавиатуры.

Библиотеки dsPIC и примеры Simulink моделей устанавливаются в текущую папку Matlab (Рис. 12). Установленные блоки для моделирования PIC контроллеров доступны в разделе Embedded Target for Microchip dsPIC библиотеки Simulink (Рис. 13).

Рис. 12. Содержимое текущего каталога после выполнения install_dsPIC_R2012a. m.

Рис. 13. Блоки, установленной библиотеки «Embedded Target for Microchip dsPIC».

Для совместной компиляции Simulink модели средствами Matlab и MPLAB необходимо прописать в переменной окружения path Matlab с высшим приоритетом путь к каталогу MPLAB с файлами MplabOpenModel.m, MplabGetBuildinfo.m и getHardwareConfigs.m:

>> path('c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\',path) 

Установка Си компилятора MPLAB

Компиляторы MPLAB находятся на сайте Microchip (Download Archive → MPLAB C Compiler for PIC24 and dsPIC DSCs). Для установки демонстрационной версии компилятора С30 необходимо его скачать по ссылке PIC24/dsPIC v3.25 (Рис. 14) и запустить принятый файл mplabc30-v3.25-comboUpgrade.exe.

Рис. 14. Версии Си компилятора (слева) и режимы его установки (справа).

Примечание. Работа выполнена с версией v3. 25 компилятора С30 для PIC24/dsPIC. Проверка показала, что следующая версия v3.30 не поддерживает совместную компиляцию моделей Matlab R2012a (dsPIC Toolbox) без ошибок.

Установочный exe файл создаёт в разделе c:\Program Files (x86)\Microchip\ новый каталог mplabc30 с файлами:

Рис. 15. Каталоги компилятора C30 MPLAB.

Последовательность Simulink программирования для PIC контроллеров

1. Создайте рабочий каталог и скопируйте в него *.mdl примеры из раздела example (см. Рис. 12).
2. Загрузите Matlab. Настройте его на рабочий каталог.
3. Включите в переменную окружения path Matlab с высшим приоритетом путь к MPLAB — каталогу c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\:

>> path('c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\',path) 

Примечание: Использование команды >>path без аргументов приводит к отображению списка путей переменной path в окне команд (Command Window). Удалить путь из переменной path можно командой rmpath, например:

>>rmpath(' c:\Program Files\Microchip\MPLAB IDE\Tools\MATLAB\')

4. Создайте Simulink модель для PIC контроллера, используя блоки библиотеки «Embedded Target for Microchip dsPIC» (Рис. 13), или загрузите готовую модель, например, Servo_ADC.mdl.

Тип контроллера, для которого разрабатывается Simulink модель, выбирается из списка в блоке Master > PIC (Рис. 16, Рис. 10), который должен быть включен в состав модели.

Рис. 16. Выбор типа контроллера в блоке Master модели.

5. Проверьте настройки конфигурации модели: Меню → Simulation → Configuration Parameters <Ctrl+E>. В строке ввода System target file раздела Code Generation должен быть указан компилятор S-функций dspic.tlc (Рис. 17). Выбор dspic.tlc настраивает все остальные параметры конфигурации модели, включая шаг и метод интегрирования.

Рис. 17. Выбор компилятора S-функций dspic.tlc для моделей PIC-контроллеров в разделе «основное меню → Simulation → Configuration Parameters → Code Generation».

6. Откомпилируйте модель tmp_Servo_ADC.mdl. Запуск компилятора показан на Рис. 18.

Рис. 18. Запуск компилятора Simulink модели.

В результате успешной компиляции (сообщение: ### Successful completion of build procedure for model: Servo_ADC) в текущем каталоге создаются HEX файл для прошивки PIC контроллера и MCP проект среды MPLAB (Рис. 19).

Рис. 19. Результаты компиляции модели.

Запуск модели в Matlab/Simulink выполняется в окне модели кнопкой, условное время моделирования устанавливается в строке:

Управление компиляцией Simulink моделей из среды MPLAB

Управление компиляцией Simulink модели можно выполнять командами раздела Matlab/Simulink среды MPLAB, например, в следующем порядке.

1. Разработайте модель PIC контроллера в Matlab/Simulink. Сохраните модель.
2. Запустите MPLAB.
3. Выберите MPLAB меню → Tools → Matlab/Simulink и новый раздел появится в составе меню.

4. В разделе Matlab/Simulink откройте Simulink модель, например, Servo_ADC, командой «Matlab/Simulink → Specify Simulink Model Name → Open → File name → Servo_ADC.mdl → Open». Команда Open запускает Matlab и открывает модель.

5. Откомпилируйте модель и создайте MCP проект командами Generate Codes или Generate Codes and Import Files. Перевод MDL модели в MCP проект выполняется TLC компилятором Matlab.
В результате создаётся проект MPLAB:

со скриптами модели на языке Си.

6. Откройте проект: меню → Project → Open → Servo_ADC.mcp (Рис. 20).

Рис. 20. Структура MCP проекта Simulink модели Servo_ADC.mdl в среде MPLAB.
Проект Simulink модели готов для редактирования, отладки и компиляции в машинные коды контроллера средствами MPLAB.

Подключение программатора PIC-KIT3

Узнать какие программаторы записывают бинарный код в конкретный микроконтроллер можно в разделе меню → Configure → Select Device среды MPLAB 8.92. Например, программатор PIC-KIT3 не поддерживает контроллер PIC12C508A (Рис. 21, левый рисунок), но работает с контроллером PIC12F629 (Рис. 21, правый рисунок).

Рис. 21. Перечень программаторов для прошивки микроконтроллера.

Информацию об установленном драйвере программатора PIC-KIT3 можно запросить у менеджера устройств ОС Windows (Рис. 22).

Рис. 22. Информация об установленном драйвере программатора PIC-KIT3.

Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3 показана на Рис. 23.

Рис. 23. Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3.

Вывод PGM программатора для прошивки контроллеров PIC12F629 не используется. Наличие вывода PGM для разных типов PIC контроллеров показано на Рис. 24. Вывод PGM рекомендуется «притягивать» к общему проводу (GND), через резистор, номиналом 1К [3].

Рис. 24. Выводы PGM PIC контроллеров.

Индикация светодиодов программатора Olimex PIC-KIT3 показана в ниже:

Желтый — Красный — Состояние программатора
Вкл — Выкл — Подключен к USB линии
Вкл — Вкл — Взаимодействие с MPLAB
Мигает — Включен постоянно — Прошивка микроконтроллера

Не следует подключать питание микроконтроллера VDD (Рис. 23) к программатору, если контроллер запитывается от своего источника питания.

При питании микроконтроллера от программатора на линии VDD необходимо установить рабочее напряжение, например, 5В программой MPLAB (Menu → Programmer → Settings → Power), как показано на Рис. 25.

Примечание. При отсутствии напряжения на линии VDD MPLAB IDE выдает сообщение об ошибке: PK3Err0045: You must connect to a target device to use

Рис. 25. Установка напряжения VDD на программаторе PIC-KIT3 программой MPLAB IDE v8.92.

Если программатор не может установить требуемое напряжение, например, 5В при его питании от USB, в которой напряжение меньше 5В, MPLAB IDE выдает сообщение об ошибке: PK3Err0035: Failed to get Device ID. В этом случае, сначала необходимо измерить напряжение программатора — считать его в закладке меню → Programmer → Settings → Status, а затем установить напряжение (не больше измеренного) в закладке меню → Programmer → Settings → Power.

Рис. 26. Измерение (слева) и установка (справа) VDD напряжения программатора PIC-KIT3 программой MPLAB IDE v8.92.

Пример MPLAB сообщения успешного подключения микроконтроллера к программатору по команде меню → Programmer → Reconnect показан на Рис. 27.

Рис. 27. Сообщение MPLAB об успешном подключении микроконтроллера к программатору.

Можно программировать не только отдельный PIC контроллер, но и контроллер, находящийся в составе рабочего устройства. Для программирования PIC контроллера в составе устройства необходимо предусмотреть установку перемычек и токоограничивающих резисторов как показано на Рис. 28 [3].

Рис. 28. Подключение микроконтроллера в составе электронного устройства к программатору.

Заключение

Малоразрядные PIC-контроллеры имеют широкий диапазон питания, низкое потребление и малые габариты. Они программируются на языках низкого уровня. Разработка программ на языке графического программирования Simulink с использованием многочисленных библиотек значительно сокращает время разработки и отладки в сравнении с программированием на уровне ассемблера. Разработанные для PIC-контроллеров Simulink структуры можно использовать и для компьютерного моделирования динамических систем с участием контроллеров. Однако, из-за избыточности кода такой подход применим только для семейств PIC контроллеров с достаточными ресурсами.

Библиографический список

1. PIC12F6XX. Однокристальные 8-разрядные FLASH CMOS микроконтроллеры компании Microchip Technology Incorporated. PIC12F629, PIC12F675. OOO “Микро-чип”. Москва – 2002.
2. Microchip. MPLAB IDE. User’s Guide with MPLAB Editor and MPLAB SIM Simulator
3. ICSP — Внутрисхемное программирование PIC-контроллеров DOC Rev 1.03 (последнее обновление 19.05.2005)
4. MPLAB IDE Help: MATLAB.
5. Introduction to Microchip-SIMULINK Blocksets and MATLAB Plug-in for MPLABIDE Produced by Murali Manohara Chembarpu.
6. Embedded Target for 16 bits PIC.
7. Dr. Bob Davidov. Портал научно-практических публикаций

Основы программирования микроконтроллера PIC | Блог о дизайне печатных плат

Создано: 20 мая 2018 г.
Обновлено: 25 января 2021 г.

Одна вещь, которую я усвоила из воспитания: научить чему-то ребенка может быть невероятно сложно. Хотя они могут быть очень заинтересованы, и у них может быть все время и ресурсы в мире, если ребенок не готов учиться или ему не хватает какого-то важного строительного блока, он может просто не усвоить навык или урок.

К счастью, программирование микроконтроллера PIC (MCU) значительно проще. С помощью правильных инструментов программирования, схемы и функциональной прошивки программист может заставить микроконтроллер PIC вести себя точно так, как нужно. Конечно, чтобы избежать ненужных хлопот и разочарований в будущем, по-прежнему важно придерживаться нескольких важных шагов.

Несмотря на появление одноплатных встроенных контроллеров, таких как Arduino, Raspberry Pi или BeagleBone, микроконтроллер PIC по-прежнему остается актуальным среди инженеров-электронщиков. Микроконтроллеры PIC производства Microchip отличаются простотой использования, универсальными функциями и экономичностью. Программирование микроконтроллеров PIC варьируется от простых 8-битных MUC до мощных 32-битных моделей.

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

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

Вот инструменты, которые потребуются сегодня программисту для программирования PIC-микро:

1. MPLAB X IDE

MPLAB X IDE — это комплексная среда разработки от Microchip. Вам понадобится MPLAB X для написания вашей прошивки, компиляции и сборки, прежде чем вы сможете запрограммировать микроконтроллер PIC. В отличие от дорогих IDE, за которые в прошлом приходилось платить, MPLAB X IDE можно загрузить бесплатно.

Первый шаг — правильная прошивка.

2. PICKIT 4

PICKIT 4 — новейший внутрисхемный отладчик от Microchip PIC, который позволяет программисту эффективно загружать программу в микроконтроллер. Это улучшенная версия своего предшественника PICKIT 3 с добавленной функцией слота для SD-карт, что облегчает программирование на ходу для различных прошивок. При программировании микроконтроллера PIC в лаборатории вам необходимо подключить PICKIT 4 между USB-портом вашего компьютера и контактом программирования микроконтроллера.

3. Схема программирования

Контакты для программирования микроконтроллеров PIC указаны в техническом паспорте. Микроконтроллеры PIC поддерживают либо внутрисхемное последовательное программирование (ICSP), либо внутрисхемную отладку (ICD), причем последнее позволяет инженерам отлаживать прошивку в режиме реального времени. Важно включить схему интерфейса программирования (ICSP или ICD) в конструкцию, к которой будет подключаться PICKIT 4 или PICKIT 3.

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

Когда все инструменты программирования готовы (независимо от ICSP или ICD) и собран прототип, программирование микроконтроллера становится практически интуитивным. Традиционные инструменты программирования требуют от программиста включения оборудования перед загрузкой прошивки. Но программаторы PICKIT могут быть настроены на подачу питания на микроконтроллер до тех пор, пока он не превысит максимально допустимый ток.

Есть два способа загрузить микропрограмму в микроконтроллер PIC. В MPLAB X IDE программист найдет варианты «Запустить проект» или «Отладить проект», а нажатие «Запустить проект» скомпилирует и создаст вашу прошивку в рабочем режиме, а последний создаст отладочную версию прошивки. Вам понадобится время, чтобы убедиться, что конечный продукт запрограммирован с производственной версией прошивки.

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

Советы по проектированию схемы программирования на печатной плате

Расположение контактов программирования на PICKIT 3 и PICKIT 4 аналогично, хотя PICKIT 4 имеет два дополнительных зарезервированных контакта. Прошивка передается через сигнал PGD и PGC с выводом /MCLR, чтобы перевести микроконтроллер в режим программирования.

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

Использование отличного программного обеспечения для проектирования печатных плат, такого как Altium Designer ® , очень помогает вам в разработке схем программирования без помех для микроконтроллеров PIC.

Нужен совет по программированию микроконтроллера PIC? Поговорите с экспертом Altium Designer.

Проекты Джеффа — Программирование микроконтроллеров PIC

 

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

Так получилось, что Microchip пытается облегчить вам задачу, предоставляя дешевых программистов и бесплатное программное обеспечение. Они надеются, что это побудит вас покупать больше их фишек. В результате получается беспроигрышная ситуация.

Итак, в этой статье я намерен показать, как легко запрограммировать микроконтроллер PIC, вложив менее 20 долларов.

Обратите внимание, что эта страница посвящена только программированию процессоров Microchip серии PIC. Существует много других микроконтроллеров (Atmel, TI и т. д.), и для них потребуются другие программисты и программное обеспечение.

Почти все современные микроконтроллеры используют флэш-память для хранения программы. Вот почему программирование микроконтроллера часто называют «перепрошивкой» чипа.

Флэш-память можно много раз стирать и перепрограммировать, а сохраненные данные сохраняются даже при отключении питания. В дополнение к программе в чипе есть другие запоминающие устройства, которые также запрограммированы на одну операцию; к ним относятся параметры конфигурации (иногда называемые «предохранителями»), EEPROM (еще один тип стираемой памяти) и области загрузки. Информация для программирования всего этого содержится в одном файле, который обычно имеет расширение .hex (например, «FirmwareV1.hex»). Часто файл называют «шестнадцатеричным файлом».

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

МКБ3 и МКБ4. Это высококачественные (и дорогие) программаторы/отладчики от Microchip. Они предназначены для использования разработчиками и являются излишними для среднего любителя.

PICkit3 и PICkit4. Это лучший выбор для любителей, так как они недороги и поддерживают все микросхемы производства Microchip. PICkit4 является последним и самым быстрым, но PICkit3 по-прежнему хорошо справляется со своей задачей. Преимущество PICkit3 в том, что многие китайские производители делают дешевые клоны, которые можно найти на eBay.

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

Внутрисхемный отладчик/программатор MPLAB® Snap является новейшей разработкой Microchip и довольно дешев (15 долларов США + доставка). Он отлично справляется со своей задачей, и его можно приобрести у самих Microchip, у дистрибьюторов, таких как Mouser, и на eBay. Это хороший выбор, если вы хотите держаться подальше от китайских клонов PICkit3 9.0006

Если вы просто хотите запрограммировать чипы PIC32, используемые для Maximite и Micromite, еще более дешевой альтернативой является Microbridge. Это основано на одном чипе стоимостью менее 2 долларов США, и у него есть собственная веб-страница здесь. Основная проблема с Microbridge заключается в том, что вам нужно в первую очередь установить прошивку для программирования в чип, поэтому вы в конечном итоге получите ситуацию с курицей и яйцом, требующую покупки программатора, такого как PICkit3 в любом случае.

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

Вы можете купить подлинный PICkit 4 у Microchip за 80 долларов США + доставка (ссылка) или у их дистрибьюторов. Оригинальный PICKit 3 все еще доступен (номер по каталогу PG164130) у некоторых дистрибьюторов, но они постепенно исчезают.

Однако я рекомендую клоны PICkit 3, которые работают так же хорошо, но намного дешевле. В качестве теста я купил один за 25 долларов США с бесплатной доставкой, и я не могу его винить. Программное обеспечение Microchip распознало его как настоящий PICkit 3, и он работал так же хорошо, как и оригинальный продукт.

Хорошим местом для поиска дешевых клонов является eBay. Просто найдите PICkit3. Однако будьте осторожны — многие поставщики также предлагают PICKit 2 по очень низкой цене , но не дайте себя обмануть, вам нужна версия PICKit 3 .

Итак, если вам нужен дешевый метод программирования микроконтроллеров Microchip, покупка клона Pickit 3 будет лучшим выходом. По их смехотворно низким ценам вы можете позволить себе купить один только для программирования одного чипа, а затем добавить его в свой набор инструментов для возможного будущего проекта.

Выше я рекомендовал не покупать PICkit 2, но если у вас есть один из них, вы можете использовать программное обеспечение PICkit2minus, разработанное Яакко Кайрусом. Он поддерживает широкий спектр 8-, 16- и 32-разрядных микроконтроллеров Microchip, включая PIC32, используемый в серии Micromite. Он имеет отличный графический интерфейс пользователя и будет работать с PICkit 3, поэтому его также можно использовать в качестве основного программного обеспечения для программирования как для PICkit 2, так и для PICkit 3.

PICkit2minus можно скачать здесь.

Большинство микроконтроллеров Microchip используют соединение для внутрисхемного последовательного программирования (сокращенно «ICSP») для передачи программы на микросхему. Обычно печатная плата (PCB) имеет разъем для этого, и он будет выглядеть примерно так, как разъем, выделенный на фотографии справа.

Если у вас нет такого разъема (возможно, вы программируете голый чип) вам придется разбираться с подключениями самостоятельно. Следующая таблица, в которой перечислены выводы разъема ICSP, должна помочь:

PIN-код ИМЯ ИСПОЛЬЗОВАНИЕ
1 МКЛР Главный контакт сброса на микроконтроллере
2 Вдд Напряжение питания микроконтроллера
3 Против Заземление питания или нулевой контакт
4 ПГД Сигнал данных программирования
5 ПГС Программирование тактового сигнала
6   — Не используется —


Программатор отслеживает напряжение на контакте 2 (Vdd) и использует его, чтобы определить, действительно ли включена микросхема, которую необходимо запрограммировать. Чтобы начать операцию программирования, программатор подаст на контакт 1 (MCLR) напряжение выше, чем Vdd (обычно от 12 до 15 вольт). Затем он передает данные, используя контакт 4 (PGD) и контакт 5 (PGC). Внутренняя логика чипа возьмет эти данные и запишет их во флэш-память чипа.

На приведенном выше рисунке печатной платы можно подключить PICkit 3 непосредственно к шестиштырьковому разъему ISCP. Контакт 1 разъема PICKit 3 отмечен белым треугольником, а обычно контакт 1 разъема на печатной плате отмечен цифрой 1 или другим символом.

Если вы не можете разместить программатор в пространстве, вам понадобится шестижильный кабель с разъемом «папа» и разъемом «мама» на другом конце, как показано справа (мой клон пришел с этим, что было удобно).

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

Для управления PICkit 3 вам необходимо установить на свой персональный компьютер систему разработки программного обеспечения Microchip MPLAB X. Он поставляется в различных версиях для Windows, Mac OS и Linux. К сожалению, полная установка включает в себя множество вещей, которые вам не нужны (например, полностью интегрированная среда разработки), но важной частью является MPLAB IPE, который является компонентом программиста (IPE означает интегрированная среда программирования). Обычно он устанавливается в виде значка на рабочий стол.

Более простой альтернативой является PICKITminus, который можно скачать здесь.

Когда вы запускаете MPLAB IPE, вы видите довольно простой экран, который позволяет вам указать номер детали чипа и шестнадцатеричный файл для его программирования. Просто выполните пронумерованные шаги, показанные ниже, чтобы запрограммировать свой чип.

Когда вы нажмете кнопку «Программировать», программное обеспечение даст указание PICkit 3 стереть чип, запрограммировать его новой прошивкой, а затем прочитать эту программу, чтобы убедиться, что она была правильно написана. В конце вы должны получить сообщение «Программирование завершено».

Конечно, это может быть не так просто. Три из наиболее распространенных ошибок, с которыми вы можете столкнуться:

« Целевой Vdd не обнаружен «. Обычно это означает, что вы неправильно подключились к разъему для программирования ISCP или что устройство, которое вы пытаетесь запрограммировать, обесточено.

« Не удалось запрограммировать устройство » или « Не удается прочитать идентификатор устройства «. Программатор мог сказать, что вы к чему-то подключились (потому что присутствовал Vdd), но не мог связаться с чипом. Обычно это означает, что что-то мешало линиям MCLR, PGD и/или PGC (т. е. они не были подключены или другие компоненты загружали сигналы).

« Идентификатор целевого устройства не соответствует ожидаемому идентификатору устройства «. Это означает, что программатор обнаружил устройство, отличное от устройства, которое вы указали в шаге 1 выше.

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

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