8-900-374-94-44
[email protected]
Slide Image
Меню

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

Средства программирования 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 мкА (тип) в режиме [email protected],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 контроллеров с достаточными ресурсами.

DSPIC PROGRAM | Микроконтроллер | Электроника | Программирование на С

Its a project to program a DSPIC33EV256gm106, with another identical DSPIC. One master (DSPIC A) and a Slave (DSPIC B)

DSPIC ( A) , send the instruction to the DSPIC B to read a sensor using a ADC port (Analog value), and send the data to the DSPIC A. The communication must be SPI between DSPIC´s.

According to the value of the sensor (0-5V), the DSPIC A must modulate a PWM. Where 0V is 0% and 5V is 100% of the Duty Cycle.

The DSPIC A, also must send the sensor received data to the UART to see the data at the PC (serial comm).

Навыки: Микроконтроллер, Электроника, Программирование на С

Показать больше: simple file read program, read program, file read program, read program list file, serial data read program, read program output vba, place text file read program, spi communication program, serial communication interface program, spi dma program, read program written, simple image read program, program serial communication watcom, usb data read program, serial communication program rs232, write a program that computes and prints the value of k where k is approximated by the series, dbfl have acted as consulting engineers on the belmayne development in dublin's north fringe since its conception in 2000, mpumi's consultant business use electronic manceting to advertise its products, what's the best program to create a logo

( 1 отзыв ) Mex, Mexico

ID проекта: #23249264

Идеальная среда разработки для PIC — личный опыт / Хабр

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

В среду железячников я попал в 2006 году на 4-м курсе учёбы в университете, когда пошёл на производственную практику в научно-технический центр, где, собственно, и работаю по сей день. В то время в нашей компании мейнстримом было использование Keil uVision2 для МК на базе C51 и ARM. Однако мне подсовывали простые задачи под PIC, вроде контроля и управления одним сигналом (кнопка вкл-выкл), и моей первой средой разработки были блокноты — бумажный и компьютерный, плюс книжки бумажные по PIC. Выглядела моя среда разработки примерно так:

Для компиляции файлов мне выдали экзешник компилятора и bat-файл, который использовался мной совершенно бездумно — даже не знаю, что за компилятор там был. В общем, суровые были времена…

Ах, если бы мне кто-то тогда подсказал, что есть такое чудо, как notepad++!

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

MPLAB IDE

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

В её состав входят:

  • CC18 и ещё какой-то компилятор, которые можно выбирать в настройках проекта;
  • хороший набор библиотечных функций;
  • подключаемые inc-файлы описания МК семейства PIC, заточенные под использование в ассемблере;
  • встроенный отладчик и программатор;
  • Но главное — поддержка языка Си — это был для меня глоток свежего воздуха!

Хотя, если присмотреться к этой среде разработки, её убогость и отсталость могут отпугнуть любого мало-мальски привыкшего к хорошим условиям программиста, но я тогда об этом не знал. Справку по встроенным библиотечным функциям надо открывать отдельно и искать, что, где и как называется. Для новичков — непосильная задача. Тем не менее, на тематических форумах люди до сих пор спрашивают, какой компилятор лучше использовать; кто-то так и продолжает использовать MPLAB IDE.
MikroC

Задачи для PIC мне подкидывали всё реже и реже, начали набирать обороты разработки с МК серии C51, ARM7 (не путать с ARMv7!), Cortex-M. Но иногда ко мне снова обращались за помощью в написании программ под PIC, а я в силу любопытства пробовал новые средства разработки.
К тому времени уже давно и активно программировал в Keil uVision3 — возвращаться к допотопному MBLAB IDE совершенно не хотелось. Так я познакомился с MikroC, который поставляется вместе с программаторами PICKit:

Набор плюшек почти такой же как в MBLAB IDE, но всё же побогаче:

  • свой собственный компилятор
  • встроенные библиотеки функций с удобным поиском и доступным описанием;
  • подключаемые h-файлы описания МК семейства PIC;
  • набор дополнительных внешних утилит
  • широкий спектр примеров с исходниками
  • встроенный отладчик и программатор;
  • встроенные вкладки открытых файлов;
  • навигация по функциям в файле

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

Так или иначе, сделав очередной проект в MikroC, я благополучно забыл про PIC'и и думал, что уже никогда к ним не вернусь.

Однако история любит повторяться!

Через 3 года, в 2013 году, появилась задача разработать ПО по готовой КД, в которой был заложен PIC18F4680. Честно, я даже не знал, что среди PIC'ов бывают такие монстры, всегда имел дело только с мелочью!

Задачи были нетривиальные — реализация загрузчика для внутрисхемного обновления ПО, работа в режиме жёсткого реального времени, работа с АЦП, внешними ЦАП, линиями управления, несколькими таймерами-компараторами.

Кстати, немного отвлекаясь от темы: только на этом проекте я в полной мере понял, что такое банки памяти в PIC, как они работают и какие ограничения накладывают на разработку ПО. К примеру, все банки у МК по 256 байт. И хоть убейся, но для PIC нельзя создать структуру, превыщающую по объёму эти 256 байт — ограничение всплыло наружу при реализации протокола обмена, ну да ладно, проехали…

К этому времени Keil uVision3 мне уже изрядно поднадоел, поскольку сложность проектов росла и мне не хватало имевшегося в Keil функционала. Где-то с 2011 года я освоил Eclipse, GCC, синтаксис makefile — и все свои проекты начал вести с использованием этих инструментов. К тому же, у меня уже был опыт применения связки Eclipse + SDCC для реализации проекта под C51 МК. После появления Keil uVision4 я его установил, протестировал пол-часика и снёс, ибо по удобству программирования он всё равно сильно отстаёт от Eclipse.

Eclipse + SDCC

В настоящее время Eclipse де-факто является стандартом в области разработки ПО для встраиваемых систем. Вот список IDE, основанных на Eclipse, от популярных брендов:
  • NXP LPCXpresso IDE
  • Freescale CodeWarrior
  • Xilinx Platform Studio
  • Texas Instruments CCS
  • Android Development Tools

Автоподстановка, всплывающие подсказки по автодополнению, макросы, затемнение неактивных участков кода, удобная навигация по коду и многое-многое другое, — я не буду всё перечислять, — многие разработчики встраиваемых систем совершенно не привыкли и не знают всех этих плюшек, значительно облегчающих жизнь:

Главной проблемой чистого Eclipse для разработки на C/C++ под МК является сложность вхождения в него железячных программистов, замена привычных инструментов, работающих после установки в 1-2 клика, на какие-то плагины, требующие настройки, или, что ещё хуже, на вручную написанные makefile — всё это требует значительных первоначальных усилий по чтению и изучению документации, поиску помощи и пособий для начинающих в интернете. Говорю как человек, имеющий опыт по переводу команды программистов-железячников на Eclipse.

Только для моей команды разработчиков

Коли прочитали эту статью — дайте знать, я хоть узнаю, как у нас читают профильные хабы на Хабрахабре


Однако, за месяц полностью освоив синтаксис и один раз написав качественный makefile, все остальные проекты создаются по накатанному шаблону и требуют лишь минимальной индивидуальной настройки.

