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

Dspic в проектах: Загрузчик для dsPIC33 / Хабр

Содержание

Шумный ADC dsPIC - CodeRoad



У меня есть dsPIC33F, собирающий данные с двух ADC каналов одновременно, на 10 бит. Я использую таймер для выборки на частоте 64 Гц и установил ADC на автоматическую выборку, но ручное преобразование. Каждый раз, когда опрашивается прерывание таймера, я очищаю бит выборки, и буфер DMA заполняется моими данными ADC. Построение этих данных показывает, что они дают правильные значения, но я заметил, что они очень шумные!

Не обращайте внимания на зеленую линию. Красная линия правильно отображает мои результаты ADC (пики намеренны), но, как вы можете видеть, она имеет очень много шума повсюду.

Есть какие-нибудь идеи о том, что можно сделать, чтобы уменьшить это? При построении графика одновременно с DAQ (но с использованием того же источника питания и связыванием оснований) он гораздо более плавный, поэтому я знаю, что этот шум присутствует не всегда. Может быть, развязка конденсаторов на PIC? Я использую макетную плату и сквозные компоненты, аналоговый датчик расположен как можно ближе к контакту PIC. У меня сложилось впечатление, что это аппаратная проблема, но дайте мне знать, если что-то можно сделать с программной стороны вещей.

c pic noise mplab adc
Поделиться Источник ritchie888     25 апреля 2013 в 18:11

1 ответ


  • Leaflet шумный консольный выход

    Я начал использовать leaflet maps, и у меня очень шумный вывод в консоли js. Похоже, он работает в каком-то режиме отладки. Есть ли какой-нибудь вариант отключить его?

  • Самостоятельно прочитать отдельные входы с STM32F0 ADC

    STM32F072CBU microcontroller. У меня есть несколько входов в ADC, и я хотел бы прочитать их по отдельности и отдельно. STMcubeMX производит шаблонный код, который предполагает, что я хочу прочитать все входные данные последовательно, и я не смог понять, как это исправить. Это сообщение в блоге...



2

Это может быть связано с импедансом источника, который управляет ADC, то есть вашим аналоговым датчиком. Возможно, ему понадобится буферный усилитель, чтобы лучше управлять ADC. Операционный усилитель в конфигурации с единичным коэффициентом усиления , должны помочь. Другой способ добиться некоторого улучшения - это небольшой конденсатор от входа ADC до земли, но вам нужно будет тщательно выбирать его значение, чтобы избежать слишком сильной фильтрации этих пиков.

Поделиться Martin     26 апреля 2013 в 12:32


Похожие вопросы:


Как установить регистры внешнего ADC

Я новичок в микроконтроллерах и пытаюсь считывать внешние значения ADC. Изначально я должен настроить ADC регистров. Я использую связь SPI для чтения значений ADC. Я использую AD7798 ADC. Я...


dspic33ep512mu810 ADC сопоставление каналов с выводами

Я использую dsPIC33EP512MU810 и хочу использовать ADC1 для считывания аналогового значения из PORTB.R0. Используя компилятор MicroC Pro for dsPIC, я использую их библиотеку ADC. Функция...


x86 ADC нести флаг и длину

Я просто делаю некоторый анализ разобранной 32-битной программы, которую я написал в C. Вот часть вывода из дизассемблера: 41153c 02 00 add al, [eax] 41153e 00 00 add [eax], al 411540 44 inc esp...


Leaflet шумный консольный выход

Я начал использовать leaflet maps, и у меня очень шумный вывод в консоли js. Похоже, он работает в каком-то режиме отладки. Есть ли какой-нибудь вариант отключить его?


Самостоятельно прочитать отдельные входы с STM32F0 ADC

STM32F072CBU microcontroller. У меня есть несколько входов в ADC, и я хотел бы прочитать их по отдельности и отдельно. STMcubeMX производит шаблонный код, который предполагает, что я хочу прочитать. ..


STM32F303 ADC застревает в калибровке

У меня довольно странная проблема. Я использую один и тот же микропроцессор в трех проектах. Два из них используют источник часов HSI, один-HSE. Питание подается точно так же: HSI-й проходит...


STM32F4 DMA не контролирует ADC каналов

Я пытаюсь настроить свою плату STM32F407-Discovery для чтения нескольких каналов ADC из ADC1 с помощью контроллера DMA. Я могу легко считывать аналоговое значение по одному, не используя DMA, но как...


Использование ADC на Teensy 3.6

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


Попытка понять ADC из STM32L4

У меня есть трудности в понимании как семейства STM32 ADC работ. Я хочу сделать что-то простое, т. е. образец и преобразование регулярно ( @ 250 Гц) на 2 GPIOs. На данный момент я сделал это dummy...


LPC824 microcontroller ADC demo HardFault проблема

