Илья АФАНАСЬЕВ
mailto:[email protected]
Введение
Новое семейство микроконтроллеров Microchip основано на ядре MIPS32 M4K. Компания Microchip расширила функциональность ядра M4K, добавив модуль предварительной выборки с предсказанием переходов, векторный контроллер прерываний и шинную матрицу. Модуль предварительной выборки также можно использовать как кэш команд или инструкций, что позволяет повысить скорость выполнения кода.
Основные особенности ядра MIPS32 M4K, синтезированного для применения в PIC32MX:
• пятиступенчатый конвейер, измеренная производительность до 1,5 DMIPS/МГц при использовании 32-разрядных команд и до 1,2 DMIPS/МГц при 16-разрядных командах;
• тактовая частота до 80 МГц;
• программируемый кэш, позволяющий увеличить частоту доступа к флэш-памяти до максимальной частоты ядра;
• набор 32-битных инструкций MIPS32 release 2;
• дополнительный набор 16-битных инструкций MIPS16e, позволяющий снизить объем исполняемого кода;
• аппаратный умножитель и делитель, оптимизированные по скорости выполнения операции;
• векторный приоритетный контроллер прерываний;
Новые 32-разрядные микроконтроллеры Microchip.
Средства разработки
Microchip Technology Inc. выпускает новые семейства микроконтроллеров, улучшает их характеристики и развивает средства разработки и программное обеспечение. В частности, эта компания продолжает развивать новое семейство 32-разрядных микроконтроллеров PIC32.
Таблица 1. Микроконтроллеры PIC32
Наименование Частота, МГц Flash, кбайт ОЗУ, кбайт Модуль пред. выборки DMA, каналов 10-разрядный АЦП, каналов Таймер/захват/ сравнение 2 CL <Л н 0£ A э О 1— о о ей V) э Трассировка Число выводов
PIC32MX320F032H 40 32 - - 16 5/5/5 2/2/2 - - 64
PIC32MX320F064H 80 64 16 Да - 16 5/5/5 2/2/2 - - 64
PIC32MX320F128H 80 128 16 Да - 16 5/5/5 2/2/2 - - 64
PIC32MX320F128L 80 128 16 Да - 16 5/5/5 2/2/2 - - 100
PIC32MX340F128H 80 128 32 Да 16 5/5/5 2/2/2 - - 64
PIC32MX340F128L 80 128 32 Да 16 5/5/5 2/2/2 - - 100
PIC32MX340F256H 80 256 32 Да 16 5/5/5 2/2/2 - - 64
PIC32MX340F512H 80 512 32 Да 16 5/5/5 2/2/2 - - 64
PIC32MX360F256L 80 256 32 Да 16 5/5/5 2/2/2 - Да 100
PIC32MX360F512L 80 512 32 Да 16 5/5/5 2/2/2 - Да 100
PIC32MX420F032H 40 32 - - 16 5/5/5 2/1/2 + - 64
PIC32MX440F128H 80 128 32 Да 16 5/5/5 2/1/2 + - 64
PIC32MX440F128L 80 128 32 Да 16 5/5/5 2/2/2 + - 100
PIC32MX440F256H 80 256 32 Да 16 5/5/5 2/2/2 + - 64
PIC32MX460F256L 80 256 32 Да 16 5/5/5 2/2/2 + Да 100
PIC32MX460F512H 80 512 32 Да 16 5/5/5 2/2/2 + Да 64
PIC32MX460F512L 80 512 32 Да 16 5/5/5 2/2/2 + Да 100
• EJTAG-порт, предназначенный для граничного сканирования, программирования флэш-памяти и отладки приложения с модулем внутрисхемной трассировки,
Более подробно архитектура контроллеров PIC32 была освещена в [1],
В настоящий момент Microchip производит 1У типов 32-битных микроконтроллеров PIC32 (табл, 1) [2],
Система обозначений контроллеров PIC32
PIC32 MX4 60 F312L-8CI / PT 1 2 3 4 З 6 У 8
1, Обозначение семейства: PIC32MX,
2, Тип продукта:
- MX3 — общего назначения;
- MX4 — USB OTG,
3, Подтип:
- 20 — младшее семейство, 40 МГц — тактовая частота;
- 40 — 80 МГц тактовая частота;
- 60 — возможность трассировки кода,
4. Объем Flash-памяти программ (кбайт).
5. Количество выводов:
- H — 64 вывода;
- L — 100 выводов.
6. Максимальная тактовая частота в МГц.
7. Температурный диапазон:
- I — промышленный (-40...+85 °С);
- E — расширенный (-40... + 125 °С).
8. Тип корпуса:
- PT— 12x12 мм TQFP;
- PF— 14x14 мм TQFP.
Отладочные средства для контроллеров PIC32
Компания Microchip Technology Inc. предлагает полный набор отладочных средств для 16-разрядных контроллеров PIC32, включая среду разработки MPLAB IDE, Си-компилятор, средства внутрисхемной отладки и отладочные платы.
Среда разработки Microchip MPLAB IDE универсальна для всех микроконтроллеров Microchip, от простейших 6-выводных 8-разрядных PIC10F до 32-разрядных контролле-
Таблица 2. Отладочные средства для программирования и отладки PIC32
Отладочное средство Внешний вид Программирование Отладка кода Трассировка кода Особенности
PICKit 2 (PG164120) Да Нет (на данный момент поддерживается отладка только младших семейств) Нет Программатор для всех микроконтроллеров Microchip
PIC32 Starter Kit (DM320001) PIC32 USB Board (DM320002) Sggbjf і * Да Да Нет Демонстрационные платы со встроенным внутрисхемным USB JTAG программатором и отладчиком
ICD-2 (DV164005) ШЯЯ8І ■ Да Да Нет Внутрисхемный программатор-отладчик для большинства микроконтроллеров Microchip
REAL ICE (DV244005) Да Да Да (требуется дополнительный кабель) Внутрисхемный эмулятор с высокоскоростным USB 2.0
Таблица 3. Возможные варианты подключения отладочных плат
Процессорный модуль Основная отладочная плата Платы расширения Приложение
PIM USB (MA320002) Explorer 16 USB PICtail. Plus Daughter Board (AC164131) Работа с USB: Host, Device, OTG
PIM (MA320001) Audio PICtail Plus Daughter Board (AC164129) Работа со звуком
ECAN/LIN PICtail Plus Daughter Board (AC164130) CAN и LIN интерфейсы связи
PIC32 Starter Board + AC320002 PICtail board for SD and MMC (AC164122) Работа с Flash-картами памяти, FAT
PIC32 USB Board + AC320002 PICtail Plus board for Ethernet (AC164123) Разработка Ethernet-устройств
IrDA PICtail Plus Daughter Board (AC164124) Разработка IrDA-устройств
PIC32 Starter Kit PIC32 I/O Expansion Board Speech Playback PICtail Plus Daughter Board (AC164125) Работа со звуком
PICDEM Z MRF24J40 2.4 GHz Daughter Card (AC163027-4) Разработка 2,4-ГГц беспроводных сетей ZigBee, MiWi и других
PIC32 USB Motor Control Interface PICtail Plus D-Card (AC164128) Управление электродвигателями
Graphics PICtailTM Plus Daughter Board (AC164127) Работа с цветными графическими TFT-индикаторами
PIC32 USB Работа с USB: Host, Device, OTG
ров PIC32. Единая среда разработки для всей продукции Microchip позволяет разработчикам легко перейти на использование новых микроконтроллеров.
Компания Microchip предлагает высокоэффективный компилятор Си для своих 32-разрядных контроллеров. Компилятор периодически обновляется для обеспечения поддержки новых контроллеров, увеличения эффективности и добавления новых функций. Текущая версия компилятора MPLAB C32 версии 1.03 получила обновленные оптимизированные математические библиотеки со скоростью, увеличенной более чем в пять раз [2].
Для начального ознакомления и учебных целей Microchip предлагает бесплатную студенческую версию компилятора C32. Данная версия работает без ограничений в течение 60 дней, после чего отключаются уровни оптимизации кода по быстродействию -O2 и -О3 и оптимизация по объему кода -Os. По истечению ознакомительного срока перестает работать и генератор кода MIPS16 (поддержка набора 16-битных инструкций).
Совместно с компилятором С32 поставляется библиотека со стандартными ANSI-89 функциями, включая математические.
Аппаратные средства отладки
Для внутрисхемной отладки кода контроллеров PIC32 подходят те же самые отладчики ICD-2 и REAL ICE, что и для остальных семейств микроконтроллеров Microchip. Сравнительные характеристики и особенности отладчиков приведены в таблице 2.
Для начала освоения контроллеров PIC32 Microchip предлагает две простые и дешевые демонстрационные платы — PIC32 Starter Kit и PIC32 USB Board. Обе платы содержат контроллер PIC32MX (PIC32MX 360F512 или PIC32MX460F512) и интегрированный USB-JTAG внутрисхемный отладчик с возможностью установки точек останова. Таким образом, разработчик, решивший «попробовать» PIC32 и не имеющий внутрисхемного отладчика, может начать освоение контроллера без дополнительных средств разработки. Демонстрационная плата PIC32 USB Board отличается тем, что содержит контроллер семейства PIC32MX с поддержкой USB OTG. Данная плата имеет разъемы USB-A (плата может являться хостом и позволяет подключать, например, внешние USB-накопители) и USB-microAB для подключения USB-устройств Host, Device и OTG.
Для тех, кому стартового комплекта недостаточно, Microchip предлагает плату расширения портов ввода/вывода — PIC32 I/O Expansion Board. Плата PIC32 Starter Kit или PIC32 USB Board является, по сути, процессорной платой для платы расширения PIC32 I/O Expansion Board, к которой, в свою очередь, можно подключать ряд специализированных интерфейсных плат. Интерфейсные платы расширения универсальны и также
Таблица 4. Библиотеки для контроллеров PIC32
Область применения Наименование Описание
USB USB Device and Embedded Host Stack Поддержка стеков USB
USB Dual-Role Stack (планируется)
USB OTG Stack (планируется)
Коммуникации DMA UART library (бета-тестирование) Создание нескольких UART в дополнение к аппаратным с помощью DMA и битовыми манипуляциями портов В/В. По сравнению с программной реализацией существенно меньше код и выше скорость
Microchip TCP/IP with support for SSL Поддержка стеков TCP/IP
Microchip TCP/IP with BSD Sockets
IrDA Protocol Stack (планируется) Стек беспроводного протокола IrDA
ZigBee Protocol Stack (планируется) Стек беспроводного протокола ZigBee (2,4 ГГц)
MiWi Protocol Stack Стек беспроводного протокола MiWi (2,4 ГГц)
CAN Library for PIC32 Библиотека для работы с CAN-протоколом, включена поддержка MCP2515
Serial Port Bootloader for PIC32MX Реализация загрузчика через последовательный порт
Общего назначения 16-bit File System Файловая система FAT16
32-bit File System Файловая система FAT32
Data EEPROM Emulation Library for PIC32 Эмуляция EEPROM-памяти в Flash-памяти программ
Math Library Математические библиотеки
Peripheral Library Библиотеки работы с периферией
Графика Microchip Graphics Library Библиотека работы с графическими объектами, графический интерфейс пользователя
Звук Audio Library for PIC32MX — поддержка Speex, ADPCM и WAV Компрессия и декомпрессия звука
подходят для совместной работы с отладочной платой Explorer 16 (рисунок).
Для того чтобы работать с отладочной платой Explorer 16 и контроллерами PIC32MX, нужно в Explorer 16 установить процессорный модуль с соответствующим контроллером PIC32 или использовать плату-переходник (AC320002) для подключения PIC32 Starter Board к плате Explorer 16.
Компания Microchip поддерживает платформу PIC32MX не только отладочными платами, но и готовыми библиотеками. Под каждую интерфейсную плату есть соответствующие библиотеки и примеры программ.
Библиотеки и примеры программ
В настоящий момент контроллеры PIC32 поддерживаются следующими специализированными библиотеками (табл. 4).
Все библиотеки имеют подробное описание и сопровождаются тестовыми примерами.
Также на сайте Microchip доступно более 30 различных примеров кода, которые призваны помочь в освоении ядра и периферийных модулей контроллеров PIC32.
Средства отладки и разработки сторонних компаний
О популярности того или иного продукта можно судить по интересу к нему независимых компаний. Большое число фирм, специализирующихся в разработке программного обеспечения, библиотек и операционных систем реального времени, заявило о своей поддержке контроллеров Microchip и выпустило версии своих продуктов с поддержкой семейства PIC32. Далее приведен список наиболее интересных библиотек и ОСРВ.
• CMX-RTX — коммерческая вытесняющая операционная система реального времени, с малым объемом кода и быстрым переключением контекста.
• CMX-MicroNet — коммерческий стек протоколов TCP/IP c реализацией HTTP-сервера, FTP-сервера и клиента.
• CMX-FFS-FAT — коммерческая файловая система FAT12/16/32 с поддержкой длинных имен, нескольких дисков и нескольких разделов на диске.
• easyGUI — коммерческая библиотека для реализации графического интерфейса пользователя (GUI) с использованием монохромных и цветных панелей. Поддерживает большое количество контроллеров ЖКИ.
• ThreadX — коммерческая вытесняющая RTOS.
• freeRTOS — бесплатная вытесняющая операционная система реального времени, с открытыми исходными кодами, поставляемая под лицензией GPL-like, которая разрешает применение freeRTOS в коммерческих проектах без публикации исходного кода проекта.
• Salvo — коммерческая кооперативная RTOS.
• RAMTEX GUI — коммерческая библиотека GUI.
• Segger embOS — коммерческая вытесняющая RTOS.
• Segger emWin — коммерческая библиотека GUI.
• Segger emFile — коммерческая файловая система FAT12/16/32.
• Micrium uC/OS-II — широко известная коммерческая вытесняющая RTOS, соответствует требованиям стандарта RTCA DO-178B для авиационного оборудования.
• Micrium uC/TCP-IP — компактный стек протоколов TCP-IP.
• Micrium uC/Probe — средство мониторинга, позволяет пользователю в реальном времени просматривать динамику системы без остановки программы. uC/Probe — это Windows-приложение, которое связывается по интерфейсам JTAG, RS-232, TCP-IP или USB.
• Micrium uC/FS — файловая система для встраиваемых приложений.
• Micrium uC/GUI — графическая библиотека для реализации пользовательского интерфейса на графических ЖК-индикаторах. Сторонние фирмы предлагают также средства разработки и отладки, поддерживающие 32-битные контроллеры Microchip.
Ashling Microsystems
Компания Ashling Microsystems [7] предлагает отладчик кода PathFinder, среду разработки AsIDE и аппаратный эмулятор EJTAG с поддержкой микроконтроллеров PIC32. В качестве компилятора можно использовать либо MPLAB C32, либо компилятор C/C++ от компании MIPS (MIPS SDE). Полный набор отладки компании Ashling включает:
• внутрисхемный отладчик Opella-XD EJTAG;
• отладчик кода PathFinder;
• среду разработки AsIDE-MIPS;
• GDB-Server-MIPS. Сервер позволяет аппаратным эмуляторам Ashling использоваться с GNU GDB/Insight/Eclipse CDT и отладчиками. Поддерживается Windows и Linux.
Green Hills Software Компания Green Hills Software [8], лидер в области разработки программных отладочных средств, предлагает интегрированную среду разработки MULTI IDE, включающую в себя менеджер проектов, текстовый редактор, профайлер DoubleCheck. Эта компания предлагает также EJTAG-эмулятор Green Hills Probe и компилятор Си Green Hills MIPS Compiler.
HI-TECH Software
Компания HI-TECH Software [9], хорошо известная по Си-компиляторам для 8- и 16-битных PIC-микроконтроллеров Microchip, объявила о выпуске Си-компилятора для PIC32 — “HI-TECH C PRO for the PIC32”. Это первый OCG (Omniscient Code Generation) Си-компилятор HI-TECH для 32-битных микроконтроллеров.
OCG позволяет компилятору определять, какие конкретно регистры надо сохранить до того, как входить в прерывание. Таким образом, вместо того, чтобы сохранять фиксированное количество регистров каждый раз, будут сохраняться только те, которые необходимы, тем самым исключаются лишние циклы, уплотняется код, увеличивается быстродействие, снижается потребляемый ток и т. д.
Особенности HI-TECH Си-компилятора для PIC32:
• интеграция в среду разработки HI-TIDE 3;
• интеграция в среду разработки MPLAB IDE;
• поддержка отладочных средств MPLAB ICD-2, MPLAB REAL ICE;
• включает исходный код библиотек и примеры проектов;
• включает макроассемблер, линкер, препроцессор;
• поддерживает различные операционные системы: Windows (в том числе Vista 64-bit), Linux и Mac OS X;
• HI-TECH JTAG С дебаггер;
• поддерживается с командной строки, что обеспечивает интеграцию в сторонние среды разработки и редакторы кода.
Lauterbach
Компания Lauterbach GmbH [10], лидер в производстве JTAG-отладчиков, усовершенствовала свой внутрисхемный отладчик MIPS32 для поддержки контроллеров PIC32. Программное обеспечение TRACE32 PowerView — это эффективное и наглядное средство для отладки Си и Си++ кода, трассировки кода и программирования контроллеров. Аппаратный отладчик TRACE32 PowerTools соединяется с компьютером по интерфейсам USB 2.0, Ethernet 10/100 или Ethernet 1000 Мбит и ра-
ботает под управлением операционных систем Windows или Linux,
Заключение
Компания Microchip славится технической поддержкой своих продуктов, Разработчику предлагается комплексная поддержка в виде бесплатной среды разработки MPLAB IDE, симулятора, Си-компилятора, библиотек и примеров применения, разнообразных отладочных плат и внутрисхемных отладчиков,
Однако не только Microchip поддерживает свои контроллеры отладочными средствами, Микроконтроллеры PIC32, с момента своего анонсирования на рынке в ноябре 200У года, завоевали признание ведущих мировых производителей программного обеспечения и отладочных средств для встраиваемых систем, Полноценная поддержка нового семейства, осуществляемая как самой компанией Microchip, так и сторонними производителя-
ми, обеспечивает легкость освоения новых контроллеров PIC32. Наличие большого числа компиляторов, интегрированных сред разработки и аппаратных отладчиков кода дает выбор в применении того или иного продукта, удовлетворяющего запросам, требованиям и предпочтениям разработчика. ■
Литература
1. Борисов А. 32-разрядные микроконтроллеры Microchip // Компоненты и технологии. 2008.
№2.
2. www.microchip.com/PIC32
3. www.CMX.com/microchip/
4. www.easyGUI.com
5. www.segger.com/microchip.html
6. www.micrium.com/microchip/
7. www.ashling.com 8 www.ghs.com
9. www.htsoft.com
10. www.lauterbach.com