Также пришлось сделать ряд дополнительных телодвижений по настройке проектов под PIC — по умолчанию Eclipse понимает синтаксис GCC. Различные макросы и директивы, встроенные в другие компиляторы (будь то СС18 или SDCC), приходится разделять на этапе компиляции и на этапе индексации проекта. Чтобы при навигации в коде редактор не выдавал ложных ошибок на неизвестные директивы, к исходникам проекта подключается файл eclipse-syntax.h:

eclipse-syntax.h
#ifndef ECLIPSE_SYNTAX_H_
#define ECLIPSE_SYNTAX_H_

// keyword SDCC defined when compiling with SDCC compiler
#ifndef SDCC

	#ifdef __SDCC_PIC18F4680
		#error "SDCC not found, project compile will be with errors!"
	#endif

	// file not parsed through makefile - just for proper eclipse syntax
	#ifndef __CC18__
		#error "__CC18__ not found, use `-D__CC18__` in makefile for proper CC18 compilation!"
		#define near
		#define far
		#define rom
		#define ram
		#define _asm
		#define _endasm
		#define Nop()
		#define ClrWdt()
		#define Sleep()
		#define Reset()
		#define clrwdt
		#define nop

		#define __code
		#define __data
		#define __xdata

		#define __sfr
		#define __sbit

		#define __naked
		#define __wparam

		#define __bit char
		#define __at(num)

	#else	//	__CC18__ defined - compile stage!
	#endif	// __CC18__

	#define __inline

	#define __asm
	#define __endasm

	#define __interrupt(x)
	#define INTERRUPT(x)

	#define USING(x)

	#define CRITICAL

	#define CRITICAL_START
	#define CRITICAL_END

	#define _REENTRANT

#else	// if SDCC defined

	#define INTERRUPT(x) __shadowregs __interrupt (x)

	//#define USING(x) __using (x)
	#define USING(x)

	#define CRITICAL __critical

	#define CRITICAL_START __critical {
	#define CRITICAL_END }
#endif	// SDCC defined

#endif /* ECLIPSE_SYNTAX_H_ */


Кроме того, в SDCC у меня не получилось слинковать большой проект в готовый бинарник — потребовалось также настроить GPUtils, в состав которого входят gpasm, gpdasm, gplink и скрипты .lkr карт памяти МК PIC. Правда, из-за одного найденного мной бага в SDCC на этапе отладки кода я в итоге вернулся на CC18 компилятор и линковщик. Тем не менее, SDCC и GPUtils были полностью настроены — для страждущих привожу часть makefile, касающуюся опций запускаемых компиляторов и линковщиков CC18, SDCC, GPUtils:
Кусочки makefile
###########################################################
# project-specific compile options
###########################################################
# Project definitions
CHIP = 18F4680
DEFINES := -DPIC$(CHIP)
#DEFINES += -D__SDCC_PIC$(CHIP)	# use SDCC compiler
DEFINES += -D__CC18__	# use MPLAB CC18 compiler
#DEFINES += -DOPTIMIZE_BITFIELD_POINTER_GET	# SDCC memory optimize for bitfield structures
###########################################################
#  common part for all sdcc-based projects
###########################################################
	SDCC_BASE = c:/DevTools/SDCC
	CC		= "$(SDCC_BASE)/bin/sdcc.exe"
	LD		= "$(SDCC_BASE)/bin/sdcc.exe"
	ELF2HEX	= "$(SDCC_BASE)/bin/packihx.exe"
	HEX2BIN = "$(SDCC_BASE)/bin/makebin.exe"
	
###########################################################
#  common part for all MPLAB MCC18-based projects
###########################################################
	MPLAB_BASE	= c:/DevTools/CC18
	CC_MPLAB	= "$(MPLAB_BASE)/bin/mcc18.exe"
	AS_MPLAB	= $(MPLAB_BASE)/mpasm/mpasmwin.exe
	LD_MPLAB	= $(MPLAB_BASE)/bin/mplink.exe

###########################################################
# GPUtils used with SDCC for linking project
###########################################################
	GPUTILS_BASE = c:/DevTools/GNUPICutils
	GPASM	= "$(GPUTILS_BASE)/bin/gpasm.exe"
	GPDASM	= "$(GPUTILS_BASE)/bin/gpdasm.exe"
	GPLINK	= "$(GPUTILS_BASE)/bin/gplink.exe"

###########################################################
# C preprocessor flags for MPLAB MCC18 compiler
###########################################################
#optimization parameters (default = full optimization)
OPT_ENABLE_ALL	:= -O+	# Enable all optimizations (default)
OPT_DEBUG		:=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
OPT 	:=$(OPT_ENABLE_ALL)
#OPT 	:=$(OPT_DEBUG)

CFLAGS_MPLAB := -p $(CHIP)
CFLAGS_MPLAB += -I $(MPLAB_INC_DIR)
CFLAGS_MPLAB += -nw=2066	# suppress Warning [2066] type qualifier mismatch in assignment
CFLAGS_MPLAB += -ml	# Large memory model
CFLAGS_MPLAB += -ls # large stack (can span multiple banks)
#CFLAGS_MPLAB += -scs # Enable default static locals
#CFLAGS_MPLAB += -sco # Enable default overlay locals (statically allocate activation records). Ignored if set --extended
CFLAGS_MPLAB += --extended	# generate extended mode code

COMPILE_MPLAB_STRING=$(CC_MPLAB) $(CFLAGS_MPLAB) $< [email protected] $(DEFINES) $(OPT)

AFLAGS_MPLAB := /y
AFLAGS_MPLAB += /rDEC				# set default radix HEX/DEC/OCT
AFLAGS_MPLAB += /l-				# disable listing file
#AFLAGS_MPLAB += /l$(OBJDIR_MPLAB)	# enable listing file
AFLAGS_MPLAB += /o	# specify path for object files
#AFLAGS_MPLAB += /o$(OBJDIR_MPLAB)	# specify path for object files
#AFLAGS_MPLAB += /q					# enable quiet mode 
AFLAGS_MPLAB += /d__LARGE__			# define symbol
AFLAGS_MPLAB += /p$(CHIP)			# set processor type

#ASSEMBLE_MPLAB_STRING=$(AS_MPLAB) $(AFLAGS_MPLAB) %<

# used linker script
LDFLAGS_MPLAB := $(CHIP)_g.lkr
# objects to compile
LDFLAGS_MPLAB += $(OBJS_MPLAB)
LDFLAGS_MPLAB += $(MPLAB_LIBS)
# specify chip for proper linking
LDFLAGS_MPLAB += /p$(CHIP)
# verbose mode operation
#LDFLAGS_MPLAB += /v
# generate report file for stack analysis
LDFLAGS_MPLAB += /g
# generate .LST file and no .COD file
LDFLAGS_MPLAB += /i
# do not invoke MP2COD (no .COD or .LST file)
LDFLAGS_MPLAB += /w
# link MPLAB libs
LDFLAGS_MPLAB += /l $(MPLAB_LIB_DIR)
# generate MAP file
LDFLAGS_MPLAB += /m $(EXEDIR)/$(PROJECT_NAME)_mplab.map
# set output file
LDFLAGS_MPLAB += /o $(EXEDIR)/$(PROJECT_NAME)_mplab.hex

###########################################################
# C preprocessor flags for SDCC v.3.3.0 compiler
###########################################################
# ----- processor selection -----
 CFLAGS := -m$(ARCH)
 CFLAGS += -p$(CHIP)
 
# ----- preprocessor options -----
 CFLAGS += $(INCS)
 CFLAGS += $(DEFINES)
 
