Available Languages?:

32-разрядные микроконтроллеры Microchip

(весна, 2008 год)

В ноябре 2007 года компания Microchip анонсировала выпуск первых в своей истории 32-разрядных микроконтроллеров PIC32. Выход лидера в производстве 8- и 16-битных микроконтроллеров на 32-разрядный рынок вполне объясним: все тренды показывают значительное увеличение объема продаж 32-битных контроллеров за последние несколько лет, что в свою очередь связано с возросшими требованиями к встраиваемым системам.

Несмотря на то, что все предыдущие семейства контроллеров были разработаны специалистами Microchip, было решено лицензировать 32-разрядное ядро у компании MIPS Technologies Inc., одного из лидеров в разработке программных ядер. Архитектуры MIPS используют такие компании как AMD, Broadcom, Infeneon, Realtek, Sharp, Sony, NXP, Toshiba. Тем не менее, PIC32 это первый однокристальный процессор с архитектурой MIPS имеющий интегрированную флэш-память и полный набор микроконтроллерной периферии.

Архитектура MIPS32 выбрана не случайно. При выборе новой платформы рассматривались различные варианты, а критерии выбора были следующими:

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

По большинству параметров тендер выиграла компания MIPS с архитектурой MIPS32 M4K™.

На сегодняшний день линейка PIC32 представлена двумя семействами: PIC32MX360 (табл. 1) и PIC32MX460 (табл. 2). Контроллеры семейства PIC32MX460 имеют встроенный модуль USB OTG.

Таблица 1. Микроконтроллеры семейства PIC32MX360

Наименование Частота, МГц Flash, КБ ОЗУ, КБ DMA, каналов Трассировка Число выводов
PIC32MX320F032H 40 32 8 0 нет 64
PIC32MX320F064H 80 64 16 0 нет 64
PIC32MX320F128H 80 128 16 0 нет 64
PIC32MX320F128L 80 128 16 0 нет 100
PIC32MX340F128H 80 128 32 4 да 64
PIC32MX340F128L 80 128 32 4 да 100
PIC32MX340F256H 80 256 32 4 нет 64
PIC32MX340F512H 80 512 32 4 да 64
PIC32MX360F256L 80 256 32 4 да 100
PIC32MX360F512L 80 512 32 4 да 100

Таблица 2. Микроконтроллеры семейства PIC32MX460

Наименование Частота, МГц Flash, КБ ОЗУ, КБ DMA, каналов Трассировка Число выводов
PIC32MX420F032H 40 32 8 0 нет 64
PIC32MX440F128H 80 128 32 4 нет 64
PIC32MX440F128L 80 128 32 4 нет 100
PIC32MX440F256H 80 256 32 4 нет 64
PIC32MX440F512H 80 512 32 4 да 64
PIC32MX460F256L 80 256 32 4 да 100
PIC32MX460F512L 80 512 32 4 да 100

Архитектура

Семейство PIC32MX основано на синтезируемом ядре MIPS32 M4K™, которое позиционируется разработчиком ядра для использования в микроконтроллерах с низким потреблением энергии.

Основные особенности ядра MIPS32 M4K™ синтезированного для применения в PIC32MX:

  • Пятиступенчатый конвейер, производительность до 1.5 DMIPS/МГц
  • Тактовая частота до 80 МГц
  • Программируемый кэш, позволяющий увеличить частоту доступа к флэш-памяти до максимальной частоты ядра
  • Набор 32-битных инструкций MIPS32® release 2
  • Дополнительный набор 16-битных инструкций MIPS16e™, позволяющий снизить объем исполняемого кода
  • Аппаратный умножитель и делитель, оптимизированные по скорости выполнения операции
  • Векторный приоритетный контроллер прерываний
  • EJTAG порт, предназначенный для граничного сканирования, программирования флэш-памяти и отладки приложения с модулем внутрисхемной трассировки


