Миниатюрные PIC контроллеры хороши для построения преобразователей интерфейсов последовательной передачи данных, для реализации функций «прием – обработка – передача данных» и несложных регуляторов систем автоматического управления.
Компания Microchip распространяет MPLAB — бесплатную интегрированную среду редактирования и отладки программ, которая записывает бинарные файлы в микроконтроллеры PIC через программаторы.
Взаимодействие MPLAB и Matlab/Simulink позволяет разрабатывать программы для PIC-контроллеров в среде Simulink — графического моделирования и анализа динамических систем. В этой работе рассматриваются средства программирования PIC контроллеров: MPLAB, Matlab/Simulink и программатор PIC-KIT3 в следующих разделах.
• Характеристики миниатюрного PIC контроллера PIC12F629
• Интегрированная среда разработки MPLAB IDE
• Подключение Matlab/Simulink к MPLAB
• Подключение программатора PIC-KIT3
Для примера, ниже даны характеристики недорогого компактного 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 ячейки
Загрузка MPLAB IDE
Бесплатные версии MPLAB (включая MPLAB 8.92) хранятся на сайте компании Microchip в разделе «DOWNLOAD ARCHIVE».
Создание проекта
Пример создания проекта программ PIC контроллера в среде MPLAB включает следующие шаги [2].
1. Вызов менеджера проекта.
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 — конец программы
Непосредственно или через окно 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 — как CLKIN010 — 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).
Сохранить материалы проекта можно командой: меню → File → Save Workspace.
После запуска отладчика в окне Output (Рис. 1) появляется закладка MPLAB SIM, куда MPLAB выводит текущую информацию отладчика. Команды отладчика (Рис. 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В.
Примечание. В контроллер PIC12F629 записана заводская калибровочная константа настройки частоты внутреннего тактового генератора. При необходимости её можно прочитать и восстановить средствами MPLAB с использованием программатора.
Команды для работы с программатором и изменения его настроек находятся в меню MPLAB Programmer. Тип программатора в MPLAB выбирается в разделе: меню → Programmer → Select Programmer.
Прошивка микроконтроллера через программатор запускается командой: меню → Programmer → Program. Сообщение об успешной прошивке показано на Рис. 9.
Примечание: Во время прошивки микроконтроллера у программатора PIC-KIT3 мигает желтый светодиод.
Пример Simulink программы PIC контроллера показан на Рис. 10.
Взаимодействие средств разработки и компиляции программ для PIC контроллеров в Simulink показано на Рис. 11 [6].
Для построения среды разработки необходимы следующие компоненты Matlab:
• Simulink
• Real-Time Workshop Embedded Coder
• Real-Time Workshop
И Cи компилятор компании Microchip:
• C30 для контроллеров PIC24, dsPIC30 и PIC33
• или C32 для контроллеров серии PIC32
Для скачивания библиотеки необходимо зарегистрироваться. Программы поддерживают работу 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).
Для совместной компиляции Simulink модели средствами Matlab и MPLAB необходимо прописать в переменной окружения path Matlab с высшим приоритетом путь к каталогу MPLAB с файлами MplabOpenModel.m, MplabGetBuildinfo.m и getHardwareConfigs.m:
>> path('c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\',path)
Примечание. Работа выполнена с версией v3.25 компилятора С30 для PIC24/dsPIC. Проверка показала, что следующая версия v3.30 не поддерживает совместную компиляцию моделей Matlab R2012a (dsPIC Toolbox) без ошибок.
Установочный exe файл создаёт в разделе c:\Program Files (x86)\Microchip\ новый каталог mplabc30 с файлами:
Последовательность 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)
>>rmpath(' c:\Program Files\Microchip\MPLAB IDE\Tools\MATLAB\')
Тип контроллера, для которого разрабатывается Simulink модель, выбирается из списка в блоке Master > PIC (Рис. 16, Рис. 10), который должен быть включен в состав модели.
5. Проверьте настройки конфигурации модели: Меню → Simulation → Configuration Parameters <Ctrl+E>. В строке ввода System target file раздела Code Generation должен быть указан компилятор S-функций dspic.tlc (Рис. 17). Выбор dspic.tlc настраивает все остальные параметры конфигурации модели, включая шаг и метод интегрирования.
6. Откомпилируйте модель tmp_Servo_ADC.mdl. Запуск компилятора показан на Рис. 18.
В результате успешной компиляции (сообщение: ### Successful completion of build procedure for model: Servo_ADC) в текущем каталоге создаются HEX файл для прошивки PIC контроллера и MCP проект среды MPLAB (Рис. 19).
Запуск модели в Matlab/Simulink выполняется в окне модели кнопкой, условное время моделирования устанавливается в строке:
Управление компиляцией Simulink модели можно выполнять командами раздела Matlab/Simulink среды MPLAB, например, в следующем порядке.
1. Разработайте модель PIC контроллера в Matlab/Simulink. Сохраните модель.
2. Запустите MPLAB.
3. Выберите MPLAB меню → Tools → Matlab/Simulink и новый раздел появится в составе меню.
5. Откомпилируйте модель и создайте MCP проект командами Generate Codes или Generate Codes and Import Files. Перевод MDL модели в MCP проект выполняется TLC компилятором Matlab.
В результате создаётся проект MPLAB:
со скриптами модели на языке Си.
6. Откройте проект: меню → Project → Open → Servo_ADC.mcp (Рис. 20).
Информацию об установленном драйвере программатора PIC-KIT3 можно запросить у менеджера устройств ОС Windows (Рис. 22).
Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3 показана на Рис. 23.
Вывод PGM программатора для прошивки контроллеров PIC12F629 не используется. Наличие вывода PGM для разных типов PIC контроллеров показано на Рис. 24. Вывод PGM рекомендуется «притягивать» к общему проводу (GND), через резистор, номиналом 1К [3].
Индикация светодиодов программатора Olimex PIC-KIT3 показана в ниже:
Желтый — Красный — Состояние программатора
Вкл — Выкл — Подключен к USB линии
Вкл — Вкл — Взаимодействие с MPLAB
Мигает — Включен постоянно — Прошивка микроконтроллера
При питании микроконтроллера от программатора на линии VDD необходимо установить рабочее напряжение, например, 5В программой MPLAB (Menu → Programmer → Settings → Power), как показано на Рис. 25.
Примечание. При отсутствии напряжения на линии VDD MPLAB IDE выдает сообщение об ошибке: PK3Err0045: You must connect to a target device to use
Если программатор не может установить требуемое напряжение, например, 5В при его питании от USB, в которой напряжение меньше 5В, MPLAB IDE выдает сообщение об ошибке: PK3Err0035: Failed to get Device ID. В этом случае, сначала необходимо измерить напряжение программатора — считать его в закладке меню → Programmer → Settings → Status, а затем установить напряжение (не больше измеренного) в закладке меню → Programmer → Settings → Power.
Пример MPLAB сообщения успешного подключения микроконтроллера к программатору по команде меню → Programmer → Reconnect показан на Рис. 27.
Можно программировать не только отдельный PIC контроллер, но и контроллер, находящийся в составе рабочего устройства. Для программирования PIC контроллера в составе устройства необходимо предусмотреть установку перемычек и токоограничивающих резисторов как показано на Рис. 28 [3].
habr.com
Практически все современные импульсные источники питания построены на основе специализированных микросхем. Но зачастую даже этот факт вынуждает разработчика каждый раз проектировать источник заново под конкретные условия работы очередного изделия. Этот задачу можно решить путем использования микроконтроллера с необходимым набором встроенных периферийных узлов для управления импульсным источником. Цена такого микроконтроллера, как правило, сравнима со стоимостью специализированных микросхем, а выгода от его использования значительно выше из-за меньшего числа требуемых внешних элементов.
SMPS микроконтроллеры семейства dsPIC30
Практически в каждое семейство выпускаемых компанией Microchip 8- и 16-битных микроконтроллеров включены контроллеры для построения импульсных источников питания различной сложности и функциональности (рис. 1).
Рис. 1. Микроконтроллеры Microchip для построения импульсных источников питания
В рамках семинара Masters (26-29 июля 2006), проведенного фирмой Microchip, были представлены три новых микроконтроллера популярного семейства dsPIC30: dsPIC30F1010, dsPIC30F2020 и dsPIC30F2023 (табл. 1).
Таблица 1. Основные параметры SMPS-микроконтроллеров семейства dsPIC30
Микро- контроллер | Чис- ло вы- во- дов | Кор- пус | Flash- па- мять, Кбайт | ОЗУ, байт | Тай- ме- ры | Мо- ду- ли зах- вата | Мо- ду- ли срав- не- ния | UART | SPI | I2C | ШИМ- конт- рол- ле- ры | АЦП | УВХ | Входы АЦП | Ана- лого- вые ком- пара- торы |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dsPIC30F1010 | 28 | DIP | 6 | 256 | 2 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 6 | 2 |
dsPIC30F1010 | 28 | SOIC | 6 | 256 | 2 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 6 | 2 |
dsPIC30F1010 | 28 | QFN | 6 | 256 | 2 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 6 | 2 |
dsPIC30F2020 | 28 | DIP | 12 | 512 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 4 | 8 | 4 |
dsPIC30F2020 | 28 | SOIC | 12 | 512 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 4 | 8 | 4 |
dsPIC30F2020 | 28 | QFN | 12 | 512 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 4 | 8 | 4 |
dsPIC30F2023 | 44 | QFN | 12 | 512 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 4 | 12 | 4 |
dsPIC30F2023 | 44 | TQFP | 12 | 512 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 4 | 12 | 4 |
Эти контроллеры специально спроектированы и предназначены для работы в составе импульсных источников питания (SMPS — Switch Mode Power Supply) и таких устройств преобразования энергии, как мощные инверторы и блоки бесперебойного питания (UPS).
По утверждению Microchip, использование этих микроконтроллеров позволяет сократить число внешних компонентов мощного импульсного источника питания до 50%, по сравнению с источниками питания на основе специализированных микросхем, что вызывает резкое уменьшение габаритов изделия, его цены и, конечно, увеличения его надежности.
Рис. 2. Структурная схема микроконтроллеров семейства dsPIC30 серии SMPS
Таблица 2. Зависимость частоты ШИМ-сигнала управления от его разрядности
Производительность, MIPS | Частота ШИМ-сигнала, кГц | ||||
---|---|---|---|---|---|
16 бит | 14 бит | 12 бит | 10 бит | 8 бит | |
30 | 14,5 | 58 | 234 | 937 | 3,748 |
20 | 9,6 | 39 | 156 | 624 | 2,496 |
Это обеспечивается благодаря встроенным периферийным узлам (рис. 2): многоканальный ШИМ-контроллер с высоким разрешением 1 нс (табл. 2) и большим числом режимов работы (см. далее), многоканальный 10-битный АЦП с высокой скоростью преобразования до 2 млн./сек и до 4-х УВХ, внутренний тактовый RC-генератор (9,7 МГц и 14,6 МГц) с точностью ±1%, популярные последовательные интерфейсы (UART, SPI, I2C), от двух до четырех быстрых аналоговых компараторов.
dsPIC30F1010/2020/2023 имеют встроенное ядро ЦОС, внутреннюю флэш-память программ — до 12 Кбайт, внутреннее статическое ОЗУ — до 512 байт и высокую производительность — до 30 MIPS. Это позволяет строить на их основе сложные интеллектуальные источники питания с ПИД-регулированием (рис. 3), адаптивными методами управления и встроенным корректором мощности (Power Factor Corrector). Полный цифровой контроль всей цепочки преобразования энергии в аппаратуре управления интеллектуального источника питания: мягкий старт с ограничением пускового тока, контроль очередности подачи питания, синхронизация многоканальных источников друг с другом. Это достигается благодаря оптимальному сочетанию качества программного обеспечения и производительности встроенных периферийных узлов.
Рис. 3. Структурная схема импульсного источника питания c ПИД-регулированием
Встроенное ядро ЦОС позволяет выполнять одну итерацию с полным ПИД-управлением менее чем за 2 мкс. Из них 1 мкс отводится на работу полного ПИД-регулятора, и 1 мкс — на работу со встроенной периферией — АЦП, многоканальный ШИМ-контроллер, аналоговые компараторы.
Функции, выполняемые аппаратурой на основе dsPIC30F1010 /2020/2023, теперь могут включать автоматическую калибровку, температурную компенсацию, обеспечивать повышенную плотность мощности, большую экономическую эффективность и поддержку введения отличий в аппаратуру с помощью программного обеспечения.
Стоит отметить, что dsPIC30F1010/2020/2023 — это не только микроконтроллер с богатым набором периферийных узлов, но фактически — специализированная микросхема со встроенной памятью и микропроцессором с ядром ЦОС, спроектированная специально для работы в составе интеллектуальных импульсных источников питания. Это факт подтверждает наличие программируемых связей между встроенными периферийными узлами (IPC — Power Control Peripheral Interconnect), которые в значительной степени сокращают нагрузку на ядро процессора (рис. 4). Например, встроенный АЦП способен работать в синхронизации с ШИМ-контроллером, что позволяет минимизировать ошибки преобразования тока выходных транзисторов при их переключениях.
Рис. 4. Структурная схема внутренних программируемых связей периферийных узлов dsPIC301010/2020/2023
Как было сказано выше, ШИМ-контроллер способен работать в различных режимах работы:
Цепь управления отключением обратной связи на время завершения переходных процессов (LEB — Leading Edge Blanking) позволяет отключать на программируемое фиксированное время выходы аналоговых компараторов и/или определенные внешние сигналы. Наличие этой цепи позволяет избежать включения в состав импульсного источника питания (особенно источников высокой мощности) соответствующих дополнительных внешних компонентов.
Примером приложения, где преимущества от использования новых микроконтроллеров по цене и выполняемым функциям наиболее ярко выражены, являются многоканальные источники питания. В них может быть реализована синхронная работа на одну нагрузку, поддержка горячего включения, встроенная коррекция коэффициента мощности и полная обработка аварийных ситуаций. Микроконтроллеры могут применяться и в цифровом управлении освещением или подсветкой ЖКИ-панелей большого размера.
dsPIC30F1010/2020/2023 поддерживаются бесплатной интегрированной средой разработки MPLAB IDE, недорогим С-компилятором MPLAB C30, внутрисхемными отладчиками MPLAB ICD2 и MPLAB ICE.
Для начального ознакомления и быстрого освоения импульсных источников питания на основе SMPS-микроконтроллеров dsPIC1010/2020/2023 фирма Microchip предлагает недорогой комплект отладки dsPICDEMTMSMPS.
Плата включает в свой состав микроконтроллер dsPIC2020, два независимых маломощных управляемых DC/DC-преобразователя (работа в синхронном и асинхронном режимах), узел имитации динамически изменяемой нагрузки для исследования переходной характеристики преобразователя, переменный резистор и миниатюрные кнопки (подстройка уровня выходного напряжения, стартового тока и режимов работы преобразователя).
Вся необходимая информация о микроконтроллерах серии SMPS, принципах работы импульсных источников питания, примерах их реализации и расчета доступна на сайте фирмы Microchip: www.microchip.com/smps.
Получение технической информации, заказ образцов, поставка —
e-mail: [email protected]
Рубрика: статья
…читать далее
www.compel.ru
Изучить особенности программной и аппаратной реализации временных функций в микроконтроллерах (МК) семейства dsPIC33F.
Изучить режимы работы и порядок формирования таймеров МК семейства dsPIC33F.
Создать проект, составить исходный код программы реализации временных функций по заданному алгоритму, откомпилировать ее в среде MPLAB IDE 8, записать в память программ МК dsPIC33FJ32MC204 учебного стенда НТЦ-31.000 и выполнить.
Исследовать реализацию временных функций с помощью учебного стенда НТЦ-31.000.
Изучить по [1] теоретические вопросы, связанные с понятием машинного цикла, принципами функционирования таймера/счетчика и системы прерываний.
Изучить по [2] принципиальную электрическую схему к лабораторной работе.
Изучить алгоритмы и исходные коды программ на языке программирования С, приведенные в методических указаниях.
Подготовить ответы на вопросы для самоконтроля.
Подготовить заготовку отчета (см. содержание отчета).
Укажите область применения временных функций.
Дайте определение машинного цикла МК.
В чем заключается метод программных циклов?
В чем заключается метод реализации временных функций с использованием таймера/счетчика.
Персональный компьютер.
Учебный стенд НТЦ – 31.000.
Методические указания к лабораторной работе.
MPLAB IDE 8. Руководство пользователя.
Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.
Произвести внешний осмотр учебного стенда и персонального компьютера (ПК) и убедиться визуально в отсутствии каких-либо повреждений и дефектов.
Подключить стенд к сети. Включить тумблер «Сеть» на задней панели стенда.
С помощью кабеля USB AM-BM через гнездо «USB» на задней панели стенда подключить стенд к USB – порту ПК.
Включить ПК и запустить MPLAB IDE.
Задание № 20.1. Создать проект LR20_1 для учебного стенда, который реализует следующее условие: мигать светодиодом VD1 с частотой 1 Гц, используя метод программных циклов. Листинг (исходный код) программы к заданию № 1 приведен в методических указаниях к данной лабораторной работе.
6.1 Выполнить пункты 2.1…2.7 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования «Active Toolsuite» установите «Microchip C30 Toolsuite», а в качестве языка программирования «Toolsuite Сontents» выберите язык программирования C (MPLAB С30) (рисунок 20.1), а в пункте 2.5 выбора каталога для сохранения проекта укажите LR20_1.
6.2 С помощью пункта меню «File Import» (рисунок 20.2) открыть исходный файл к заданию № 1. В каталоге файлов исходных кодов программ «Files LR17…LR20» на локальном диске D выбрать «LR20_1.hex».
Рисунок 20.1 – Выбор инструмента и языка программирования
Рисунок 20.2 – Выбор исходного файла к заданию № 20.1
6.3 С помощью пункта меню «Programmer Select Programmer» выбрать программатор PICkit2.
6.4 Запрограммировать МК стенда НТЦ-31.000 созданной программой, используя пункт меню «Programmer Program».
Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение — …PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer Release From Reset».
6.5 После получения сообщения указанного на рисунке 20.3 МК запрограммирован.
Рисунок 20.3 – Сообщение о результатах прошивки МК программой к заданию № 20.1
6.6 Проверить работу светодиодного индикатора VD1.
7 Задание № 20.2. Создать проект LR20_2 для учебного стенда, который реализует следующее условие: мигать светодиодом VD1 с частотой 1 Гц, используя таймер/счетчик. Листинг (исходный код) программы к заданию №2 приведен в методических указаниях к данной лабораторной работе.
7.1 Выполнить пункты 2.1…2.7 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования «Active Toolsuite» установите «Microchip C30 Toolsuite», а в качестве языка программирования «Toolsuite Сontents» выберите язык программирования C (MPLAB С30) (рисунок 20.1), а в пункте 2.5 выбора каталога для сохранения проекта укажите LR20_2.
7.2 С помощью пункта меню «File Import» (рисунок 20.4) открыть исходный файл к заданию №2. В каталоге файлов исходных кодов программ «Files LR17…LR20» на локальном диске D выбрать «LR20_2.hex».
Рисунок 20.4 – Выбор исходного файла к заданию № 20.2
7.3 С помощью пункта меню «Programmer Select Programmer» выбрать программатор PICkit2.
7.4 Запрограммировать МК стенда НТЦ-31.000 созданной программой, используя пункт меню «Programmer Program».
Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение — …PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer Release From Reset».
7.5 После получения сообщения указанного на рисунке 20.3 МК запрограммирован.
7.6 Проверить работу светодиодного индикатора VD1.
8 Задание № 20.3. Создать проект LR20_3 для учебного стенда НТЦ-31.000, который реализует следующее условие: при включении тумблеров SA1 и SA2 одновременно мигать светодиодами VD1 и VD2 попеременно с частотой 1 Гц, используя метод программных циклов. Листинг (исходный код) программы к заданию №3 приведен в методических указаниях к данной лабораторной работе.
8.1 Выполнить пункты 2.1…2.4 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования установите «Microchip C30 Toolsuite» и выберите язык программирования С (рисунок 20.1).
8.2 В окне выбора пути к каталогу сохранения файлов проекта выберите «Browse…». В открывшемся окне (рисунок 20.5) выберите путь: «Мой компьютер\Локальный диск D\Lan\DSPIC33\TE111\Ivanov\LR20_3\».
Примечание – Фамилию учащегося, набранную буквами английского алфавита, выбрать из списка своей учебной группы и создать папку для лабораторной работы LR20_3 и нажать кнопку «Сохранить». Окно выбора пути к каталогу будет иметь вид, показанный на рисунке 20.6. Нажмите кнопку «Далее».
Рисунок 20.5 – Окно выбора пути к каталогу сохранения файла
Рисунок 20.6 – Выбор каталога для сохранения проекта к заданию № 20.3
8.3 В открывшемся окне (рисунок 20.7) добавить существующие файлы в проект: «+С:\+ProgrammFiles(x86)\+Microchip\+MPLABC30\+support\ +dsPIC33F\+gld\+p33FJ32MC204.gld». Нажмите кнопку «Далее».
Рисунок 20.7 – Окно добавления существующих файлов в проект
8.4 В открывшемся окне суммарной информации по проекту убедитесь, что МК и средство программирования выбраны правильно и нажмите кнопку «Готово» (рисунок 20.8).
Рисунок 20.8 – Суммарная информация по проекту
Файл появится в папке «Linker Script» инспектора проекта (рисунок 20.9).
Рисунок 20.9 – Инспектор проекта
8.5 После создания проекта в него необходимо добавить файл с исходным кодом программы МК. Для этого необходимо воспользоваться пунктом меню «File New». В появившемся окне редактора исходных текстов (рисунок 20.10) наберите исходный код программы, приведенный в методических указаниях к данной лабораторной работе.
Рисунок 20.10 – Редактор исходных текстов программ
8.6 После написания исходного кода программы к заданию № 3 с помощью пункта меню «File Save As…» откройте окно «Сохранить как» (рисунок 20.11). В этом окне выберите папку «LR20_3», в которой сохраняли файл исходного кода проекта и в строке «Имя файла» задайте название исходного кода программы, как «LR20_3.c» (рисунок 20.12). Затем нажмите кнопку «Сохранить».
Рисунок 20.11 – Окно сохранения файла исходного текста программы
Рисунок 20.12 – Сохранение исходного кода программы к заданию № 20.2
Рисунок 20.13 – Добавление исходного файла в проект
8.7 Кликните правой кнопкой мыши в окне редактора исходного кода и выберите пункт «Add To Project» (рисунок 20.13).
После описанных действий инспектор проекта должен иметь вид, показанный на рисунке 20.14.
Рисунок 20.14 – Инспектор проекта
8.8 Выполните компиляцию проекта, используя пункт меню «Project Build All». Компилятор выводит отчет о компиляции в окне «Output». В случае успешной компиляции получите сообщение BUILD SUCCEEDED (рисунок 20.15). В случае обнаружения ошибок в исходном коде соответствующие сообщения будут выведены в область уведомлений. В таком случае необходимо исправить ошибки и запустить заново компилирование проекта.
8.9 После успешной компиляции с помощью пункта меню «Programmer Select Programmer» выбрать программатор PICkit2.
8.10 Запрограммировать стенд (прошить микроконтроллер) используя пункт меню «Programmer Program».
8.11 Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение – … PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer Release from Reset».
8.12 После получения сообщения, указанного на рисунке 20.3, микроконтроллер запрограммирован.
8.13 Проверить работу светодиодных индикаторов VD1 и VD2 в зависимости от положения тумблеров SA1 и SA2.
9 После проверки преподавателем результатов работы закрыть MPLAB IDE, выключить ПК и учебный стенд.
10 Оформить отчет и сдать зачет.
Рисунок 20.15 – Отчет о компиляции
studfiles.net
8.1. Описание интерфейса SPI
8.2. Характеристики модуля SPI в dsPIC
8.3. Режимы работы модуля SPI
8.4. Работа модуля SPI в режиме ведущего
8.5. Работа модуля SPI на примере (пример в PROTEUS)
SPI – это интерфейс для последовательного обмена данными. Интерфейс SPI, так же как и его «конкурент» I2C являются самыми распространенными. Эти протоколы предназначены для использования их в масштабах платы. Хотя вполне могут работать и в других условиях. На шине должен обязательно ведущий и ведомый. В качестве ведущего в большинстве случаев выступает микроконтроллер. А такие устройства, как память, АЦП, RTC выступают в роле ведомого.
Основным элементом модуля SPI является сдвиговый регистр. И протокол SPI осуществляет обмен данными (битами) между двумя сдвиговыми регистрами. Главной особенностью данного протокола является возможность одновременного приёма и передачи данных. Один бит выходит из сдвигового регистра, а с другой стороны уже поступает бит. Это действие происходит одновременно. А синхронизацию на шине обеспечивает ведущий.
Подключение осуществляется по принципу: вход одного устройства подключается к выходу другого и наоборот. Что касается тактового сигнала, то тут всё должно быть понятно.
Установка данных при передаче и выборка при приеме всегда выполняются по противоположным фронтам синхронизации. Это необходимо для гарантирования выборки данных после надежного их установления. Так что при конфигурировании модуля SPI, учтите это.
Это что касается вкратце о протоколе SPI. Есть много источников, где можно ознакомиться с данным протоколом, поэтому здесь больше не будем на этом останавливаться.
В зависимости от варианта dsPIC предлагается один или два SPIмодуля на одном устройстве.
Модули, определяемые как SPI1 и SPI2, являются функционально идентичными. Модуль SPI1 доступен на всех устройствах, в то время как SPI2 модуль доступен во многих из более крупных (по количеству выводов) микроконтроллерах.
Примечание: В этом документе, модули SPI упоминаются вместе как SPIx, или отдельно как SPI1 и SPI2. Специальные функциональные регистры будут точно также упоминаться. Например, SPIxCON относится и к модулю SPI1 и к модулю SPI2.
SPIxпоследовательный интерфейс имеет четырех вывода:
• SDIx: Последовательный Вход данных
• SDOx: Последовательный Выход данных
• SCKx: Вход тактовых импульсов или выход тактовых импульсов
• SSx/FSYNCx: Управляемый низким уровнем сигнала выбор ведомого или вход/выход Структуры синхронизирующего импульса.
SPIxмодуль может быть сконфигурирован, чтобы использовать 2, 3 или 4 вывода. В режиме с 3 выводами,SSxне используется. В режиме с 2 выводами, ниSDOx, ниSSxне используются.
Рисунок 3. Блок схема модуля SPI
SPIмодуль использует следующие режимы работы:
• 8 битная и 16-битная Передача/приём данных
• ведущий и ведомый режим
• FramedSPI режимы
• SPIxрежим только приёма
• SPIxобработка ошибок
В данной статье будет рассмотрен режим ведущего. Для ознакомления с другими режимами необходимо смотреть даташит.
8-ми битные и 16-ти битные операции
Бит управления режимом связи MODE16в регистре управления (SPIxCON1 <10>) позволяет модулю связываться или в 8 битном или 16 битном режиме. Функциональные возможности те же самые для каждого режима кроме количества битов, которые передаются или принимаются. В этом контексте:
• модуль SPIсбрасывается, когда значение бита MODE16 изменено. Следовательно, бит не должен быть изменен в ходе нормальной работы модуля
• Данные передаются старшим битов вперёд: с 7-го бита из сдвигового регистра (SPIxSR) для 8-ми битной операции, в то время как 16 битная операция передаёт с 15 бита (SPIxSR<15>) . В обоих режимах, данные завершаются передачей 0-го бита (SPIxSR<0>)
• При передаче или получении данных, требуется 8 тактовых импульсов на выводе SCKx, чтобы переместить данные в 8-ми битном режиме. В 16-разрядном режиме требуется 16 тактовых импульсов на выводеSCKx.
studfiles.net
Hi, Thanks for the invite :-). Couple of questions about the project: 1. Since we are talking about microphones and speakers for this project I am wondering why we would need 200kHz sample rate for the ADCs? Si Больше
$90 USD за 5 дней(-я)
www.freelancer.com.ru