# ----- verbose & dependancy generate -----
# CFLAGS += -M # generate dependencies
# CFLAGS += -E #
# CFLAGS += -C # dont discard comments
 
 CFLAGS += -c # dont link file (i.e. have multiple source files)
  
 CFLAGS += $(DEBUG)

# ----- common settings -----
#CFLAGS += --nostdinc # This will prevent the compiler from passing on the
					  # default include path to the preprocessor.
#CFLAGS += --nostdlib # This will prevent the compiler from passing on the
 					  # default library path to the linker.

#CFLAGS += --less-pedantic # Disable some of the more pedantic warnings.

 CFLAGS += --stack-auto # All functions in the source file will be compiled as reentrant.
						# It automatically implies --int-long-reent and --float-reent.
CFLAGS += --int-long-reent # Integer (16 bit) and long (32 bit) libraries have been compiled as reentrant.
CFLAGS += --float-reent # Floating point library is compiled as reentrant.

#CFLAGS += --no-peep
#CFLAGS += --funsigned-char # The default signedness for every type will be unsigned.
#CFLAGS += --cyclomatic # This option will cause the compiler to generate an information
 						# message for each function in the source file. The message contains
 						# the number of edges and nodes the compiler detected in the
 						# control flow graph of the function, and most importantly
						# the cyclomatic complexity.

# ----- optimization options -----
#CFLAGS += --nogcse # Will not do global subexpression elimination, this option may be used
 					# when the compiler creates undesirably large stack/data spaces to store
 					# compiler temporaries.
#CFLAGS += --noinvariant # Will not do loop invariant optimizations.
#CFLAGS += --noinduction # Will not do loop induction optimizations.
#CFLAGS += --nojtbound # Will not generate boundary condition check when switch statements
 						# are implemented using jumptables.
#CFLAGS += --noloopreverse # Will not do loop reversal optimization.
#CFLAGS += --nolabelopt # Will not optimize labels (makes the dumpfiles more readable).
 CFLAGS += --nooverlay # The compiler will not overlay parameters and local variables of any function.
 CFLAGS += --peep-asm # Pass the inline assembler code through the peep hole optimizer.
 #CFLAGS += --opt-code-speed # Optimize for code speed rather than size
 #CFLAGS += --opt-code-size # Optimize for code size rather than speed
 CFLAGS += --fomit-frame-pointer # Frame pointer will be omitted when the function uses
								 # no local variables.
 CFLAGS += --use-non-free #  Search / include non-free licensed libraries and header files

# ----- special options for pic16 port of SDCC -----
 CFLAGS += --pstack-model=large	# use stack model 'small' (default) or 'large'
# don't use extended instruction set - SDCCman, $4.6.20.1 Known Bugs
#CFLAGS += -y --extended 		# enable Extended Instruction Set/Literal Offset Addressing mode
#CFLAGS += --pno-banksel        # do not generate BANKSEL assembler directives
 CFLAGS += --obanksel=2         # set banksel optimization level (default=0 no)
 CFLAGS += --denable-peeps      # explicit enable of peepholes
 CFLAGS += --no-optimize-goto   # do NOT use (conditional) BRA instead of GOTO
 CFLAGS += --optimize-cmp       # try to optimize some compares
 CFLAGS += --optimize-df        # thoroughly analyze data flow (memory and time intensive!)
#CFLAGS += --preplace-udata-with=udata_shr # Place udata variables at another section: udata_acs, udata_ovr, udata_shr
#CFLAGS += --ivt-loc=           # Set address of interrupt vector table.
#CFLAGS += --nodefaultlibs      # do not link default libraries when linking
#CFLAGS += --use-crt=           # use <crt-o> run-time initialization module
#CFLAGS += --no-crt             # do not link any default run-time initialization module
#CFLAGS += --mplab-comp         # enable compatibility mode for MPLAB utilities (MPASM/MPLINK)
#CFLAGS += --asm=               # Use alternative assembler
#CFLAGS += --link=              # Use alternative linker
 CFLAGS += --debug-xtra         # show more debug info in assembly output
 CFLAGS += --debug-ralloc       # dump register allocator debug file *.d
 CFLAGS += --pcode-verbose      # dump pcode related info
 CFLAGS += --calltree           # dump call tree in .calltree file
#CFLAGS += --gstack             # trace stack pointer push/pop to overflow

###########################################################
# linker flags
###########################################################
#gputils (GNU PIC Utils) used to link objects and libs.
 GPLINK_FLAGS	= -c -m -w -r -I $(LIBDIR) -s $(GPUTILS_BASE)/lkr/$(CHIP)_g.lkr
 
#SDCC linker not used
 #LDFLAGS := -m$(ARCH)
 #LDFLAGS += $(DEBUG)
 #LDFLAGS += --profile

 #LDFLAGS += --code-size $(FLASH_SIZE) # Code Segment size
#LDFLAGS += --code-loc $(FLASH_LOC) # The start location of the code location, default value is 0

 #LDFLAGS += --iram-size $(IRAM_SIZE) # Internal Ram size

#LDFLAGS += --xram-loc $(XRAM_LOC) # The start location of the external ram, default value is 0
#LDFLAGS += --xram-size $(XRAM_SIZE) # External Ram size

#LDFLAGS += --stack-loc $(STACK_LOC) # By default the stack is placed after the data segment.
 									 # Using this option the stack can be placed anywhere in the
 									 # internal memory space of the 8051.

##############################################################################
# MPLAB CC18 compiler - linker 
$(HEX_MPLAB): $(OBJS_MPLAB) Makefile
	@echo "--- CC18 Linking objects to $(HEX_MPLAB) ..."
	@$(LD_MPLAB) $(LDFLAGS_MPLAB)

##############################################################################
# SDCC compiler - linker 
$(HEX): $(OBJS) Makefile
	@echo "--- SDCC Linking objects to $(HEX) ..."
	$(GPLINK) $(GPLINK_FLAGS) -o $(HEX) $(OBJS) $(LIBS)
	$(GPDASM) -p$(CHIP) $(HEX) > $(DASM)

Эпилог

Как видно, в итоге я пришёл к использованию связки Eclipse с внешними компиляторами. Изучение опций компиляции — дело нужное и не столь сложное, чтобы просто так от него отказываться — любой программист сможет их изучить и применить при необходимости. Думаю, в итоге у меня получилась идеальная связка, доступная на сегодняшний день для создания проектов под PIC.

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

  • CC18 для PIC
  • SDCC для C51
  • gnu-arm-embedded для ARM7 и Cortex-M
  • MinGW для x86

Очевидно, при необходимости список может легко дополняться.

Надеюсь, прочитав мою историю, кто-то решится наконец для себя сойти со старых IDE и освоить новые.

Дерзайте!

Microchip DSPIC33F Assembler Project - Conversion/Compression and Optimisation | Ассемблирование

A MPASM/microchip Assembly Language guru is required for this conversion project. Development in Mikro PASCAL has caused the generated program to be too large for the DSPIC33F chip. This chip is used in our existing platform with tens of thousands of boards already in use around the world that use this chip. There is approximately 21000 lines of code that need to be converted to assembly language and highly optimized to be super efficient in program memory and RAM to run on the current hardware. Circuit diagrams provided along with 3 sets of electronics for development and testing purposes. 50% of the payment will be on final completion. Inability for the system to fit on the DPIC33F is a project failure so only freelancers that are have a proven record with assembly language on this platform should bid for this project. Project is to be completed in a maximum of 4 months.