Архитектура MIPS32® это архитектура типа «чтение-модификация-запись», то есть АЛУ ядра может обрабатывать только данные, находящиеся в регистрах общего назначения, а для загрузки и выгрузки данных предназначены специальные инструкции.

В качестве регистров используется регистровый банк из 32 регистров, некоторые из которых выполняют специальные функции: (ra) - адрес возврата из подпрограммы, (sp) - указатель стека, (fp) - указатель фрейма стека, (gp) - указатель на область данных. Один из регистров (zero) всегда равен нулю.

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

MIPS32® имеет пятиступенчатый конвейер со следующими стадиями: (I) - выборка инструкции, (E) – выполнение операции, (M) – выборка данных, (A) – выравнивание и (W) – сохранение результата. В ядро, синтезируемое для PIC32MX, была включена опция Register Bypassing – механизм, который позволяет значительно сократить время простоя конвейера при использовании в качестве аргумента следующей инструкции результата предыдущей.

Несмотря на то, что память данных и память программ расположены в едином адресном пространстве, семейство PIC32MX имеет две раздельные шины: (I-side) – для выборки инструкций и (D-side) – для выборки данных с помощью инструкций загрузки/сохранения. Шины подключены к ядру через управляемую шинную матрицу, осуществляющую контроль доступа и генерацию исключений при ошибке доступа.

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

Видеопрезентация архитектуры PIC32 (часть 1, индийский англ.)


Видеопрезентация архитектуры PIC32 (часть 2, индийский англ.)


АЛУ и набор инструкций

Семейство PIC32MX имеет два набора инструкций: 32-битные инструкции MIPS32® release 2 и 16-битный набор MIPS16e™, позволяющий снизить объем кода, и, соответственно, использовать микроконтроллеры с меньшим объемом флэш-памяти.

Благодаря пятиступенчатому конвейеру все инструкции выполняются за 1 командный такт, в том числе и инструкции 16-битного набора – они декодируются на стадии конвейера (I) – выборка инструкции. Исключение составляют инструкции переходов (требуют одного такта ожидания для выборки инструкции по адресу перехода), умножения (максимум два такта) и деления (максимум 35 тактов).

Если приложение выполняется из флэш-памяти без использования кэша, то командный такт будет равен времени доступа (максимальная частота доступа к флэш-памяти у PIC32MX составляет 30 МГц). Если используется кэш, то командный такт будет в большинстве случаев равен такту генератора, т.е. максимальная частота выполнения инструкций будет составлять 80 МГц.

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

Большинство операций АЛУ и, соответственно, инструкции основного набора - трехоперандные. Источниками данных являются значения регистров, приемником результата так же является регистр ядра. Инструкции дополнительного набора MIPS16e™ - как трехоперандные, так и двухоперандные.

Косвенная адресация доступна только для инструкций загрузки/сохранения данных, что является особенностью всех «load-modify-store» архитектур. Непосредственная адресация (операции с константой в коде инструкции) доступны практически для всех вычислительных инструкций, при этом размер константы составляет 16 бит для набора инструкций MIPS32® release 2.

Особенностью АЛУ ядер MIPS32® является отсутствие статусного регистра, в котором находятся флаги результатов операций (отрицательный результат, нулевой результат и т.п.) Флаги условных инструкций (сравнения и т.п.) сохраняются в указанном регистре, а инструкции условного перехода могут использовать любой регистр в качестве условия.

Набор инструкций MIPS32® release 2 включает в себя следующие операции:

  • арифметическое сложение и вычитание
  • умножение со сложением и вычитанием из аккумулятора HI/LO
  • умножение с помещением результата в регистр общего назначения
  • деление
  • логические операции AND, OR, NOR, XOR
  • определение первой единицы и первого нуля в слове
  • условное перемещение
  • множество инструкций безусловных и условных переходов
  • атомарное разрешение и запрещение прерываний
  • манипуляция с битовыми полями
  • логический и арифметический сдвиг, вращение
  • расширение знака у байта, полуслова
  • загрузка и выгрузка слова, полуслова, байта
  • атомарная загрузка и выгрузка
  • системный вызов и программная точка останова
  • переход в энергосберегающий режим
  • доступ к модулю управления ядром