Я пытаюсь запрограммировать LPC824 microcontroller board ([ https://www.switch-science.com/catalog/2265/][1] ) с помощью LPCOpen . Я использую его с отладочной платой LPCLink 2. Моя цель-получить...

Лаборатория РоботоТехники | Горно-Алтайский государственный университет

Для того, чтобы начать разрабатывать устройства на базе микроконтроллеров PIC24/dsPIC33F потребуется:

  • Среда разработки Microchip MPLAB X IDE
  • Компилятор Microchip MPLAB XC16
  • Библиотеки для работы с периферийными модулями PIC24/dsPIC Peripheral Libraries

Всё выше перечисленное можно скачать с официального сайта (http://www.microchip.com) компании Microchip, на следующих страницах (раздел Downloads внизу страницы):

Так, на момент публикации урока были доступны следующие версии ПО:

  • MPLAB® X IDE v4. 01 версия от 9/11/2017
  • MPLAB® XC16 Compiler v1.32B версия от 8/25/17
  • PIC24/dsPIC Peripheral Libraries v2.00 версия от 7/28/15

Рассмотрим процесс установки. Установку следует производить в следующем порядке:

  1. Среда разработки MPLAB X IDE
  2. Компилятор MPLAB XC16
  3. Библиотеки поддержки периферии PIC24/dsPIC Peripheral Libraries

Все установки будут производиться по путям по умолчанию (Program Files (x86)), изменение установочных путей не запрещается, однако может привести к ошибкам при компиляции, в случае, например, наличия в установочном пути русских букв. Ниже приводятся снимки некоторых экранов установщика.

MPLAB X IDE

MPLAB XC16

PIC24/dsPIC Peripheral Libraries

Запуск MPLAB X IDE

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

Первый запуск может занять продолжительное время.

Следует убедиться, что среда обнаружила установленный компилятор, для этого выбрать в главном меню: Tools > Options, затем в окне Options перейти на вкладку Embedded>Build tools:

В следующем уроке рассмотрим создание первого проекта.

Обзор поколения 16-разрядных микроконтроллеров Microchip Текст научной статьи по специальности «Компьютерные и информационные науки»

Обзор поколения 16-разрядных

микроконтроллеров Microchip

Алексей ПАНТЕЛЕЙЧУК

[email protected]

В рамках предлагаемой статьи приведен краткий обзор одного из самых популярных в настоящее время поколений микроконтроллеров компании Microchip: 16-разрядных семейств dsPIC30, dsPIC33, PIC24F и PIC24H. dsPIC30 dsPIC33 PIC24H PIC24F

Производительность, MIPS 30 40 40 16

Тактовая частота, МГц 0-120 0-80 0-80 0-32

Напряжение питания, В 2,5-5,5 3,0-3,6 3,0-3,6 2,0-3,6

Наличие DSP-ядра есть есть нет нет

Потребляемая мощность до 1,25 Вт до 300 мВт до 300 мВт до 100 мВт

Режимы ФАПЧ (PLL) x4, x8, x16 х2...х513

Flash-память, кбайт 6-144 12-256 12-256 16-256

СОЗУ, байт 256-8192 1024-32768 1024-16384 4096-16384

EEPROM, байт 0-4096 0 0 0

DMA, каналов 0 0/8 0/8 0

Аппаратный CRC нет нет нет есть

Параллельный порт нет нет нет РМР

Мультиплексоры портов нет нет/есть нет/есть нет/есть

16-разрядные таймеры 2/3/5 3/9 3/9 4/5

32-разрядные таймеры 0/1/2 0/1/4 1/4 2

Захват-сравнение 1/2/4/8 4/8 4/8 0/5

ШИМ (классический) 1/2/4/8 2/8 (16 бит) 2/8 (16 бит) 5/9

ШИМ (электродвигатели) 4/6/8 0/8 0 0

ШИМ (источники питания) 4/8 0 0 0

10-разрядные АЦП, каналов до 16 до 13 до 13 до 16

12-разрядные АЦП, каналов до 16 до 32 до 32 нет

Компараторы 0/2/4 0 0 2

UART 1/2 1/2 1/2 2/4

SPI 1/2 1/2 1/2 2/3

I2C 1/2 1/2 2/3

I2S (AC97) есть нет нет нет

CAN 0/1/2 0 0 0

ECAN 0 0/1/2 0/1/2 0

QEI (датчики положения) 0/1 0/1 0 0

RTC нет нет нет есть

IrDA 0 0 есть есть

JTAG нет есть есть есть

Корпус TQFP-80, TQFP-64, TQFP-44, QFN-44, PDIP-44, SOIC-28, PDIP-28, QFN-28, SOIC-18, PDIP-18 Т0РР-100, Т0РР-80, ТОРР-64, Т0РР-44, 0РЫ-44, Б0!С-28, РР1Р-28, ОРЫ-28, Б01С-20, РР1Р-20, Б01С-18, РР1Р-18 Т0РР-100, ТОРР-64, ТОРР-44, 0РЫ-44, Б01С-28, БР01Р-28, 0РЫ-28, РР1Р-18, 0РЫ-18 Т0РР-100, Т0РР-80, Т0РР-64, Т0РР-44, 0РЫ-44, Б01С-28, ЗБ0Р-28, БР01Р-28, 0РЫ-28

Однажды выпустив 16-разрядные микроконтроллеры dsPIC30, компания Microchip уверенно заняла нишу производительных 16-разрядных микроконтроллеров со встроенным ядром цифровой обработки сигналов — DSC (Digital Signal Controller). Семейство dsPIC30 оказалось весьма удачным в таких областях применения, как электроприводы для управления мощными многофазными электродвигателями, сложная медицинская аппаратура, многоканальные интеллектуальные источники питания.

В ногу со временем

Семейство dsPIC30 послужило отправной точкой для дальнейшего развития и расширения поколения 16-разрядных микроконтроллеров Microchip [1]. Благодаря своевременному вложению средств в новые производственные мощности и технологии, компания Microchip выпустила в свет три новых семейства: dsPIC33, PIC24H и PIC24F, производимых по технологии 0,25 мкм, что, прежде всего, позволило резко сократить уровень потребляемой мощности и поднять пиковую производительность до 40 MIPS.

Условно все 16-разрядные МК можно разделить на две группы (табл. 1): dsPIC30 и dsPIC33 — семейства микроконтроллеров с DSP-ядром, PIC24H и PIC24F — семейства 16-разрядных микроконтроллеров общего назначения. Самой широкой номенклатурой микроконтроллеров обладает семейство dsPIC30, как самое раннее. Это семейство делится на четыре подсемейства: общего назначения (GP — general purpose), управление двигателями (MC — motor control), управление интеллектуальными источниками питания (SMPS — Switch Mode Power Supply) и семейство Sensor Family со встроенным 12-разрядным АЦП для оцифровки, предварительной обработки и фильтрации данных с внешних датчиков.

Системная шина

Системная шина состоит из 16-разрядной шины данных и 24-разрядной шины адреса (рис. 1). Организована линейная адресация памяти программ (8 Мбайт) и памяти данных (64 кбайт) с возможностью отображения любого 32-килобайтного окна памяти программ на фиксированную область памяти данных (PSV — Program Space Visibility). Также возможен обычный табличный доступ к памяти программ (как это реализо-

вано в 8-разрядных микроконтроллерах Microchip).

Ядро

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

Рис. 1. Структурная схема микроконтроллеров семейства РІС24Р

ответственно, одинаковую систему команд. Кроме того, в dsPIC30 и dsPIC33 встроено ядро ЦОС со своим дополнительным набором

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

тельность которого составляет 4 периода тактовой частоты для dsPIC30 и 2 периода для dsPIC33, PIC24H, PIC24F.

Таблица 2. Система команд ядра ЦОС микроконтроллеров семейств (ЗвРЮЗО и (ЗвРЮЗЗ

Мнемоника Выражение

CLR A = 0

ED A = (x-y)2

EDAC A = A+(x-y)2

MAC A = A+(xxy)

MAC A = A+x2

MPY A = xxy

MPY A = x2

MPY.N A = -xxy

MSC A = A-xxy

Источник:

внешний тактовый сигнал кварцевый генератор, внутренний RC-генератор

Fose

Рис. 2. Структурная схема модуля ФАПЧ микроконтроллеров семейств dsPIC33, PIC24H и PIC24F

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

В ядро ЦОС встроен модуль умножения 17x17, 40-разрядный модуль арифметического сдвига, аппаратный контроль переполнения результата, модули управления адресацией памяти, модули управления аппаратно реализованными циклами, умножение с накоплением, с предвыборкой по двум шинам X и Y, аппаратным контролем переполнения результата, его округлением и т. д. С помощью специального регистра управления ядром ЦОС возможен выбор дробного или целочисленного умножения, умножения со знаком или без учета знака, метода округления результата.

Управлением питанием Для гибкого управления потребляемой мощностью с состав микроконтроллеров включены три режима энергосбережения: SLEEP — полный останов тактирования ядра и периферийных модулей (аналогично режиму в 8-разрядных микроконтроллерах Microchip), IDLE — останов тактирования только ядра, периферийные модули работают на рабочей тактовой частоте. Режим DOZE (в dsPIC30 отсутствует) — независимое тактирование ядра и периферийных модулей, позволяющее очень гибко управлять потребляемой мощностью микроконтроллера. Например: относительно редкая обработка данных, поступающих по внешним интерфейсам, но требующая своевременной реакции. В этом случае включенные периферийные модули тактируются номинальной тактовой частотой, а ядро — пониженной частотой, формируемой из основной частоты отдельным делителем.

Тактовый генератор Доступны шесть источников тактовой частоты: внешний тактовый сигнал 0-40 МГц, FRC — внутренний высокочастотный программно калибруемый RC-генератор 7,37 МГц (8 МГц в PIC24F), LPRC — внутренний низкочастотный RC-генератор 512 кГц, HS — высокочастотный кварцевый генератор

10-25 МГц, LP — низкочастотный кварцевый генератор (кроме dsPIC30), ERC — внешний RC-генератор. Генераторы FRC и HS могут быть подключены к встроенному модулю ФАПЧ (PLL) (рис. 2). Возможность быстрого переключения источника тактового сигнала «на ходу» повышает гибкость управления потребляемой мощностью. Встроенный узел контроля сбоев высокочастотного генератора позволяет значительно повысить надежность конечного изделия: работа микроконтроллера в этих случаях не прекращается, так как автоматически подключается встроенный RC-генератор.

Контроллер прерываний

Контроллер прерываний построен на основе векторного контроллера прерываний с поддержкой приоритетов, подключен к единственному входу прерывания ядра, обслуживающему до 44 источников прерываний для dsPIC30, до 118 для dsPIC33/PIC24F/ PIC24Hb и до 8 источников исключений (exceptions/traps) и программных прерываний (software traps). Каждый из источников прерываний имеет свой собственный вектор, которому можно назначить любой приоритет (до 7 уровней). Особенно стоит отметить следующую особенность: фиксированное время входа в прерывания и выхода из него (interrupt latency), что немаловажно при обработке

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

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

Расширенный мультиплексор портов ввода/вывода

Расширенный мультиплексор портов ввода/ вывода (PPS — Peripheral Pin Select Crossbar) позволяет встраивать в микроконтроллеры с малым числом выводов очень богатый набор периферийных модулей. Благодаря этому, в зависимости от технических требований один и тот же микроконтроллер можно ис-

пользовать в различных изделиях [2]. Например, к одному аппаратному модулю UART микроконтроллера можно подключать сразу четыре устройства (рис. 3) с UART, причем переключение между устройствами может выполняться в процессе работы программы контроллера, то есть «на лету». Эта особенность также упрощает трассировку печатной платы устройства. Более того, корпус с меньшим числом выводов обходится дешевле в производстве и занимает значительно меньше места на плате устройства. Модуль PPS реализован в некоторых 18/28/44-выводных микроконтроллерах PIC24F и PIC24H. В будущем компания-изготовитель планирует размещать этот модуль и в других новых микроконтроллерах.

Серия микроконтроллеров SMPS Серия микроконтроллеров SMPS (Switch Mode Power Supply) специально спроектирована для работы в составе интеллектуальных многоканальных импульсных источников питания [3]. В будущем компания Microchip планирует выпускать микроконтроллеры серии SPMS не только в семействе dsPIC30, но и в новом семействе dsPIC33.

Простота перевода проектов на новые семейства

Вне зависимости от размера памяти все члены семейств dsPIC33, PIC24H и PIC24F имеют одинаково богатый набор периферийных модулей, что позволяет осуществлять плавный переход на новое поколение и расширять возможности приложения. Совместимая схема расположения выводов в значительной степени упрощает замену микроконтроллеров, размещенных в 64-выводных корпусах, на микроконтроллеры в 80-вывод-ных и в 100-выводных корпусах. Более того, одинаковая схема размещения выводов между семействами PIC24H и dsPIC33, аналогично тому, как это осуществлено для семейств PIC18 и dsPIC30, расширяет возможность наращивать производительность приложения, при этом отпадает необходимость смены фирмы-производителя.

Средства разработки

Все четыре семейства поддерживаются общей бесплатной средой разработки MPLAB IDE [4] со встроенным полным симулятором, ассемблером ASM30 и отдельно приобретаемым недорогим компилятором MPLAB C30 [5], построенным на базе популярного бесплатного компилятора GNU C с открытым исходным кодом. Компания Microchip выпускает обширный набор одноплатных модулей для ознакомления МК и разработки проектов на базе 16-разрядных микроконтроллеров dsPIC30/33 и PIC24F/H.

Заключение

В заключение можно привести неофициальные сравнительные данные производительности [6] семейств 16-разрядных микроконтроллеров компании Microchip с распространенными семействами 16/32-разрядных микроконтроллеров конкурирующих компаний (табл. 3, 4).

Подводя итоги, можно отметить, что выбор компании Microchip направления дальнейшего развития и вложения сил оказался весьма удачным. На свет вышло, пожалуй, самое удачное поколение 16-разрядных микроконтроллеров dsPIC30/dsPIC33/PIC24F/ PIC24H, получившее высокую популярность среди разработчиков и производителей.

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

Таблица 3. Сравнительная производительность семейств dsPIC30 и dsPIC33 в 16-разрядных арифметических операциях

Процессор MIPS Компилятор Тактов Время выполнения, мкс

DSPIC30F 30 GNU ASM30 23 0,77

DSPIC33F 40 GNU ASM30 23 0,58

ARM7 60 ADS 1.2 116 1,95

MC56F8323 60 CodeWarrior 7.0 102 1,70

AT32AP7000 150 GCC 4.1.2 78 0,52

TMS320F2812 150 CCS - 0,25

Таблица 4. Сравнительная производительность

семейств (ЗвРЮЗО и (ЗвРЮЗЗ

при копировании 16-разрядных блоков данных

Процессор MIPS Компи- лятор Тактов Время выполнения, мкс Размер кода, байт

DSPIC30F 30 GNU ASM30 138 4,6 30

DSPIC33F 40 GNU ASM30 138 3,45 30

ARM7 60 ADS 1.2 1410 23,5 112

AT32AP7000 150 GCC 4.1.2 771 5,14 114

TMS320F2812 150 CCS 762 5,08 44

Несмотря на стремительно растущую популярность 32-разрядных микроконтроллеров, поколение dsPIC30/dsPIC33/PIC24F/PIC24H твердо и уверенно занимает свою нишу в медицинской и промышленной аппаратуре, в которой всегда требуется повышенная надежность, большая функциональность, высокая производительность, малые габариты и низкая стоимость.

Литература

1. Поколение 16-разрядных микроконтроллеров компании Microchip. www.microchip.com/dspic

2. Расширенный мультиплексор портов ввода/вывода в PIC24. www.microchip.com/pps

3. Новые микроконтроллеры dsPIC30 серии SMPS. Новости электроники. 2007. № 13.

4. Среда разработки MPLAB IDE. www.microchip.com/mplab

5. С-компилятор MPLAB C30. www.microchip.com/C30

6. http://benchmarks.caxapa.ru

Современные средства разработки программ на языке С для микроконтроллеров PIC и dsPIC от компании mikroElektronika

ME-MIKRO C FOR PIC и ME-MIKRO C FOR DSPIC – две среды разработки программ на языке С для микроконтроллеров PIC и dsPIC от компании mikroElektronika. Продукты имеют похожие оболочки (IDE – integrated development environment) с удобным многооконным интерфейсом пользователя. Вид рабочего экрана системы mikroC for dsPIC приведен на рис.1. Каждая среда включает полный набор инструментальных модулей – редактор текста, компилятор, редактор связей, библиотекарь, отладчик и программатор флэш памяти микроконтроллера.

 Компания mikroElektronika поддерживает создание прикладных программ для микроконтроллеров большим количеством функций обслуживания периферийных устройств. В набор входят функции обслуживания АЦП и ЦАП, символьных и графических дисплеев, стандартных интерфейсов (UART, SPI, I2C, CAN) и многие другие. Использование этих функций позволяет быстро продвигаться по пути приобретения практических навыков интеграции программного обеспечения и аппаратуры.
После установки системы программирования в директории ProgramFiles…examples можно найти демонстрационные программы работы с периферийными устройствами.

Каждая среда поддерживает как автономную отладку разрабатываемой программы с использованием программно-логической модели, так и комплексную отладку аппаратуры и ПО с использованием аппаратного отладчика ICD (In-Circuit Debugger), интегрированного в аппаратные средства от компании mikroElektronika. При отладке возможен пошаговый режим выполнения команд, выполнение фрагмента программы до курсора, отладка с использованием механизма контрольных точек. Возможность наблюдения за изменением значений переменных и регистров специальных функций предоставляет окно Watch.

Создание проекта значительно ускоряют такие встроенные инструменты (Tools), как ASCII Chart (средство формирования кодов, удобное при работе с дисплеями), USART Terminal (средство визуального программирования универсального последовательного порта), Segment Display Decoder (средство формирования кодов для 7-сегментного индикатора). На рис.2 приведено одно из окон инструмента Filter designer tool системы mikroC for dsPIC, отображающее частотную характеристику фильтра после ввода его параметров. Этот инструмент является средством формирования исходного текста на выбранном языке программирования, описывающего определенный в диалоговом окне тип фильтра с указанными  параметрами.

Отличительные особенности:

  • полный набор инструментальных модулей – редактор текста, компилятор, редактор связей, библиотекарь, отладчик и программатор флэш-памяти микроконтроллера;
  • синтаксический и параметрический ассистент редактора текста, ускоряющий создание программ;
  • встроенный отладчик с большим количеством удобных функций;
  • простой механизм установки контрольных точек;
  • усовершенствованные окна просмотра;
  • встроенные библиотеки, облегчающие обслуживание периферийных устройств;
  • продвинутая статистика скомпилированного кода;
  • встроенный инструментарий (Tools), ускоряющий создание проекта.

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

  1. CD с компилятором mikroC;
  2. печатное руководство;
  3. краткое руководство (Первый проект).

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

Источник: terraelectronica.ru

Другие новости ...

MikroC

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

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

Библиотека готовых функций поддерживает АЦП, энергонезависимую память и широтно-импульсные модуляторы микроконтроллера; внешние карты памяти стандартов Compact Flash, ММС и SD; файловую систему FAT; интерфейсы SPI, I2C, 1-Wire, RS-485, USART, CAN, USB, PS/2 и Ethernet. В среду mikroC встроен генератор кода алфавитно-цифровых и графических жидкокристаллических индикаторов, терминал интерфейса связи USART, позволяющий работать с RS-232.

Написание кода программы подобно работе в любом стандартном текстовом редакторе, используемом в операционной системе Windows. Редактор поддерживает множество специальных возможностей, облегчающих работу. Среди них:
• контекстная подсветка, улучшающая читаемость программы;
• кодовый ассистент, подсказывающий правильные названия существующего кода;
• ассистент параметров, предлагающий их правильный ввод;
• кодовые шаблоны, ускоряющие безошибочный ввод стандартных операторов;
• автоматическая коррекция, исправляющая часто встречающиеся опечатки разработчиков;
• закладки для облегчения навигации в емком коде.
Остальные возможности редактора кода, как и прочие функции программы, подробно описаны во встроенной справочной системе mikroC.
Ошибки, обнаруженные в ходе компиляции, будут представлены в особом окне. После удачной компиляции создаются: файл с комментариями на ассемблере и HEX-файл, позволяющий использовать различные программаторы. Также можно взглянуть на статистические данные о коде.

Новые программы выглядят как проекты, состоящие из основного файла с расширением *.ррс, нескольких файлов с исходным кодом (*.с), а также вспомогательных файлов, создаваемых после процедуры компиляции (*.hex, *.mcl, *.lst, *.asm). Любой файл проекта можно распечатать.
Отладчик, симулирующий работу микроконтроллера, позволяет доработать программный код, написанный на языке Си. Работает он в трех режимах: пошаговом исполнении программы, пошаговом с «перешагиванием» функций и выполнении до позиции курсора.
Присутствует функция экспорта кода, переводящая его в формат HTML для публикации в Интернете.

В настоящее время среда разработки mikroC представлена в виде шести вариантов, поддерживающих различные популярные архитектуры микроконтроллеров (PIC, dsPIC, PIC32, AVR, 8051 и ARM). Их интерфейсы, а также названия большей части возможностей программы, практически неизменны для разных семейств микроконтроллеров. ПО платное, однако можно скачать и опробовать бесплатную версию mikroC каждого варианта. Использование демоверсий лишает возможности обновлений и технической поддержки, кроме этого они имеют урезанный до 4096 байт размер выходного кода, которого, тем не менее, вполне достаточно для создания простых приложений.

Разработчик mikroC европейская компания MikroElektronika. Ее штаб-квартира расположена в Белграде. MikroElektronika является одной из немногих предприятий, чьи решения охватывают все основные архитектуры микроконтроллеров. Кроме mikroC существуют аналогичные программные продукты mikroPascal и mikroBasic. Помимо этого, компания выпускает различные макетные платы, платы с предустановленными уникальными возможностями, программаторы, отладчики, дополнительное программное обеспечение и книги по микропроцессорам.

Интерфейс mikroC доступен только на английском языке.

Программа работоспособна в среде Windows 98, 2000, NT, XP, Vista, 7 и 8.

Распространение программы: Shareware (платная) от 249$. Есть бесплатная версия с ограничениями

Официальный сайт MikroC: http://www.mikroe.com/mikroc/

Обсуждение программы на форуме

MPLAB - MPLAB - qaz.wiki

MPLAB - это собственная бесплатная интегрированная среда разработки для разработки встроенных приложений на микроконтроллерах PIC и dsPIC , разработанная Microchip Technology .

MPLAB X - это последняя редакция MPLAB, разработанная на платформе NetBeans . MPLAB и MPLAB X поддерживают управление проектами, редактирование кода, отладку и программирование микроконтроллеров Microchip 8-битных PIC и AVR (включая ATMEGA), 16-битных микроконтроллеров PIC24 и dsPIC, а также 32-битных SAM (ARM) и PIC32 (MIPS) ) микроконтроллеры.

MPLAB разработан для работы с сертифицированными MPLAB устройствами, такими как MPLAB ICD 3 и MPLAB REAL ICE , для программирования и отладки микроконтроллеров PIC с помощью персонального компьютера . Программисты PICKit также поддерживаются MPLAB.

MPLAB X поддерживает автоматическую генерацию кода с помощью конфигуратора кода MPLAB и подключаемых модулей MPLAB Harmony Configurator.

MPLAB X

MPLAB X - это последняя версия MPLAB IDE, созданная Microchip Technology и основанная на платформе NetBeans с открытым исходным кодом. MPLAB X поддерживает редактирование, отладка и программирование Microchip 8-битные, 16-битные и 32-битные PIC микроконтроллеров .

MPLAB X - первая версия среды IDE, которая включает кроссплатформенную поддержку операционных систем macOS и Linux в дополнение к Microsoft Windows .

MPLAB X поддерживает следующие компиляторы:

  • MPLAB XC8 - компилятор C для 8-битных устройств PIC и AVR
  • MPLAB XC16 - компилятор C для 16-битных устройств PIC
  • MPLAB XC32 - компилятор C / C ++ для 32-битных устройств PIC32 на базе MIPS и SAM на базе ARM
  • HI-TECH C - компилятор C для 8-битных устройств PIC (снято с производства)
  • SDCC - компилятор C с открытым исходным кодом

MPLAB 8.

a b c Архивы MPLAB IDE , Microchip

внешние ссылки

<img src="https://en.wikipedia.org//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="">

Сфера Электроники. Партнеры

Компания Microchip Technology Inc. – одна из мировых лидеров в разработке и производстве недорогих, экономичных и высокопроизводительных 8/16-разрядных RISC микроконтроллеров, износостойкой энергонезависимой памяти, а также другой компонентой базы, дополняющей микроконтроллер до получения завершенного устройства (интерфейсы, аналоговые и радиочастотные компоненты и др.).

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

Номенклатура изделий компании включает:

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

2. Аналоговые компоненты и интерфейсы - Microchip предлагает широкий спектр аналоговых компонентов, при этом основное внимание уделяя устройствам управления питанием, устройствам термоуправления, линейным устройствам и устройствам со смешанными сигналами. Кроме того, семейства интерфейсных компонентов предлагает законченные решения по внедрению CAN, LIN, последовательного или инфракрасного порта во встроенные приложения. Данная обширная номенклатура аналоговых и интерфейсных компонентов дополняет микроконтроллеры PICmicro, обеспечивая завершенное решение встроенной системы.

3. Радиочастотные устройства - К радиочастотным устройствам компании Microchip относятся микроконтроллер PIC (rfPIC) с встроенным УВЧ радиочастотным передатчиком, а также УВЧ радиочастотные приемники для построения маломощных радиосистем. Кроме того, к данным изделиям относится линия устройств радиочастотной идентификации (RFID), работающих на низкой частоте.

4. Устройства аутентификации типа KEELOQ - Запатентованная технология Microchip «прыгающего» кода KEELOQ является идеальным решением для большинства устройств аутентификации, в т.ч. для систем безключевого входа и систем логического/физического управления доступом.

5. Устройства памяти - Microchip предлагает одну из самых обширных на рынке встроенных систем управления номенклатуру высоконадежных устройств памяти. Выбор возможен по емкости памяти, рабочему напряжению, протоколу шинного интерфейса, диапазону рабочей температуры, а также по типам корпусов.

6. Цифровые сигнальные контроллеры dsPIC - Семейство устройств dsPIC позволяет легко осуществлять переход от функционирования как микроконтроллера до цифрового сигнального процессора. Данные устройства объединяют преимущества управления микроконтроллера с высокой скоростью вычислительных операций цифрового сигнального процессора, при этом являясь однокристальным решением идеально подходящим для задач встроенного управления.

7. Инструментальные средства проектирования - Компания Microchip разработала богатый набор простых в изучении средств автоматизации проектирования для всех семейств продукции. Средства проектирования разработаны для осуществления возможности быстрого и простого программирования при проектировании специфических приложений. Эти средства обеспечивают программную миграцию от минимальной конфигурации до реально-временной эмуляции, при этом используя общий язык ассемблер. Инсталлированная база этих программных сред проектирования выросла до внушительных размеров – 200000 систем во всем мире.

Возможности компании

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

Ключевые рынки сбыта

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

Полностью подконтрольный процесс производства

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

Организация выпуска и сбыта продукции

Microchip – глобальный конкурент, поставляющий компоненты и услуги в центры мировых технологий. Проектное и технологические подразделения компании размещены в Чандлере и Темпе, Аризоне, Mountain View, Калифорнии, Швейцарии и Индии. Современное оборудование для производства подложек кристаллов, расположенное и в Чандлере и Темпе, университетском городке в Аризоне, а также на дополнительных 100000 кв. футов производственных площадей в университетском городке Puyallup в Вашингтоне, позволяет выпускать лучшие в промышленности кристаллы микросхем. На предприятиях Microchip в Бангкоке, Таиланде, а также Шанхае (Китай) осуществляется сборка и испытание микросхем. Использование многих предприятий по производству, сборке и испытанию с общими площадями более 640000 кв. футов по всему миру позволяет компании Microchip выполнять усиливающиеся требования быстроразвивающейся базы клиентов. Microchip осуществляет поддержку клиентов из инженерных и торговых подразделений в Азии, Северной Америке, Европе и Японии. Эти подразделения укомплектованы всеми средствами, способными удовлетворить любые ожидания заказчиков и могут осуществлять техническую и деловую поддержку.

Влияние компании распространяется на более 60 дистрибьюторов и сети представительств производителя, которые обслуживают 54 страны по всему миру. Microchip стремится обеспечивать своих клиентов лучшей технической поддержкой с высокой степенью ответственности. Интернет-сайт компании Microchip обеспечит Вас самыми последними версиями технической информации, программных средств проектирования, рекомендаций к применению, а также новостями по технологиям и продукции компании Microchip.

dsPIC Страница

dsPIC Страница

dsPIC Проекты


Это проект был попыткой оценить производительность некоторых основных DSP функции dsPIC. Было создано несколько источников сигналов, которые затем были загружены. в ассортимент фильтров и функций DSP. Вывод можно анализировать с использованием графического отображения данных временной или частотной области или отправленных в Ц / А для внешний анализ.

Было хотели оценить компилятор MPLAB C30 и библиотеку DSP и узнать, как хорошо, он работал, поэтому все, кроме пары небольших подпрограмм DSP, были написаны на 'C'.

Оборудование, выбранное для этого проекта была оценочная плата dsPICDEM 1.1 от Microchip. Он обеспечивает автономная платформа для демонстрации без модификаций оборудования или дополнения.

Блок-схема

Описание проекта

dspdemoarticle.pdf

Файлы исходного кода проекта

(обновлено 04.10.2005 для МПЛАБ 7.10)

dspdemosource.почтовый индекс


С первые пещерные жители заметили тень от камня, движущуюся как день прогрессирует, мы разрабатываем новые способы измерения и отображения проходящего времени. http://physics.nist.gov/GenInt/Time/time.html

Мы сейчас измерять колебания атомов цезия, чтобы отслеживать наше прохождение через 4-е измерение.

введение dsPIC казалось таким же хорошим поводом для разработки еще одного Часы.Чтобы было интереснее, было решено использовать основной метод установить часы, настроившись на одну из коротковолновых трансляций NIST WWV или WWVH и направляют сигнал на часы для декодирования информации о времени и установки к правильному времени.

Как второстепенная задача, перед dsPIC стояла задача создавать различные звуки "часов", такие как как колокольчики, кукушки и гонги.

Это Проект уходит корнями в старый проект, вдохновленный Dr. Дэвид Миллс http://www.eecis.udel.edu/~mills/ , который разработал часы, используя методы DSP для извлечения информация о времени из сигналов WWV.

Описание проекта

cuckooclockarticle.pdf

Исходные файлы проекта

(обновлено 04.10.2005 для MPLAB 7.10)

cuckooclocksource.zip

40-контактная и 28-контактная плата разработки dsPIC

dsPIC Development Board - это инструмент для разработки и оценки, который помогает создавать встроенные приложения с использованием цифровых контроллеров сигналов dsPIC30F для семейства контроллеров двигателей.Гнезда предусмотрены для 28- и 40-контактных устройств в семействе управления двигателем.

Плата разработки dsPIC была разработана в основном для цифрового контроллера сигналов двигателя dsPIC30F4011 в 40-контактном разъеме управления двигателем и 28-контактного цифрового сигнального контроллера dsPIC30F4012. Плата также может использоваться с другими микросхемами dsPIC. Плата снабжена стабилизатором 3,3 В и 5 В, кварцевыми генераторами и разъемом для программирования. Кроме того, на плате имеется двойной разъем для всех входов / выходов, диод защиты от обратного питания, встроенный 3.Светодиод 3 В и 5 В, винтовой зажим для входа питания, кнопочный переключатель для сброса, 6-контактный разъем для программирования, разъем для последовательной связи, перемычки для опции многосерийной связи, электролитический конденсатор для фильтров. Дополнительное обеспечение для регулятора LM317T TO220 на 3,3 В и 5 В и перемычки для выбора источника питания 3,3 или 5 В для питания dsPIC.

Технические характеристики

  • Двойные разъемы для 28- и 40-контактных устройств PDIP
  • Входной разъем обратного питания на плате
  • Вход питания от 7 до 15 В (LM7805 и LM1117-3.3V) Регуляторы
  • Дополнительный вход питания от 7 В до 36 В постоянного тока при установке LM317T TO220 IC
  • Примеры прикладных программ и файлы проектов для поддерживаемых устройств dsPIC30F, доступные на веб-сайте microchip
  • dsPIC30F4011 40-контактный PDIP и dsPIC30F4012 28-контактный PDIP
  • Встроенный двойной регулятор на 5 В и 3,3 В, обеспечивающий полное заполнение низкого уровня и требования к источнику питания TTL.
  • Программирование на плате Разъем заголовка
  • Встроенный светодиодный индикатор питания 3,3 В и 5 В
  • Перемычка для выбора 3.3 В или 5 В на DSPIC
  • Перемычка для 2 портов UART или выбора CAN
  • Интерфейс сети контроллеров (CAN)
  • 1 кнопка для сброса
  • Доступ ко всем контактам на разъемах устройства dsPIC30F через двойные заголовки

Схема

Распиновка

Фото

Dspic33 | Hackaday

Кто знает, как далеко могли бы зайти система Vectrex или игры с векторной графикой в ​​целом, если бы не крах 1983 года? Консольные войны могли бы быть совершенно другими, если бы не эта кнопка сброса, основанная на насыщении рынка.

[Мэтт Карр] не владеет Vectrex, но у него есть осциллограф Tektronix 465. После напряженного труда, посвященного любви и документации, у него также есть блестящая новая аркадная система с векторной графикой, которую он построил сам. Он основан на dsPIC33 и использует двухканальный ЦАП для создания каркасной трехмерной графики и отправки координат X-Y на осциллограф через выходы фонокорректора. Внутренний ЦАП PIC предназначен для аудио и не очень хорошо справляется с графикой, поэтому [Мэтт] использовал TLV5618A, совмещенный с выводами ЦАП PIC.

Ocelot не принимает патроны, хотя когда-нибудь сможет. На данный момент смена игры означает отказ от PICkit. На данный момент есть два на выбор: Star Lynx, потрясающий летающий шутер, в котором вы можете спасти популяцию кошачьих, и Mattsteroids, что именно так звучит. Существует только один «Оцелот», и хотя он не продается, у [Мэтта] есть потрясающая техническая документация, если вы захотите ее воспроизвести. Одна вещь, которую вы, возможно, не сможете воспроизвести, - это потрясающая винтажная реклама, которую он сделал для Ocelot, которая показывается после перерыва.

Нет прицела? Вы можете делать векторную графику на ЭЛТ с ПЛИС.

Читать далее «Аркадная система Ocelot иллюстрирует возможности векторной графики» →

Хотя макетные платы для микроконтроллеров не являются чем-то новаторским, они могут быть дорогими и часто чрезмерными для того, что вы делаете, когда они пытаются разместить все, что вы можете использовать, включая кухонную раковину. когда [Брайан] заметил, что в его проектах все больше и больше используется Microchip PIC24, пришло время иметь под рукой доску для разработчиков.

В результате получилась небольшая плата с разъемами для USB, UART (через FTDI), конечно, тонны контактов GPIO и разъем, который соединяется с дочерней платой для замены либо PIC24FJ128GC006, либо DSPIC33EP256MU806, с потенциалом большего . Также на плате находится система регулятора мощности и двойные кристаллы, позволяющие работать на полной скорости или в режимах снижения мощности.

Схема

и макет печатной платы доступны (в формате Diptrace) вместе с файлом шаблона платы для использования с MPLAB на github.com. Как только у вас все будет вместе, вам понадобится программатор PIC, [Брайан] использует надежный программатор Microchip MPLAB ICD 3, но, естественно, доступны и другие.

Microchip недавно анонсировала новую собственную плату разработки для серии PIC16F. Плата Curiosity имеет встроенную поддержку программирования и отладки (chipKIT не требуется). Инженер, который разработал эту плату, [Джон Мутон] собирается присоединиться к нам 30 июля, чтобы побеседовать о процессе проектирования. Мы также собираемся раздать некоторые из первых плат, которые сошли с производственной линии… подробнее об этом на следующей неделе.

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

Он использует dsPIC33 для считывания с полдюжины аналоговых датчиков в нижней части платы. Мы не совсем знакомы с функциями чипа, но [Exapod] говорит, что у него есть функция автоматического сканирования, которую он использует для считывания показаний датчиков.Это позволяет ему сэмплировать с 12-битным разрешением из всех шести из них на частоте около 30 кГц. Неудивительно, что эта штука такая отзывчивая в демонстрационном видео, приведенном ниже. Дорожка, которую он использует, представляет собой просто белую бумагу для принтера с толстым контуром из черной изоленты, расположенным несколько волнистым узором.

Это тоже забавная задача с игрушками. Вот тот, который взламывает гексапод, чтобы он следил за линиями.

Читать далее «Робот, следящий за линией прототипа» →

Добрый [Доктор Игуана] работал над парой роботов, которые общаются друг с другом с помощью беспроводных трансиверов mRF24J40MA.Это представляет проблему при отладке, поскольку у него действительно не было простого способа отслеживать эти коммуникации. Его решение состояло в том, чтобы построить собственную базовую станцию, которая позволяет ему использовать компьютер для отслеживания того, что говорит каждый робот.

Он раскрутил свою собственную доску для этого проекта. Подключение по USB обеспечивается микросхемой FTDI FT232RL. Это преобразует USB-соединение в последовательный для микроконтроллера dsPIC33. Микросхема FTDI имеет довольно мелкий шаг, но отпечаток все еще может быть изготовлен с использованием переноса тонера, если вы хорошо знакомы с процессом.[Доктор Игуана] сделал несколько снимков незанятой платы крупным планом, что может заставить вас немного понервничать с паяльником. На другом конце платы находится тот же беспроводной модуль Microchip, который он использовал в своих роботах.

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

Шаговыми двигателями

довольно легко управлять с помощью микроконтроллера. Но если вы хотите бегать, то при большом количестве оборотов в секунду все довольно быстро усложняется. [Уве] изучал и создавал драйверы шагового двигателя в течение многих лет, и недавно он решил создать высокопроизводительный драйвер на основе эталонного дизайна MicroChip.

Как и в случае с эталонным дизайном, на его плате используется dsPIC33. Но вместо того, чтобы использовать серию дискретных МОП-транзисторов для переключения сигналов на двигатель, он использовал драйвер двигателя L298N. Вот он торчит рядом с большим конденсатором.При сильном движении ему нужен собственный радиатор, который [Уве] вырезал из радиатора большего размера процессора. Во время разработки он решил использовать ШИМ на основе прерываний, а не аппаратную ШИМ, предлагаемую dsPIC. Это работает, но он пойдет другим путем, если сделает это снова.

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

Читать далее «Высокоскоростное шаговое вождение: 25 тыс. Шагов в секунду» →

[ЕСилин] построил автономный вездеход, который бродит по пустующим залам своей школы.На капоте автомобиля он установил два датчика гидролокатора Maxbotix, которые отлично справляются с удержанием транспортного средства в центре коридора. Он будет следовать за стеной за углом (предпочитая левую сторону из-за датчика, обращенного влево), и остановится, чтобы исправить себя, если отклонится от курса. Это потому, что когда вы не водите dsPIC33, он оснащен контроллером скорости Traxxas XL-5 и сервоприводом для рулевого управления. Но этот маленький парень еще не потерял бодрости. Ручное управление и включение с пульта дистанционного управления, чтобы вы могли сжечь напольную плитку.Взгляните на демонстрацию после перерыва с демонстрацией ручного управления, показанной примерно в 4:10. Читать далее «Автономный вездеход бродит по залам» →

Макетная плата dsPIC

- uCHobby

Бернард знакомит нас с микроконтроллером dsPIC. Он показывает нам свою Arduino-подобную доску проекта для dsPIC и дает советы по инструментам разработки программного обеспечения.

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

Эта штука может напоминать вам Arduino, но это не так, это даже не AVR, а dsPIC30F2012. Много раз я хочу что-то попробовать, но мне лень делать все это снова и снова на макетной плате, так почему бы не спаять это быстро на сборной плате, чтобы я мог просто вставить это. И всегда слишком ленив поставить на RS232, но это отличная отладка, поэтому он на плате, фактически это единственная функция, встроенная в плату, потому что это действительно единственное, что мне нужно.

А что умеет этот dsPIC? Ну, у него есть такие вещи, как:

  • 24 КБ флэш-памяти (доступ для записи ЦП)
  • 2 КБ ОЗУ
  • 1 КБ EEPROM
  • 16 бит 30MIPS CPU
  • Двигатель DSP
  • 8-канальный 12-битный АЦП
  • 2 выхода ШИМ 16 бит
  • 1 адресный UART
  • 1 Последовательный (SPI / I2C) до 30 Мбит
  • Часы PLL

Это не high-end dsPIC, а просто маленький и простой. Лучшие из них имеют 256 КБ флэш-памяти и 16 КБ ОЗУ, более быстрые процессоры со скоростью 40 MIPS, 32 канала АЦП, 4 UART, 3 последовательных порта и т. Д.

В любом случае, большие dsPIC довольно насыщены функциями.Итак, что вы можете сделать с таким MCU, микрочип сделал с ними распознавание голоса, 12-канальный эквалайзер и другие полезные вещи. Но такие вещи, как библиотека распознавания голоса, не бесплатны, вам нужно ее покупать.

Говоря о стоимости программного обеспечения, микрочип делает для них официальный компилятор, который работает в этой среде IDE, под названием MPLAB, который является бесплатным, но сам по себе он может выполнять только ассемблер, но они также делают компилятор C, который также работает внутри IDE. Есть 3 компилятора C: C18 (для семейства PIC18F), C30 (для всех 16-битных) и C32 (для всех новых 32-битных семейств).Также MPLAB включает симулятор для тестирования вашего кода и поддерживает отладчики, очевидно, только официальные от Microchip.

Вы можете получить MPLAB и компилятор C с веб-сайта Microchips

Теперь вы, вероятно, задаетесь вопросом о неофициальных компиляторах, поэтому вот несколько

Итак, вы спросите, что лучше. Что ж, не могу вам сказать, так как я использовал только компиляторы MPLAB и MikroElektonikas. Что я могу сказать о них, так это то, что компиляторы от MikroE очень просты в использовании, имеют отличные библиотеки и помощь, с большим количеством примеров кода.Но мне это кажется немного неуклюжим, когда я пытаюсь сделать что-то посложнее. Тем не менее, это отличный компилятор, особенно для начинающих. Платы для разработки от них отличные, они обойдутся вам примерно в 100 баксов. Я много использовал MPLAB C30 для dsPIC, и он работает довольно хорошо, однако это более профессиональное программное обеспечение, поэтому его почти не сложно использовать. Чтобы понять это, нужно время, но тогда это не проблема. В отличие от компиляторов MikroE, которые можно освоить примерно за 10 минут, если вы уже знаете основы C, Basic или Pascal.

Но когда у вас есть программа, вам нужно загрузить ее в MCU. Эта плата имеет разъем ICSP, поэтому ее могут программировать обычные программисты. Но вы можете воспользоваться преимуществами встроенного RS232, используя загрузчик.

Если вы не знакомы с загрузчиками, то вот как они работают. По сути, это небольшая программа, которая запускается при запуске PIC и проверяет наличие сигнала для перехода в режим программирования, если нет, то просто позвольте программе, которая уже находится в памяти, запуститься. Но если он получит сигнал (высокий контакт, данные в порту и т. Д.), Он начнет связь с ПК.Затем компьютер может отправить ему программу, и загрузчик запишет ее во флеш-память. После этого он просто запускает программу, и после этого программа получает полный контроль над COM-портом.

Здесь вы можете получить загрузчик, который работает на устройствах PIC16F, PIC18F и dsPIC.

Что касается этой платы, то она отлично подходит для небольших проектов только из-за небольшого количества операций ввода-вывода и небольшого dsPIC. Но с большим количеством устройств на шине SPI это, вероятно, будет много. Это хорошее начало для dsPIC, но вы можете подумать об использовании больших 40-контактных, которые имеют множество дополнительных функций, или даже 100-контактных для большого проекта.Они отлично подходят для проектов, которым требуется немного больше мощности процессора, а также 16 бит очень помогают. Быстрое умножение, деление и операции с массивами делают его удобным для обработки в реальном времени благодаря механизму DSP, который похож на математический сопроцессор.

Это почти все, что вам нужно знать о микроконтроллерах dsPIC. Все, что вам нужно сделать сейчас, это придумать несколько супер крутых проектов и, если повезет, заставить их работать отлично. Также приятно, если вы разместите свой проект в сети, чтобы все могли им насладиться и, возможно, даже создать его.

Я сам разрабатываю портативный цифровой осциллограф с использованием dsPIC и графического ЖК-дисплея. Вероятно, будет статья с графической библиотекой для нее с исходным кодом и еще одна статья о готовой области применения.

Схема:

pic - биты конфигурации системы dsPIC в проекте MPLAB X против тех же битов конфигурации в коде

Я понимаю, что биты на вкладке Configutaion Bits где-то хранятся в проекте.Это правильно?

Как вы сказали, это неверно.

Вкладка «Configuration Bits» - это способ описать, как должны быть установлены слова конфигурации для вашего проекта контроллера PIC.

После того, как вы установили биты конфигурации, нажмите кнопку «Сгенерировать исходный код для вывода». Выберите вкладку «Output - Config Bits Source» и вырежьте и вставьте содержимое только в один файл исходного кода.

Обычно на выходе получается исходный код на языке C.

Как вы, кажется, кодируете с помощью сборки PIC для dsPIC, это становится намного сложнее.

Это пример для dsPIC30F6015:

  / *
 * Файл: main.s
 * Автор: dan1138
 * Цель: DSPIC30F6015
 *
 * Создано 11 января 2019 г.
 * /

    .include "xc.inc"

; // FOSC
; #pragma config FOSFPR = FRC // Осциллятор (внутренний быстрый RC (биты режима Primary Osc Mode не меняются))
; #pragma config FCKSMEN = CSW_FSCM_OFF // Переключение часов и мониторинг (Sw Disabled, Mon Disabled)
 конфигурация __FOSC, FRC и CSW_FSCM_OFF

; // FWDT
; #pragma config FWPSB = WDTPSB_16 // Предделитель WDT B (1:16)
; #pragma config FWPSA = WDTPSA_512 // Предделитель WDT A (1: 512)
; #pragma config WDT = WDT_ON // Сторожевой таймер (включен)
 config __FWDT, WDTPSB_16 и WDTPSA_512 и WDT_ON

; // FBORPOR
; #pragma config FPWRT = PWRT_64 // Значение таймера POR (64 мс)
; #pragma config BODENV = BORV20 // Напряжение пониженного напряжения (зарезервировано)
; #pragma config BOREN = PBOR_ON // PBOR Enable (Включено)
; #pragma config LPOL = PWMxL_ACT_HI // Полярность выхода ШИМ нижнего плеча (активный высокий)
; #pragma config HPOL = PWMxH_ACT_HI // Полярность выхода ШИМ высокого уровня (активный высокий)
; #pragma config PWMPIN = RST_IOPIN // Сброс выходного вывода ШИМ (управление с помощью регистров PORT / TRIS)
; #pragma config MCLRE = MCLR_EN // Master Clear Enable (Включено)
 config __FBORPOR, PWRT_64 & BORV20 & PBOR_ON & PWMxL_ACT_HI & PWMxH_ACT_HI & RST_IOPIN & MCLR_EN

; // FBS
; #pragma config BWRP = WR_PROTECT_BOOT_OFF // Защита от записи программной памяти загрузочного сегмента (может быть записана программная память загрузочного сегмента)
; #pragma config BSS = NO_BOOT_CODE // Защита кода флеш-памяти программы загрузочного сегмента (без загрузочного сегмента)
; #pragma config EBS = NO_BOOT_EEPROM // Защита EEPROM данных загрузочного сегмента (EEPROM без загрузки)
; #pragma config RBS = NO_BOOT_RAM // Защита ОЗУ данных загрузочного сегмента (ОЗУ загрузки отсутствует)
 config __FBS, WR_PROTECT_BOOT_OFF & NO_BOOT_CODE & NO_BOOT_EEPROM & NO_BOOT_RAM

; // FSS
; #pragma config SWRP = WR_PROT_SEC_OFF // Защита от записи программы безопасного сегмента (отключено)
; #pragma config SSS = NO_SEC_CODE // Защита кода флеш-памяти программы защищенного сегмента (без защищенного сегмента)
; #pragma config ESS = NO_SEC_EEPROM // Безопасная защита данных сегмента EEPROM (без данных сегмента EEPROM)
; #pragma config RSS = NO_SEC_RAM // Защита ОЗУ данных безопасного сегмента (без защищенной ОЗУ)
 config __FSS, WR_PROT_SEC_OFF & NO_SEC_CODE & NO_SEC_EEPROM & NO_SEC_RAM

; // FGS
; #pragma config GWRP = GWRP_OFF ​​// Защита от записи общего сегмента кода (отключено)
; #pragma config GCP = GSS_OFF // Общая защита кода сегмента (отключено)
 конфигурация __FGS, GWRP_OFF ​​и GSS_OFF

; // FICD
; #pragma config ICS = ICS_PGD // Выбор канала связи (используйте PGC / EMUC и PGD / EMUD)
 конфиг __FICD, ICS_PGD



;. .................................................. ...........................
; Константы, специфичные для программы (литералы, используемые в коде)
; ................................................. .............................

    .equ SAMPLES, 64; Количество образцов



; ................................................. .............................
; Глобальные объявления:
; ................................................. .............................

    .global _wreg_init; Предоставляет глобальную область видимости подпрограмме _wreg_init
                                 ; Чтобы вызвать эту процедуру из файла C,
                                 ; поместите "wreg_init" в объявление "extern"
                                 ; в файле C..global __reset; Метка первой строки кода.

; ................................................. .............................
; Константы, хранящиеся в программном пространстве
; ................................................. .............................

    .section .myconstbuffer, код
    .palign 2; Выровнять следующее слово, хранящееся в области программы, по
                                 ; адрес, кратный 2
ps_coeff:
    .hword 0x0002, 0x0003, 0x0005, 0x000A




;................................................... ...........................
; Неинициализированные переменные в X-пространстве в памяти данных
; ................................................. .............................

    .section .xbss, bss, xmemory
x_input: .space 2 * SAMPLES; Выделение пространства (в байтах) для переменной.



; ................................................. .............................
; Неинициализированные переменные в Y-пространстве в памяти данных
; ..............................................................................

    .section .ybss, bss, ymemory
y_input: .space 2 * ОБРАЗЦЫ




; ................................................. .............................
; Неинициализированные переменные в ближней памяти данных (менее 8 КБ ОЗУ)
; . ................................................ .............................

    .section .nbss, bss, рядом
var1: .space 2; Пример выделения 1 слова для
                                 ; переменная "var1".




; .................................................................... ..........
; Раздел кода в памяти программ
; ................................................. .............................

.text; Начало раздела кода
__сброс настроек:
    MOV #__SP_init, W15; Инициализировать указатель стека
    MOV #__SPLIM_init, W0; Инициализировать регистр ограничения указателя стека
    MOV W0, SPLIM
    NOP; Добавить NOP для выполнения инициализации SPLIM

    CALL _wreg_init; Вызов подпрограммы _wreg_init
                                  ; При желании используйте RCALL вместо CALL




        ; << вставьте сюда еще код пользователя >>





Выполнено:
    BRA done; Заполнитель для последней строки исполняемого кода



;................................................... ...........................
; Подпрограмма: Инициализация регистров W до 0x0000
; ................................................. .............................

_wreg_init:
    CLR W0
    MOV W0, W14
    ПОВТОР №12
    MOV W0, [++ W14]
    CLR W14
    ВОЗВРАЩАТЬСЯ




; -------- Конец всех разделов кода ------------------------------------ ---------

.end; Конец программного кода в этом файле
  

Примечание: вам нужно будет изменить #include на .include "xc.inc" и измените операторы стиля C #pragma config на операторы стиля ASM config __REGISTER, SETTINGS . Убедитесь, что имена регистров битов конфигурации содержат два символа подчеркивания _ в качестве префикса.

Важный совет по безопасности: Ассемблер dsPIC вызывается с помощью средства запуска компилятора C. Файлы сборки должны использовать расширение имени файла .s . IDE можно заставить использовать другие, но это будет наиболее удобный способ управлять именами файлов в вашем проекте.

ПРЕДУПРЕЖДЕНИЕ. Имена битовых полей регистра конфигурации в конкретном файле сборки include .inc не всегда совпадают с именами, которые IDE знает для файлов C. Возможно, вам придется заглянуть в файл .inc , чтобы узнать, как они определены.

Проект

: dsPIC33 ADC / DAC Loopback

Ссылка на проект

Этот фрагмент кода написан для dsPIC33FJ128GP802. Он передает звук с АЦП (AD0) на правый канал ЦАП.Целью этого проекта является создание платформы DSP для цифровых звуковых эффектов и экспериментов по обработке цифровых сигналов (фильтры и т. Д.).

Аудио дискретизируется и выводится с частотой дискретизации 48000 отсчетов в секунду. АЦП производит выборку с разрешением 12 бит, а ЦАП выводит разрешение 16 бит.

Выборка выполняется с использованием прямого доступа к памяти (DMA). Это заполняет буфер из 256 слов выборками АЦП. Когда буфер заполнен, происходит прерывание, переключение на другой буфер. Это позволяет работать с одним из буферов, пока другой заполняется новыми сэмплами.Однако для этого проекта образцы просто выводятся без какой-либо другой обработки, как показано на рисунке ниже.

Блок-схема буферов АЦП / ЦАП в режиме пинг-понга.

Программа управляется прерываниями, поэтому основная функция ничего не делает. Последовательный интерфейс добавлен в целях отладки. Он просто выводит данные UART со скоростью 9600 бод, 8 бит + 1 стоповый бит, легко считываемые преобразователем UART-USB (например, FTDI).

Makefile включен в проект, что позволяет скомпилировать программу и прошить чип из командной строки. Более подробную информацию о Makefile можно найти здесь.

Ниже показана упрощенная схема ввода и вывода звука из системы. Входной операционный усилитель смещает аудиовход на половину напряжения питания. Выходной дифференциальный усилитель делает выход несимметричным. Операционные усилители - это операционные усилители MCP6002 rail-to-rail.

Ко входу добавлен конденсатор для фильтрации пиков 48 кГц, которые возникали во время выборки АЦП.Конденсатор на отрицательной дифференциальной выходной линии добавлен для фильтрации внеполосного шума.

Упрощенная схема для проекта. DsPIC33FJ128GP802 подключается / отключается, как указано в таблице данных. Аналоговое задание - это просто источник питания 3,3 В.

Фото макета представлены ниже. Макет построен на плате, покрытой медью, для повышения быстродействия.

Фотография макета.

Частотная характеристика была измерена в звуковом диапазоне (20–20 000 Гц) и показана ниже. Конденсаторы лишь немного уменьшают высокочастотный отклик, но в целом отклик довольно ровный.

Измеренная частотная характеристика реализации. Здесь 0 дБ - прямое соединение от входа к выходу.

Код дизайна

отдельно и бесшовная интеграция с dsPIC

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

Если вы ищете такую ​​гибкость для своей следующей конструкции, мы недавно добавили новую серию контроллеров цифровых сигналов (DSC) с двумя ядрами dsPIC DSC в одном кристалле в наш портфель 16-битных устройств. В семействе dsPIC33CH одно ядро ​​предназначено для работы в качестве ведущего, а другое - для работы в качестве ведомого. Это новое семейство DSC было разработано специально, чтобы облегчить независимую разработку кода для каждого ядра отдельными группами разработчиков, а затем обеспечить бесшовную интеграцию, когда они собраны вместе в одном чипе.

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

Например, в цифровом источнике питания ведомое ядро ​​управляет алгоритмами, требующими большого количества математических вычислений, в то время как главное ядро ​​независимо управляет стеком протоколов PMBusTM и обеспечивает функции мониторинга системы, повышая общую производительность системы и быстродействие.Распределение общей рабочей нагрузки между двумя ядрами DSC в одном устройстве обеспечивает более высокую плотность мощности за счет более высоких частот переключения, что приводит к уменьшению размера компонентов. Семейство dsPIC33CH было разработано для обновления системы в реальном времени, что особенно важно для источников питания, где обновления прошивки должны выполняться с нулевым временем простоя.

В автомобильном вентиляторе или насосе ведомое ядро ​​предназначено для управления критичной по времени скоростью и управлением крутящим моментом, в то время как ведущее устройство управляет связью с гибкой скоростью передачи данных (CAN-FD) сети контроллеров, мониторингом и диагностикой системы.Два ядра работают вместе, позволяя использовать передовые алгоритмы для повышения эффективности и быстродействия.

Кроме того, каждое из новых ядер в устройствах dsPIC33CH было разработано для обеспечения большей производительности, чем существующие ядра dsPIC DSC. Эти улучшения включают:

Семейство dsPIC33CH оптимизировано для высокопроизводительных приложений цифрового питания.
  • Больше регистров, выбираемых из контекста, для улучшения реакции на прерывания
  • Новые инструкции для повышения производительности цифрового сигнального процессора (DSP)
  • Более быстрое выполнение инструкций

Семейство dsPIC33CH обеспечивает беспрецедентную интеграцию.Помимо связи CAN-FD, для каждого ядра доступны расширенные периферийные устройства семейства dsPIC33CH, что позволяет снизить системные затраты и размер платы. К ним относятся высокоскоростные аналого-цифровые преобразователи (АЦП), цифро-аналоговые преобразователи (ЦАП) с генерацией сигналов, аналоговые компараторы, аналоговые усилители с программируемым усилением и аппаратное обеспечение с широтно-импульсной модуляцией (ШИМ) с высоким разрешением. Эти специализированные периферийные устройства с двумя ядрами обеспечивают резервный мониторинг для повышения функциональной безопасности и надежной конструкции системы.

Доступно восемь вариантов корпуса, от 28 до 80 контактов и размером всего 5 мм × 5 мм, семейство dsPIC33CH также предлагает объем памяти от 64 до 128 КБ флэш-памяти.

Поддержка разработки

Если вы готовы начать работу с приложением, использующим семейство dsPIC33CH, эти новые DSC поддерживаются нашей экосистемой разработки MPLAB, включая бесплатную загружаемую и отмеченную наградами интегрированную среду разработки MPLAB X (IDE) и конфигуратор кода MPLAB.

dsPIC33CH Curiosity Board (DM330028), экономичная и гибкая платформа разработки, является идеальной отправной точкой для изучения возможностей семейства dsPIC33CH и быстрого создания многофункционального прототипа.

Если вы разрабатываете приложение для управления двигателем, вы можете использовать подключаемый модуль управления двигателем dsPIC33Ch228MP508 (MA330039) с платой разработки dsPICDEMTM MCLV-2 (DM330021-2), платой разработки dsPICDEM MCHV-2 (DM330023-2) и плата разработки dsPICDEM MCHV-3 (DM330023-3).Подключаемый модуль общего назначения dsPIC33Ch228MP508 (MA330040) также доступен для использования с платой разработки Explorer 16/32 (DM240001-2).

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

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