Supplied files includes User Guide including screens snaps, Code of the a windows based simulator in Delphi XE5 pascal that is a working demonstration of the system and the algorithms. Mikro Pascal code that has the exact RF and IR communication protocols to be used. Note that there is very little requirement to create program logic. This is 95%+ a conversion job.

Навыки: Ассемблирование

Показать больше: windows guru, testing guru, testing algorithms, rf freelancers, logic guru, job boards freelancers, job boards for freelancers, guru world, guru testing, guru for freelancers, guru electronics, freelancers job boards, freelancers boards, freelancers around the world, electronics hardware freelancers, communication guru, algorithms freelancers, project assembler dspic, conversion access flex project, assembler dspic

( 66 отзыв(-а, -ов) ) Brisbane, Australia

ID проекта: #9281824

DSPIC Projects - проекты на базе архитектуры dspic

Платы и стартовые комплекты

8051 Платы: 8051 Совет по развитию | 8051 Учебный комплект | 8051 Совет проекта

Платы PIC

: Плата разработки PIC16F877A | Плата PIC Advanced Development

Платы AVR: Совет по развитию AVR

Платы ARM

: Стартовый комплект LPC2148 | Совет по развитию ARM | Совет по развитию ARM9

Платы PSOC: Pioneer Kit | Совет по развитию PsOC

Платы

FPGA: Стартовый комплект FPGA | Совет по развитию FPGA | Универсальная плата разработки FPGA

Платы с плавающей запятой DSP: Совет по развитию TMS320F2812 | TMS320C6745 Комплект обучающего DSP | Совет по развитию

TMS320F28335

Платы с фиксированной точкой DSP: TMS320C5505 Development Board

Платы MSP430: Панель запуска MSP430 | Совет по развитию MSP430

Платы Arduino: Arduino UNO | Базовый комплект Arduino | Netduino | Arduino Due | Ардуино ADK

Raspberry PI: Raspberry Pi 3 | Аксессуары Rapserry Pi

Платы беспроводной связи: GSM-модем | Доска Zigbee | WiFI Board | Плата Bluetooth

Платы проводной связи: интерфейс SPI-Ethernet

Носимые технологии: Neurosky Mindwave Mobile: стартовый комплект Brainwave

Дополнительные платы: плата GPS

Модули

: модули GSM | Модули GPS | Модули Bluetooth | Модули WIFI | Радиочастотные модули

Датчики: Распознавание речи HM2007 | Распознавание жестов | Мозговой компьютерный интерфейс | Brainsense

Программаторы и эмуляторы

: USB-кабель для загрузки платформы Xilinx | ​​Программатор JTAG FPGA

Робототехника: робот-следящий за линией | Робот, управляемый жестами | Роботизированная рука | Робот

под управлением Android

Моторные приводы: Моторный привод PMSM | Моторный привод BLDC | Трехфазный асинхронный двигатель | Моторный привод SRM | Привод шагового двигателя

Двигатели: Двигатель PMSM | Двигатель BLDC | Серводвигатель | Трехфазный асинхронный двигатель |

Проекты и ресурсы

Мини-проекты ECE: 8051 проект | ARM Проекты | Проекты FPGA | Проекты СБИС | Проекты VHDL | Проекты робототехники

EEE Мини-проекты: электрические проекты | Simulink Проекты

DIP Projects: проекты по обработке изображений | Проекты по обработке видео

Проекты и ресурсы

Микроконтроллеры IC'S: P89V51RD2 | AT89S51 | LPC2148 | LPC2929

Устройства отображения: Семисегментный - общий анод | Семисегментный общий катод | 2.5-дюймовый TFT | 3,5-дюймовый TFT | Семисегментный дисплей | Светодиод

Разъемы: USB Mini-B SMD Connector | DB9 ВНУТРЕННИЙ КАБЕЛЬНЫЙ РАЗЪЕМ

,

Пошаговый пример программирования dsPIC33CH - Справка разработчика

Переключить навигацию

  • Инструменты разработки
    • Какие инструменты мне нужны?
    • Программные средства
      • Начни здесь
      • MPLAB® X IDE
        • Начни здесь
        • Установка
        • Введение в среду разработки MPLAB X
        • Переход на MPLAB X IDE
          • Переход с MPLAB IDE v8
          • Переход с Atmel Studio
        • Конфигурация
        • Плагины
        • Пользовательский интерфейс
        • Проектов
        • файлов
        • Редактор
          • Редактор
          • Интерфейс и ярлыки
          • Основные задачи
          • Внешний вид
          • Динамическая обратная связь
          • Навигация
          • Поиск, замена и рефакторинг
          • Инструменты повышения производительности
            • Инструменты повышения производительности
            • Автоматическое форматирование кода
            • Список задач
            • Сравнение файлов (разница)
            • Создать документацию
        • Управление окнами
        • Сочетания клавиш
        • Отладка
        • Контроль версий
        • Автоматизация
          • Язык управления стимулами (SCL)
          • Отладчик командной строки (MDB)
          • Создание сценариев IDE с помощью Groovy
        • Поиск и устранение неисправностей
        • Работа вне MPLAB X IDE
        • Прочие ресурсы
      • MPLAB Xpress
      • MPLAB IPE
      • Программирование на C
      • Компиляторы MPLAB® XC
        • Начни здесь
        • Компилятор MPLAB® XC8
        • Компилятор MPLAB XC16
        • Компилятор MPLAB XC32
        • Компилятор MPLAB XC32 ++
        • Охват кода
        • MPLAB
      • Компилятор IAR C / C ++
      • Конфигуратор кода MPLAB (MCC)
      • Гармония MPLAB v2
      • Гармония MPLAB v3
      • среда разработки Atmel® Studio
      • Atmel СТАРТ (ASF4)
      • Advanced Software Framework v3 (ASF3)
        • Начни здесь
        • ASF3 Учебники
          • ASF Audio Sine Tone Учебное пособие
          • Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
      • Блоки устройств MPLAB® для Simulink®
      • Утилиты
      • Инструменты проектирования
      • FPGA
      • Аналоговый симулятор MPLAB® Mindi ™
    • Аппаратные средства
      • Начни здесь
      • Сравнение аппаратных средств
      • Средства отладки и память устройства
      • Исполнительный отладчик
      • Демо-платы и стартовые наборы
      • Внутрисхемный эмулятор MPLAB® REAL ICE ™
      • Эмулятор SAM-ICE JTAG
      • Внутрисхемный эмулятор
      • Atmel® ICE
      • Power Debugger
      • Внутрисхемный отладчик MPLAB® ICD 3
      • Внутрисхемный отладчик MPLAB® ICD 4
      • Внутрисхемный отладчик
      • PICkit ™ 3
      • Внутрисхемный отладчик MPLAB® PICkit ™ 4
      • MPLAB® Snap
      • MPLAB PM3 Универсальный программатор устройств
      • Принадлежности
        • Заголовки эмуляции и пакеты расширения эмуляции
        • Пакеты расширения процессора и отладочные заголовки
          • Начни здесь
          • Обзор
          • PEP и отладочных заголовков
          • Требуемый список заголовков отладки
            • Таблица обязательных отладочных заголовков
            • AC162050, AC162058
            • AC162052, AC162055, AC162056, AC162057
            • AC162053, AC162054
            • AC162059, AC162070, AC162096
            • AC162060
            • AC162061
            • AC162066
            • AC162083
            • AC244023, AC244024
            • AC244028
            • AC244045
            • AC244051, AC244052, AC244061
            • AC244062
          • Необязательный список заголовков отладки
            • Дополнительный список заголовков отладки - устройства PIC12 / 16
            • Дополнительный список заголовков отладки - устройства PIC18
            • Дополнительный список заголовков отладки - Устройства PIC24
          • Целевые следы заголовка отладки
          • Отладочные подключения заголовков
      • SEGGER J-Link
      • Решения для сетевых инструментов
      • K2L
      • Рекомендации по проектированию средств разработки
      • Ограничения отладки - микроконтроллеры PIC
      • Инженерно-технические примечания (ETN) [[li]] Встраиваемые платформы chipKIT ™
  • Проектов
    • Начни здесь
    • Преобразование мощности
      • AN2039 Четырехканальный силовой секвенсор PIC16F1XXX
    • 8-битные микроконтроллеры PIC®
    • 8-битные микроконтроллеры AVR®
    • 16-битные микроконтроллеры PIC®
    • 32-битные микроконтроллеры SAM
    • 32-разрядные микропроцессоры SAM
      • Разработка приложений SAM MPU с помощью MPLAB X IDE
      • Примеры пакетов программного обеспечения
      • SAM MPU
    • Запланировано дополнительное содержание...
  • Продукты
    • 8-битные микроконтроллеры PIC
    • 8-битные микроконтроллеры AVR
      • Начни здесь
      • Структура 8-битного микроконтроллера AVR®
      • 8-битные периферийные устройства AVR®
        • Осциллятор
        • USART
        • прерываний
        • аналоговый компаратор и опорное напряжение
        • Таймер / счетчики
        • Внутренний датчик температуры
        • Работа с низким энергопотреблением
        • Сброс источников
      • Начало работы с микроконтроллерами AVR®
      • Использование микроконтроллеров AVR® с Atmel START
      • Запланировано дополнительное содержание...
    • 16-битные микроконтроллеры PIC и dsPIC DSC
    • 32-битные микроконтроллеры