Набор инструкций MIPS16e™ включает в себя следующие операции:

  • арифметическое сложение и вычитание (беззнаковые)
  • умножение
  • деление
  • логические операции AND, OR, NOT, XOR
  • расширение знака у байта, полуслова
  • логический и арифметический сдвиг
  • атомарное сохранение и восстановление стекового фрейма
  • множество инструкций безусловных и условных переходов
  • загрузка и выгрузка слова, полуслова, байта
  • программная точка останова


При синтезе ядра M4K™ для PIC32MX умножитель и делитель, входящие в состав ядра, были синтезированы с опцией «оптимизация по скорости выполнения», несмотря на то, что это привело к увеличению площади кристалла. Умножитель 32 × 16 позволяет получить результат умножения 32 × 16 за один такт, а результат умножения 32 × 32 за два такта. Результат умножения может сохраняться как в регистре (младшее слово 64-битного результата), так и в специальной регистровой паре HI/LO (два слова 64-битного результата). Наличие инструкций умножения со сложением позволяет использовать эту регистровую пару как аккумулятор операций ЦОС.

Делитель PIC32MX имеет механизм предварительного определения разрядности делителя, что сокращает время выполнения операции до 7 тактов при выполнении операции деления 32 ÷ 8. Максимальное время выполнения операции деления составляет 35 тактов (в случае если разрядность делителя равна 32 битам).

Память

Семейство PIC32MX имеет 32-битную шину адреса, что позволяет адресовать область памяти объемом до 4 ГБ. Флэш-память, SRAM, регистры управления периферией, конфигурационные регистры расположены в одном адресном пространстве, области имеют уникальные базовые адреса.

Микроконтроллеры семейства PIC32MX имеют до 512 кБ флэш-памяти и до 32 кБ SRAM. Флэш-память может программироваться в ходе выполнения программы, а часть флэш-памяти (12 кБ) выделена в особый блок, называемый Internal Boot Flash, в котором может размещаться загрузчик приложения. Этот блок может отдельно от остальной памяти защищаться от записи конфигурационным словом.

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

В PIC32MX используются два метода адресации – физический и виртуальный. Физический метод адресации используют DMA и контроллер флэш-памяти. Виртуальную адресацию использует ядро для выборки инструкций и данных. Виртуальную адресацию обеспечивает конфигурируемый механизм фиксированного перевода адресов (FMT), который преобразует виртуальные адреса в физические, необходимые для выборки из флэш-памяти и SRAM.

Виртуальная область памяти делится на две равных области по 2 ГБ. Область с младшими адресами называется областью пользователя (User Segment, KUSEG) а область со старшими адресами – областью ядра (Kernel Segments). Микроконтроллер может работать в двух режимах – пользовательском и режиме ядра (привилегированном режиме). В пользовательском режиме доступна только область пользователя, в привилегированном – как область пользователя, так и область ядра. Так как все регистры управления периферийными модулями отображены на область ядра, доступ к периферии возможен только в привилегированном режиме работы.

Область памяти ядра в свою очередь делится на четыре области, называемые KSEG0, KSEG1, KSEG2 и KSEG3. В микроконтроллерах семейства PIC32MX физически реализованные ресурсы отображаются только на первые две области. Причем базовый адрес областей KSEG0 и KSEG1 отображается на физический адрес 0x00000000. Такая реализация позволяет быстро переключаться между режимами работы кэша флэш-памяти.