.

DSP Особенности Microchip dsPIC® DSC

Переключить навигацию

  • Инструменты разработки
    • Какие инструменты мне нужны?
    • Программные средства
      • Начни здесь
      • MPLAB® X IDE
        • Начни здесь
        • Установка
        • Введение в среду разработки MPLAB X
        • Переход на MPLAB X IDE
          • Переход с MPLAB IDE v8
          • Переход с Atmel Studio
        • Конфигурация
        • Плагины
        • Пользовательский интерфейс
        • Проектов
        • файлов
        • Редактор
          • Редактор
          • Интерфейс и ярлыки
          • Основные задачи
          • Внешний вид
          • Динамическая обратная связь
          • Навигация
          • Поиск, замена и рефакторинг
          • Инструменты повышения производительности
            • Инструменты повышения производительности
            • Автоматическое форматирование кода
            • Список задач
            • Сравнение файлов (разница)
            • Создать документацию
        • Управление окнами
        • Сочетания клавиш
        • Отладка
        • Контроль версий
        • Автоматизация
          • Язык управления стимулами (SCL)
          • Отладчик командной строки (MDB)
          • Создание сценариев IDE с помощью Groovy
        • Поиск и устранение неисправностей
        • Работа вне MPLAB X IDE
        • Прочие ресурсы
      • MPLAB Xpress
      • MPLAB IPE
      • Программирование на C
      • Компиляторы MPLAB® XC
        • Начни здесь
        • Компилятор MPLAB® XC8
        • Компилятор MPLAB XC16
        • Компилятор MPLAB XC32
        • Компилятор MPLAB XC32 ++
        • Охват кода
        • MPLAB
      • Компилятор IAR C / C ++
      • Конфигуратор кода MPLAB (MCC)
      • Гармония MPLAB v2
      • Гармония MPLAB v3
      • среда разработки Atmel® Studio
      • Atmel СТАРТ (ASF4)
      • Advanced Software Framework v3 (ASF3)
        • Начни здесь
        • ASF3 Учебники
          • ASF Audio Sine Tone Учебное пособие
          • Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
      • Блоки устройств MPLAB® для Simulink®
      • Утилиты
      • Инструменты проектирования
      • FPGA
      • Аналоговый симулятор MPLAB® Mindi ™
    • Аппаратные средства
      • Начни здесь
      • Сравнение аппаратных средств
      • Средства отладки и память устройства
      • Исполнительный отладчик
      • Демо-платы и стартовые наборы
      • Внутрисхемный эмулятор MPLAB® REAL ICE ™
      • Эмулятор SAM-ICE JTAG
      • Внутрисхемный эмулятор
      • Atmel® ICE
      • Power Debugger
      • Внутрисхемный отладчик MPLAB® ICD 3
      • Внутрисхемный отладчик MPLAB® ICD 4
      • Внутрисхемный отладчик
      • PICkit ™ 3
      • Внутрисхемный отладчик MPLAB® PICkit ™ 4
      • MPLAB® Snap
      • MPLAB PM3 Универсальный программатор устройств
      • Принадлежности
        • Заголовки эмуляции и пакеты расширения эмуляции
        • Пакеты расширения процессора и отладочные заголовки
          • Начни здесь
          • Обзор
          • PEP и отладочных заголовков
          • Требуемый список заголовков отладки
            • Таблица обязательных отладочных заголовков
            • AC162050, AC162058
            • AC162052, AC162055, AC162056, AC162057
            • AC162053, AC162054
            • AC162059, AC162070, AC162096
            • AC162060
            • AC162061
            • AC162066
            • AC162083
            • AC244023, AC244024
            • AC244028
            • AC244045
            • AC244051, AC244052, AC244061
            • AC244062
          • Необязательный список заголовков отладки
            • Дополнительный список заголовков отладки - устройства PIC12 / 16
            • Дополнительный список заголовков отладки - устройства PIC18
            • Дополнительный список заголовков отладки - Устройства PIC24
          • Целевые следы заголовка отладки
          • Отладочные подключения заголовков
      • SEGGER J-Link
      • Решения для сетевых инструментов
      • K2L
      • Рекомендации по проектированию средств разработки
      • Ограничения отладки - микроконтроллеры PIC
      • Инженерно-технические примечания (ETN) [[li]] Встраиваемые платформы chipKIT ™
,

DsPIC HOW-TO GUIDE Создание и отладка проекта в MPLAB

Транскрипция

1 DsPIC HOW-TO GUIDE Создание и отладка проекта в MPLAB

2 Краткое содержание 1. Введение в инструменты разработки MPLAB Приступая к работе Создание проекта Запуск MPLAB Создание файла проекта Выбор языковых инструментов Присвоение имени проекту Добавление файлов в создание проекта код тестирования проекта с помощью симулятора. Начало работы с MPLAB SIM. Запуск примеров программ MPLAB SIM... 37

3 5.1. LED_delay: Ваша первая программа dspic на C Редактирование файла проекта Mplab LED_delay.C Компиляция и компоновка LED_delay Тестирование LED_delay ... 40

4 1. Введение в MPLAB MPLAB X IDE - это новый графический интегрированный набор инструментов отладки для всех микросхем Microchip. больше, чем битовые, 16-битные и 32-битные микроконтроллеры, контроллеры цифровых сигналов и устройства памяти. Он включает в себя многофункциональный редактор, отладчик на уровне исходного кода, менеджера проекта, программный симулятор и поддерживает популярные аппаратные средства Microchip, такие как внутрисхемный отладчик MPLAB ICD 3, PICkit 3 и программатор MPLAB PM3.MPLAB IDE - это программа для операционной системы Windows (ОС), которая запускается на ПК для разработки приложений для микроконтроллеров Microchip и контроллеров цифровых сигналов. Она называется интегрированной средой разработки или IDE, потому что она предоставляет единую интегрированную «среду» для разработки кода для встроенных микроконтроллеров. Опытные разработчики встроенных систем могут сразу перейти к компонентам MPLAB IDE.

5 Конвертер Object-HEX создает файлы Intel HEX из абсолютных объектных модулей.2. Инструменты разработки Инструменты разработки Mplab для dspic предлагают множество функций и преимуществ, которые помогут вам быстро и успешно разрабатывать встроенные приложения. Они просты в использовании и гарантированно помогут вам в достижении ваших дизайнерских целей. Среда разработки MPLAB и отладчик являются центральной частью инструментов разработки Microchip dspic. MPLAB предлагает режим сборки и режим отладки. В режиме сборки MPLAB вы поддерживаете файлы проекта и генерируете приложение. MPLAB использует инструменты разработки C30 или dspic ASM.В режиме отладки MPLAB вы проверяете свою программу с помощью мощного ЦП и симулятора периферийных устройств, который соединяет отладчик с целевой системой.

6 ICD2 позволяет вам также загружать ваше приложение во Flash ROM вашей целевой системы. 3. Начало работы MPLAB IDE сочетает в себе управление проектами, средства создания, редактирование исходного кода, отладку программ и полное моделирование в одной мощной среде. Платформа разработки MPLAB проста в использовании и помогает быстро создавать работающие встроенные программы.Редактор и отладчик MPLAB интегрированы в одно приложение, которое обеспечивает бесшовную встроенную среду разработки проекта. Используйте MPLAB для создания исходных файлов и организации их в проект, определяющий ваше целевое приложение. MPLAB автоматически компилирует, собирает и связывает ваше встроенное приложение и обеспечивает единую точку фокусировки для ваших усилий по разработке.

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

8 3.1. Создание проекта MPLAB включает менеджера проектов, который упрощает разработку приложений для микроконтроллера на базе dspic. Для создания нового проекта вам необходимо выполнить следующие шаги: Запустите MPLAB и выберите набор инструментов. Создайте файл проекта и выберите ЦП из базы данных устройства. Создайте новый исходный файл и добавьте этот исходный файл в проект. Добавьте и настройте код запуска для dspic. Установите параметры инструмента для целевого оборудования.Скомпилируйте проект и создайте файл HEX для программирования Flash. Запустить MPLAB MPLAB - это стандартное приложение Windows, запускаемое щелчком по значку программы.

9

10 Создание файла проекта

1 To create a new project file select from the MPLAB menu Project Project Wizard. This opens a standard Windows dialog that asks you for the new project file name.

11 1 Чтобы создать новый файл проекта, выберите в меню MPLAB Project Project Wizard. Это открывает стандартный диалог Windows, который запрашивает у вас имя нового файла проекта.Теперь мы можем нажать кнопку «Далее», а затем выбрать отображение окон с помощью раскрывающейся кнопки в параметрах устройства, как показано ниже. Затем мы можем выбрать устройство. Устройства

12 Выбор языковых инструментов На втором этапе мастера проекта настраиваются языковые инструменты, которые используются в этом проекте. В верхнем раскрывающемся списке выберите набор инструментов Microchip C30. Затем вы должны увидеть, что C30, MPLINK и MPLIB появятся в поле «Содержимое набора инструментов». Вы можете щелкнуть по каждому, чтобы увидеть его местоположение.Если вы установили MPLAB IDE в каталог по умолчанию, исполняемый файл компилятора C30 будет: C: \ Program Files \ Microchip \ MPLAB C30 \ bin \ pic30-gcc.exe. Исполняемый файл компоновщика MPLINK будет: C: \ Program Files \ Microchip \ MPLAB C30 \ bin \ pic30-ld.exe И исполняемый файл библиотекаря MPLIB будет: C: \ Program Files \ Microchip \ MPLAB C30 \ bin \ pic30-ar.exe Если они не отображаются правильно, используйте кнопку обзора, чтобы установить их в соответствующие файлы в подпапках MPLAB IDE.

When you are finished, click Next >. 3.

13 Когда вы закончите, нажмите «Далее»> «Присвоение имени проекту». Третий шаг мастера позволяет присвоить проекту имя и поместить его в папку.Этот примерный проект будет называться Mplab. Используя кнопку «Обзор», поместите проект в папку с именем Mplab. Щелкните Далее>.

3.2.4. Adding files to Project Step Four of the Project Wizard allows file selection for the project. A source file has not yet been selected, so we will use an MPLAB IDE template file.

14 Добавление файлов в проект Четвертый шаг мастера проектов позволяет выбрать файл для проекта. Исходный файл еще не выбран, поэтому мы будем использовать файл шаблона MPLAB IDE. Файлы шаблонов - это простые файлы, которые можно использовать для запуска проекта. В них есть основные разделы для любого исходного файла и информация, которая поможет вам написать и организовать свой код.

These files are in the MPLAB IDE folder, which by default is in the Program Files folder on the PC. There is one template file for each Microchip PIC micro and dspic device.

15 Эти файлы находятся в папке MPLAB IDE, которая по умолчанию находится в папке Program Files на ПК. Для каждого устройства Microchip PIC micro и dspic существует один файл шаблона. Выберите файл с именем led_delay.c. Если MPLAB IDE установлена ​​в папку по умолчанию, полный путь к файлу будет следующим: C: \ Documents and Settings \ Administrator \ Desktop \ Mplab \ led_delay.c

Press Add>> to move the file name to the right panel, and the file name to enable this file to be copied to our project directory.

16 Нажмите «Добавить >>, чтобы переместить имя файла в папку. правая панель и имя файла, чтобы этот файл можно было скопировать в каталог нашего проекта.Убедитесь, что ваше диалоговое окно выглядит так, как показано на рисунке выше, при этом оба флажка установлены, затем нажмите «Далее»>, чтобы завершить работу мастера проектов. Последний экран Мастера проектов - это сводка, показывающая выбранное устройство, набор инструментов и имя нового файла проекта.

After pressing the Finish button, review the Project Window on the MPLAB IDE desktop.

17 После нажатия кнопки «Готово» просмотрите окно проекта на рабочем столе MPLAB IDE. Если окно проекта не открыто, выберите «Просмотр»> «Проект».Примечание: файлы можно добавлять, а проекты сохранять, используя правую кнопку мыши в окне проекта. В случае ошибки файлы

can be manually deleted by selecting them and using the right mouse click menu. 3.2.5.

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

19 Чтобы построить проект, выберите один из следующих вариантов: Project> Build All. Щелкните правой кнопкой мыши имя проекта в окне проекта и выберите Build All. Щелкните значок Build All на панели инструментов Project. Однако наведите указатель мыши на значки, чтобы увидеть всплывающий текст того, что они представляют. Окно вывода показывает результат процесса сборки. Ни на одном шаге не должно быть ошибок.