Как флэш-память, так и ОЗУ может быть разделено между сегментами KUSEG, KSEG0 и KSEG1, дискрет составляет 2 кБ. Кроме того, возможно выделения части ОЗУ для всех сегментов в качестве программной памяти. Для обеспечения целостности данных и ограничения доступа предназначен модуль шинной матрицы. Он может быть сконфигурирован в различные режимы арбитража, которые отличаются приоритетами потребителей данных (ядро, DMA и т. п.) При конфликте доступа шинная матрица генерирует исключение.

Модуль предвыборки

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

Поэтому в архитектуру PIC32MX был введен конфигурируемый кэш предвыборки, состоящий из 16 128-битных строк. 4 строки могут использоваться в качестве кэша данных, что полезно при обработке больших константных массивов.

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

Обзор модуля предвыборки PIC32 (индийский англ.)


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

В ядре MIPS32 MK4™ предусмотрено три режима работы прерываний – совместимый с MIPS32 release 1, векторный режим и режим обслуживания внешнего контроллера прерываний.

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

Внешний контроллер прерываний PIC32MX обладает следующими особенностями:

  • время реакции на прерывание – не более 5 тактов генератора
  • до 96 источников прерываний
  • до 64 векторов прерываний
  • каждый вектор прерывания может иметь приоритет от 1 до 7
  • каждый вектор прерывания может иметь дополнительный приоритет от 0 до 3
  • дополнительный регистровый файл для обслуживания прерывания с максимальным приоритетом
  • конфигурируемое положение векторов прерываний
  • конфигурируемая дистанция между векторами прерываний
  • возможность программной генерации любого прерывания
  • таймер отложенных прерываний


Контроллер прерываний PIC32MX аналогичен контроллеру прерываний 16-битных семейств PIC24/dsPIC за исключением того, что векторов прерываний меньше чем источников. Поэтому часть источников прерываний используют один вектор. Как правило, это прерывания одного периферийного модуля, например, прерывание по приему UART и прерывание по передаче UART. Приоритеты назначаются пользователем не источнику прерывания, а вектору.

Контроллер прерываний PIC32MX отслеживает все источники на каждом такте генератора. Если один из источников прерываний активен и его приоритет больше чем текущий приоритет ядра, устанавливается флаг прерывания (который можно установить и программно) и запрос на прерывание. Между ступенями (E) и (M) конвейера проверяется запрос на прерывание и, если он установлен, ядро прекращает выполнение программы и переходит на соответствующий вектор прерывания.

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

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

Контроллер прямого доступа к памяти (DMA)

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

Семейство PIC32MX имеет до 4 идентичных каналов DMA, которые могут использоваться как для передачи данных между периферией и памятью, так и для переноса данных между блоками памяти.

Контроллер DMA позволяет обеспечивать транзакции на уровне слов, и байтов. В последнем случае выравнивания по слову данных не требуется. Арбитраж доступа осуществляется на основании фиксированных приоритетов каналов.

Два каналы могут быть объединены в цепочку – после окончания передачи ведущего канала автоматически запускается ведомый канал.

Каналы могут работать в двух адресных режимах: нормальном и расширенном. В нормальном режиме объем передаваемых данных ограничен 256 байтами, но допустима транзакция по невыровненному адресу и передача типа «память-периферия». В расширенном режиме адресации объем передаваемых данных не должен превышать 64 кБ.

Контроллер DMA имеет в своем составе модуль вычисления циклического избыточного кода (CRC), который может быть подключен к любому каналу. Модуль позволяет вычислять CRC любой разрядности с произвольным полиномом.

Обзор DMA PIC32 (индийский англ.)


Системные модули

Как и 16-битные контроллеры Microchip, семейство PIC32MX обладает набором системных модулей, необходимых для построения надежной и самодостаточной однокристальной системы.

Модуль сброса

Модуль сброса PIC32MX полностью аналогичен модулю сброса 16-битных микроконтроллеров PIC24/dsPIC. Единственное отличие – отсутствие сброса при выборке инструкции с неизвестным кодом (это обрабатывается логикой исключений ядра), и сброса при конфликте исключений.

Микроконтроллеры PIC32MX имеют следующие источники сброса:

  • сброс по включению питания (POR)
  • внешний сброс (MCLR)
  • сброс по снижению напряжения питания
  • сброс при ошибке четности конфигурационных слов
  • программный сброс
  • сброс по переполнению сторожевого таймера


Сторожевой таймер

Сторожевой таймер в микроконтроллерах семейства PIC32MX тактируется от внутреннего низкочастотного RC генератора. Физически сторожевой таймер представляет собой 25-битный счетчик и регистр сравнения. Переполнение сторожевого таймера вызывает сброс контроллера или вывод ядра и периферии из режимов энергосбережения. Период сторожевого таймера может находиться в диапазоне от 1 мс до 1048 сек.

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

Сброс сторожевого таймера в отличие от предыдущих семейств контроллеров Microchip осуществляется путем установки бита в регистре конфигурации таймера.

Система тактирования и энергосберегающие режимы

Микроконтроллеры семейства PIC32MX имеют развитую систему тактирования. Ядро и периферийные модули могут тактироваться от четырех различных источников:

  • основного кварцевого генератора с возможностью подключения PLL
  • внутреннего высокочастотный RC генератора 8 МГц с выходным делителем и возможностью подключения PLL
  • внутреннего низкочастотного RC генератора 32 кГц
  • дополнительного кварцевого генератора с параметрами, оптимизированными для подключения часового резонатора (32768 Гц)


Внутренний PLL предназначен для получения максимальной таковой частоты при использовании источников тактирования с частотой меньшей 72 МГц. Модуль PLL так же имеет выходной делитель, что позволяет получить широкую сетку частот от одного внешнего источника.

Как и в большинстве микроконтроллеров Microchip, существует возможность переключать источники тактирования в ходе выполнения программы и подстраивать внутренний высокочастотный генератор в диапазоне ±12%.

В систему тактирования PIC32MX входит монитор наличия тактовой частоты, который генерирует прерывание и переключает источник тактирования на дополнительный (внутренний RC генератор) при отказе основного. Этот же модуль обеспечивает вывод микроконтроллера из режима SLEEP с дополнительным источником с последующим переключением на основной. Это позволяет быстро начать выполнение приложения, не дожидаясь стабилизации частоты кварцевого генератора.

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

Для снижения потребления энергии можно уменьшить тактовую частоту периферийных модулей с помощью делителя частоты ядра с коэффициентами деления 2, 4 и 8.

Микроконтроллеры семейства PIC32MX имеют два основных режима энергосбережения IDLE и SLEEP. В режиме IDLE ядро останавливает выполнение программы, однако основной тактовый генератор и периферийные модули продолжают работу. При входе в режим SLEEP, основной тактовый генератор отключается.

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

Использование энергосберегающих режимов совместно с гибким управлением тактированием, позволит значительно уменьшить потребление энергии устройством.

Периферийные модули

32-битное семейство PIC32MX имеет обширный набор периферийных модулей:

  • универсальные порты ввода-вывода, толерантные к +5 В
  • 24 входа внешних прерываний по изменению уровня с одним вектором
  • 5 входов внешних прерываний по фронту с индивидуальным векторами
  • 5 16-разрядных таймеров общего назначения
  • 5 модулей захвата
  • 5 модулей сравнения
  • 2 модуля SPI
  • 2 модуля I2C
  • 2 модуля UART с аппаратной поддержкой IrDA, LIN и RS-485
  • параллельный 16-битный порт с 16-битной адресной шиной
  • часы реального времени с календарем
  • 10-битный 16 канальный аналого-цифровой преобразователь
  • два компаратора с регулируемым модулем опорного напряжения
  • JTAG интерфейс для граничного сканирования, программирования и отладки
  • модуль прямого доступа к памяти (DMA) с интегрированной функцией вычисления CRC