20 Примечание. Если они не собираются и не связываются успешно, проверьте следующие элементы, а затем снова соберите проект: Проверьте написание и формат кода, введенного в окне редактора.Убедитесь, что новые переменные и регистры специальных функций, TRISC и PORTC, указаны в верхнем регистре. Если ассемблер сообщил об ошибках в окне вывода, дважды щелкните ошибку, и MPLAB IDE откроет соответствующую строку в исходном коде с зеленой стрелкой в ​​левом поле окна исходного кода. Убедитесь, что используются правильный компилятор (компилятор Microchip C30) и компоновщик для микроустройств PIC. Выберите Project> Set Language Tool Locations. Щелкните поля с плюсом, чтобы развернуть набор инструментов Microchip C30 и его исполняемые файлы.Щелкните Компилятор Microchip C30 (pic30-gcc.exe) и просмотрите их расположение на дисплее. Если расположение правильное, нажмите Отмена. Если это не так, измените его и нажмите OK. Пути поиска по умолчанию могут быть пустыми.

21 После успешной сборки будет загружен выходной файл, созданный языковым инструментом. Этот файл содержит объектный код, который может быть запрограммирован в микроконтроллер PIC, и отладочную информацию, чтобы исходный код можно было отлаживать, а исходные переменные можно было просматривать символически в окнах просмотра. Тестирование кода с помощью симулятора. Для тестирования кода, программного обеспечения или оборудования. необходим для выполнения микрокоманд PIC.Инструмент выполнения отладки - это аппаратный или программный инструмент, который используется для проверки кода при выполнении программы (в данном случае led_delay.c). Аппаратные средства, такие как MPLAB ICE или MPLAB ICD 2, могут выполнять код на реальных устройствах. Если оборудование недоступно, для тестирования кода можно использовать симулятор MPLAB. В этом уроке мы можем использовать симулятор MPLAB SIM. Симулятор - это программа, которая запускается на ПК и имитирует инструкции микроконтроллера PIC.

22 Он не работает в реальном времени, поскольку программа симулятора зависит от скорости ПК, сложности кода, накладных расходов операционной системы и количества других выполняемых задач.Однако симулятор точно измеряет время, которое потребовалось бы для выполнения кода, если бы он работал в реальном времени в приложении. Примечание. Другие инструменты выполнения отладки включают MPLAB ICE 2000, MPLAB ICE 4000 и MPLAB ICD 2. Это дополнительные аппаратные инструменты для тестирования кода на плате ПК приложения. Большинство операций отладки MPLAB IDE такие же, как и в симуляторе, но, в отличие от симулятора, эти инструменты позволяют целевому микроконтроллеру PIC работать на полной скорости в реальном целевом приложении.Строка состояния в нижней части окна MPLAB IDE должна измениться на MPLAB SIM. Дополнительные пункты меню теперь должны появиться в меню отладчика. Дополнительные значки панели инструментов должны появиться на панели инструментов отладки.

23 4. Начало работы с MPLAB SIM MPLAB SIM - это один из механизмов отладки, который можно использовать с MPLAB. Другие механизмы отладки - это аппаратные устройства, а MPLAB SIM - это программа, которая работает на вашем ПК. MPLAB SIM предоставляет многие из тех же функций, что и внутрисхемные эмуляторы и внутрисхемные отладчики.Разница в том, что как внутрисхемные эмуляторы, так и внутрисхемные отладчики позволяют запускать код на реальном кристалле, а также позволяют аппаратному обеспечению целевого приложения работать во время отладки. MPLAB SIM имеет функции для моделирования взаимодействия оборудования с другими сигналами и устройствами, и, поскольку он работает как программное обеспечение на ПК, он имеет полную информацию о внутреннем состоянии моделируемого чипа по каждой инструкции. Это немного отличается от аппаратных отладчиков, потому что, хотя они запускают код на полной скорости, они обычно не могут контролировать все регистры и всю память в реальном времени.

24 И MPLAB SIM, и аппаратные отладчики могут выполнять традиционные функции отладчиков, но из-за их различий они могут иметь собственные уникальные особенности. В этой презентации будут описаны функции и особенности MPLAB SIM. Отладчик является частью MPLAB IDE, и независимо от того, используете ли вы MPLAB SIM, MPLAB ICE или MPLAB ICD 2, большинство операций точно такие же. Это позволяет вам разрабатывать код с помощью симулятора, а затем, когда ваше оборудование будет готово, вы можете использовать аппаратный отладчик для дальнейшего тестирования вашего кода на практике без необходимости изучать, как использовать новый инструмент.Кнопки панели инструментов меню отладчика Горячая клавиша Запуск F9 Остановить F5 Анимация Шаг с переходом F7 Шаг за F8 Выход из сброса F6

25 Это основные функции отладки: Сброс целевого объекта, чтобы перезапустить приложение. Выполните код, чтобы можно было протестировать программу и убедиться, что она работает должным образом. Остановка кода в точках останова Во время остановки в точках останова исследуйте и изменяйте память и переменные для анализа и отладки кода приложения. Пошаговое выполнение кода, чтобы внимательно изучить, как он выполняется.Это позволяет инженеру выполнять код по одной инструкции (или одному оператору C) за раз, отслеживая затронутые переменные, регистры и флаги. Одиночный пошаговый режим по существу увеличивает масштаб кода, чтобы гарантировать правильную работу в сложных и критических участках с диапазонами значений переменных и в различных условиях тестирования. Большинство отладчиков также имеют дополнительные функции, помогающие анализировать и отлаживать приложение.

26 Некоторые из них перечислены здесь: Контрольные точки группируют и отслеживают выбранные переменные и ячейки памяти в удобном, настраиваемом считывании.Буферы трассировки фиксируют потоки выполняемых инструкций и раскрывают содержимое изменяющихся значений регистров. Секундомер может отсчитывать время участка кода. Подпрограммы могут быть оптимизированы, а критическая синхронизация кода может быть точно измерена и отрегулирована. Сложные точки останова предлагают метод для установки точек останова или для сбора данных в буфере трассировки на основе нескольких условий. Простые точки останова позволяют устанавливать точки останова в исходном коде или в любом месте программной памяти. Сложные точки останова позволяют получить точку останова при таком условии, как: после выполнения основной процедуры, называемой Refresh Display, затем

27 ждать выполнения подпрограммы Read Temp.Затем прервите работу, если переменная с именем Temperature больше 20. Можно создать сложные события для подсчета событий, так что подпрограмма должна быть выполнена, например, 15 раз, прежде чем она начнет искать значение на выводе или в регистре. , Этот вид точки останова позволяет описать состояние, при котором код работает неправильно, остановиться в точке останова или отследить код при возникновении этого условия. Обычно это более быстрый способ поиска ошибок, чем просто установка простых точек останова и пошаговое выполнение кода.MPLAB SIM - это симулятор, и в результате он обладает определенными характеристиками, которые делают его уникальным механизмом отладки. Таким образом, скорость моделирования определяется тем, как быстро работает ваш компьютер, сложностью текущего моделирования и количеством других задач, выполняемых на вашем компьютере.

28 В настоящее время максимальная скорость MPLAB SIM составляет порядка 10 MIPS, или 10 миллионов инструкций в секунду. Это будет зависеть от того, сколько других вещей выполняется вашим компьютером, от кода, который запускает симулятор, и от других задач, которые симулятор выполняет.Симулятор имитирует работу центрального процессора и его внутренних регистров, памяти и многих периферийных устройств. Чтобы протестировать приложение на симуляторе, сигналы стимула можно подавать на контакты и регистры. Для оценки производительности симулятор может записывать изменения регистров в файлы для дальнейшего анализа. Запуск MPLAB SIM. Выберите симулятор в качестве инструмента выполнения отладки. Это делается в раскрывающемся меню «Отладчик»> «Выбрать инструмент».

MPLAB SIM is selected as the debug engine from the Debugger menu. Note the other functions on the debug menu, such as Run, Step, and Breakpoints.

29 MPLAB SIM выбирается в качестве механизма отладки в меню «Отладчик».Обратите внимание на другие функции в меню отладки, такие как Run, Step и Breakpoints. После выбора механизма отладки к панели инструментов добавляются некоторые новые значки для запуска, остановки, пошагового выполнения и сброса целевого объекта. В строке состояния теперь отображается дополнительная информация. MPLAB SIM отображается как текущий механизм отладки.

The simulated processor is listed, in this case the dspic30f4011, Then the program counters, The W

30 Отображается смоделированный процессор, в данном случае dspic30f4011, затем счетчики программ, регистр W, текущее состояние внутренних флагов ЦП и текущий выбранный банк регистров файла.

The toolbar icons, the menus, or the hot keys listed on the menus can be used to execute the debug functions.

31 Значки панели инструментов, меню или горячие клавиши, перечисленные в меню, могут использоваться для выполнения функций отладки. Обратите внимание, что некоторые из них немного сложнее, например Reset, который на самом деле имеет четыре типа действий сброса. Как только MPLAB SIM устанавливается в качестве механизма отладки, всякий раз, когда создается проект, он автоматически загружается в программную память симулятора для запуска и тестирования.

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

The Program Memory window shows the machine code that will be executed by the simulator.

33 Окно памяти программ показывает машинный код, который будет выполняться симулятором.Пошаговое выполнение с этим окном в фокусе позволит вам выполнить каждую машинную инструкцию. Другое окно, называемое окном Disassembly Listing, показывает исходный код высокого уровня, перемежающийся с машинным кодом, сгенерированным каждым оператором C.

You can also open up a watch window and drag the variables from your program to them to see the contents.

34 Вы также можете открыть окно просмотра и перетащить в них переменные из вашей программы, чтобы увидеть их содержимое. Чтобы увидеть, работает ли код должным образом, отправляя увеличивающиеся значения из PORTC, наблюдайте за значениями, отправляемыми в PORTC.Ниже представлены пункты меню правой кнопки мыши в окне «Разборка».

35 Установить или удалить точку останова на текущей выбранной строке. Включить / отключить точку останова на выбранной в данный момент строке. Запустите программу в текущее положение курсора. S e t P C a t C u r s o r Установите счетчик программ (ПК) в положение курсора. Копировать выделенный текст в буфер обмена. Выделите текст, (1) щелкнув и перетащив указатель мыши на текст или (2) щелкнув в начале текста и удерживая нажатой клавишу Shift в конце текста.Выделите весь текст в окне. Выход в файл. Выберите View> Watch, чтобы открыть пустое окно Watch.

36 В верхней части окна просмотра есть два раскрывающихся элемента. Тот, что слева, помечен как «Добавить SFR», может использоваться для добавления в часы специального функционального регистра PORTC. Выберите PORTC из списка и нажмите «Добавить SFR», чтобы добавить его в окно. Во время отладки доступны другие окна для просмотра, регистрации памяти, памяти стека и энергонезависимой памяти данных.

37 5. Примеры программ Примеры программ готовы к запуску. Вы можете использовать примеры программ, чтобы узнать, как пользоваться нашими инструментами. Кроме того, вы можете скопировать код из примеров MPLAB для собственного использования. Примеры программ находятся в ... \ microchip \ examples (для набора инструментов Microchip C30), \ Microchip \ C30 \ Examples (для компилятора C) и \ Microchip \ ASM \ Examples (для ассемблера). Каждая программа-пример хранится в отдельной папке вместе с файлами проекта, которые помогут вам быстро создать и оценить каждую программу-пример LED_delay: ваша первая программа на C dspic В Mplab мы можем сгенерировать простую программу на C с именем LED_delay с помощью редактора Mplab Editor.

38 Программа LED_delay ничего не делает, только повышая и понижая уровень линии ввода / вывода в течение определенного периода времени. Эта программа имеет единственный исходный файл LED_delay.C. Это небольшое приложение поможет вам подтвердить, что вы можете компилировать, связывать и отлаживать приложение. Вы можете выполнять эти операции из Mplab для Windows, используя предоставленный файл проекта. Единственное используемое периферийное устройство на кристалле - это линия портов ввода / вывода. На самом деле вам не нужен целевой ЦП, потому что Mplab позволяет моделировать оборудование, необходимое для этой программы. Файл проекта Mplab В Mplab приложения хранятся в файле проекта.Для LED_delay.c создан файл проекта. Чтобы загрузить этот проект, выберите «Открыть проект» в меню «Проект» и откройте Mplab.mcp из конкретной папки, если мы уже создали файл проекта. В противном случае вы должны создать файл проекта (см. Главу «Начало работы»).

5.3. Editing LED_delay.C You can now edit LED_delay.C. Double click on LED_delay.C in the Files page of the Project Workspace.

39 5.3. Редактирование LED_delay.C Теперь вы можете редактировать LED_delay.C. Дважды щелкните LED_delay.C на странице «Файлы» в рабочей области проекта.µvision загружает и отображает содержимое LED_delay.C в окне редактора. Компиляция и связывание LED_delay Когда вы будете готовы скомпилировать и связать свой проект, используйте команду Build Target из меню Project.

40 Mplab начинает переводить и связывать исходные файлы и создает модуль абсолютных объектов, который вы можете загрузить в отладчик Mplab для тестирования. Статус процесса сборки указан на странице «Сборка» окна вывода. Тестирование LED_delay После того, как программа LED_delay скомпилирована и связана, вы можете протестировать ее с помощью отладчика Mplab SIM.В Mplab используйте команду «Выполнить» из меню или панели инструментов «Отладка». Mplab инициализирует отладчик и запускает выполнение программы до основной функции.

41 Кнопки панели инструментов меню отладчика Запуск по горячей клавише F9 Остановить F5 Анимация Шаг с переходом в F7 Шаг за F8 Выход из сброса F6 Во время отладки Mplab покажет следующий вывод:

The PORTB registers enabling HIGH in a certain

42 Регистры PORTB включают HIGH в определенный период, PORTB регистрирует включение LOW в определенный период,

43 Понравилось ли вам чтение? Pantech Solutions создает информационные технические документы, подобные этой, каждый месяц.И наш веб-сайт - это богатый и надежный ресурс, которым пользуется активное онлайн-сообщество, состоящее из более чем 100 000 членов из организаций всех форм и размеров.

44 Что мы продаем? Наша продукция включает различные платы для разработки микроконтроллеров, платы DSP, платы FPGA / CPLD, комплекты связи, силовую электронику, базовую электронику, робототехнику, датчики, электронные компоненты и многое другое. Наша цель - сделать поиск необходимых деталей и информации более простым и доступным, чтобы вы могли создавать отличные проекты и обучаться от базовых до новейших технологий.

.

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

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