Большинство периферийных модулей аналогично по функциональности соответствующим модулям семейства PIC24FJ, что должно упростить переход на 32-битные PIC32MX. Компания Microchip предоставляет библиотеку обслуживания периферии Peripheral Library PIC32MX, API которой совместим с аналогичным пакетом для PIC24FJ.

Следует отметить основную особенность управления периферийными модулями. Все периферийные регистры PIC32MX имеют по три дополнительных слова для атомарной манипуляции с битами: xSET, xCLR и xINV. Установка битов в слове xSET устанавливает соответствующие биты в периферийном регистре. Установка битов в слове xCLR сбрасывает соответствующие биты в периферийном регистре. Слово xTGL предназначено для инвертирования битов в регистре.

Например, сброс младшего бита в регистре TRISA будет выглядеть следующим образом:

TRISACLR = (1 << 0);

В этом случае нет необходимости считывать значение TRISA в регистр, обнулять бит и сохранять итоговое значение:

TRISA &= ~(1 << 0);

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

Как уже отмечено, большинство периферийных модулей в PIC32MX перенесено из 16-битного семейства PIC24F, поэтому для более подробного ознакомления с периферией PIC32 можно обратиться к статье 16-битные микроконтроллеры Microchip.

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

Компания Microchip традиционно предоставляет полный набор отладочных средств для освоения и профессиональной работы с семейством PIC32MX.

Программные средства разработки

Одновременно с анонсом 32-разрядных контроллеров PIC32MX компания Microchip выпустила новую версию среды разработки MPLAB 8.0 (актуальная версия - 8.14), которая на сегодняшний день поддерживает все семейства, начиная от PIC10 и заканчивая PIC32.

Выпущен компилятор с языка Си MPLAB C32 – порт известного компилятора GCC. Компилятор включает библиотеки стандартных функций, написанные разработчиком ядра MIPS. Доступна бесплатная студенческая версия компилятора с ограничением по объему исполняемого кода (64 кБ). Актуальная версия - 1.02.

Доступны средства разработки сторонних компаний:

  • Ashling asIDE – среда разработки, включающая в себя менеджер проектов, текстовый редактор, отладчик кода PathFinder и аппаратный EJTAG эмулятор. В качестве компилятора может использоваться либо MPLAB C32, либо компилятор C/C++ от компании MIPS (MIPS SDE).
  • Green Hills MULTI IDE – среда разработки, включающая в себя менеджер проектов, текстовый редактор, пофайлер DoubleCheck™, и Green Hills Probe – EJTAG эмулятор. В качестве компилятора используется компилятор Green Hills MIPS.
  • Hi-Tech C PRO - компилятор и среда от давнего партнера Microchip, компании Hi-Tech Software, известной компиляторами для семейств PIC16 и PIC18.

Аппаратные средства разработки

PIC32MX – первое семейство в линейке Microchip, которое имеет не только проприетарный интерфейс внутрисхемной отладки. Ядро MIPS32 M4K™ включает в свой состав модуль внутрисхемной отладки EJTAG и модуль трассировки исполняемого кода и данных. Таким образом, сторонние разработчики отладочных средств могут интегрировать в свои продукты поддержку программирования и отладки PIC32MX с помощью JTAG.

Тем не менее, PIC32MX включает в себя модуль теневой отладки, который на сегодняшний день поддерживают внутрисхемный отладчик ICD2 и внутрисхемный эмулятор REAL ICE, причем последний позволяет выполнять трассировку кода и данных. Семейство PIC32MX имеет 4 аппаратных точки останова по коду и 2 точки останова по данным.

Для начала освоения PIC32MX компания Microchip предлагает использовать PIC32 Starter Kit – отладочную плату с установленным микроконтроллером PIC32MX360F512L. Плата включает в себя внутрисхемный отладчик с интерфейсом USB, реализованный на микроконтроллере PIC18F4550. На плате установлены 3 светодиода и 3 кнопки. Плата питается от интерфейса USB.

Краткий видеообзор отладочной платы PIC32 Starter Kit можно посмотреть по ссылке (англ.)

Освоение контроллеров семейства PIC32MX460 (с интерфейсом UAB OTG) можно начать, используя плату PIC32 USB Starter Board. Кит аналогичен предыдущему, но имеет установленные разъемы USB A (host) и USB micro-AB (OTG).

Доступна плата расширения к PIC32 Starter Kit (PIC32 USB Starter Board) , которая подключается к 122-выводному разъему, установленному на плате.

Так же доступны процессорные модули, предназначенные для использования совместно с популярной отладочной платой для 16-битных семейств Explorer 16. На процессорном модуле установлен разъем трассировки, который можно использовать для подключения к внутрисхемному эмулятору REAL ICE. Доступны модули как для семейства PIC32MX360, так и для PIC32MX460.

Для программирования и отладки можно использовать знакомые средства - внутрисхемный отладчик MPLAB ICD2 и внутрисхемный эмулятор REAL ICE. Семейство PIC32MX так же поддерживается бюджетным программатором начального уровня PICKit2 (пока только программирование из оболочки PICKit2).

Обзор аппаратных средств разработки для PIC32 (англ.)


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

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

Не является исключением и семейство PIC32MX, для которого на данный момент доступны следующие библиотеки:

  • USB Device and Embedded Host Stack - стек обслуживания модуля USB OTG микроконтроллеров семейства PIC32MX460. Реализованы функции device и host. Поддержка двухролевого стека (OTG) будет добавлена позднее.
  • Microchip TCP/IP with BSD Sockets - TCP/IP стек с BSD (Berkley Socket Distribution) API. Механизм сокетов позволяет использовать стороннее программное обеспечение, например, HTTP и FTP серверы и клиенты, различные сетевые протоколы и т. п. В состав стека входит реализация файловой системы FAT16, примеры реализации HTTP и FTP сервера, реализация SNMP агента.
  • Microchip Graphics Library - библиотека графического интерфейса пользователя (GUI) для TFT-панелей.
  • CAN Library for PIC32 - библиотека поддержки CAN (используется CAN-контроллер MCP2515)
  • Audio Library for PIC32MX - библиотека сжатия и воспроизведения речи. Поддерживаются кодеки SPEEX и ADPCM.
  • 32-bit File System - файловая система FAT16/FAT32. В состав библиотеки включен драйвер SD/MMC карт памяти.


Доступно большое количество библиотек и от сторонних разработчиков:

RTOS

  • CMX-RTX™ – коммерческая вытесняющая операционная система реального времени, с малым объемом кода и быстрым переключением контекста.
  • ThreadX® – коммерческая вытесняющая RTOS
  • freeRTOS – бесплатная вытесняющая операционная система реального времени, поставляемая с открытыми исходными кодами, поставляемая под лицензией GPL-like, разрешающей применение freeRTOS в коммерческих проектах без публикации исходного кода проекта.
  • Micrium uC/OS-II – широко известная коммерческая вытесняющая RTOS.
  • Segger embOS – коммерческая вытесняющая RTOS
  • Salvo™ - коммерческая кооперативная RTOS.

GUI

  • easyGUI – коммерческая библиотека для реализации графического интерфейса пользователя с использованием монохромных и цветных панелей. Поддерживает большое количество контроллеров ЖКИ
  • RAMTEX GUI – коммерческая библиотека GUI
  • Segger emWin – коммерческая библиотека GUI

TCP/IP

  • CMX-MicroNet™ - коммерческий стек протоколов TCP/IP c реализацией HTTP сервера, FTP сервера и клиента.

FAT

  • CMX-FFS-FAT™ - коммерческая файловая система FAT12/16/32 с поддержкой длинных имен, нескольких дисков и нескольких разделов на диске.
  • Segger emFile – коммерческая файловая система FAT12/16/32


 
articles/mchp/32_bit_mcu.txt · Последние изменения: 20.07.2008 14:58 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki