Семейство микроконтроллеров XMC1000 компании Infineon, базирующееся на архитектуре Cortex-M0

№ 12’2014
PDF версия
С того момента как был анонсирован выпуск новых микроконтроллеров Infineon серии XMC, прошло свыше полутора лет. На данный момент большинство заявленных кристаллов сертифицировано и изготавливается серийно. Компания Infineon имеет несколько успешных семейств микроконтроллеров для применения в области промышленной автоматизации и в транспортных системах, начиная от 8 битных до высокопроизводительных 32 битных многоядерных процессоров серии TriСore, которые широко распространены и сейчас. Основным достоинством нового семейства XMC является возможность использования единых средств разработки и отладки программного обеспечения, независимо от фирмы-производителя. И хотя различные фирмы предлагают свои бесплатные среды разработки, наиболее комфортная и эффективная деятельность обеспечивается с помощью инструментария от таких компаний, как IAR и Keil.

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

Общая сфера применения — промышленная автоматизация, транспорт, системы энергетики. Всего создано три серии XMC1100, XMC1200 и XMC1300, которые отличаются размером флэш-памяти (от 8 до 200 кбайт) и оснащены высокопроизводительной периферией. В микроконтроллерах доступны 12-битные цифро-аналоговые преобразователи, универсальные модули для связи в соответствии с различными стандартами последовательных коммуникаций и широтно-импульсные модуляторы высокого разрешения. Главное отличие этих подсемейств состоит именно в особенностях периферийных блоков, которые и придают ориентированность применения. Идеология построения периферийных модулей определена многолетним опытом разработки микроконтроллеров компанией Infineon и является их ключевым отличием.

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

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

Серия XMC1300 ориентирована на управление двигателями; микроконтроллер содержит 24-битный CORDIC-сопроцессор (Coordinate Rotation Digital Computer), действующий на удвоенной частоте ядра и способный разгрузить основное вычислительное ядро при выполнении интенсивных геометрических преобразований. Соответственно, эти вычисления необходимы в системах управления различными электродвигателями и инверторами.

Важно отметить, что все семейства XMC (включая наиболее мощное семейство XMC4500) сертифицированы согласно стандарту IEC60730 класс В. В семейство XMC компания Infineon добавила блоки коррекции аппаратных ошибок (ECC) и модуль криптографии для ускорения операций в соответствии со 128-битным кодированием AES для загрузчика, что создает хорошую защиту встроенного программного обеспечения.

Соизмеримая стоимость XMC1000 по сравнению с 8-битными микроконтроллерами достигается за счет применения современного технологического процесса с нормами 65 нм и 300-мм пластин для производства кристаллов.

Отличным преимуществом также является возможность бесплатной загрузки программного обеспечения от фирмы Keil, которое позволяет работать с любым микроконтроллером семейства XMC1000 (ограничение на размер кода 128 кбайт вполне достаточно для большинства проектов, а зачастую даже превышает размер располагаемой памяти).

Отдельно хочется отметить среду разработки Dave3 [1], бесплатно распространяемую фирмой Infineon и использующую концепцию компонентно-ориентированного программирования. Основанная на Eclipse, данная среда предназначена для создания и отладки всего проекта, но возможно и частичное ее применение для формирования файлов начальной инициализации и низкоуровневых драйверов устройств с дальнейшим экспортом этих файлов в такие IDE, как EWARM фирмы IAR, MDK от Keil, и другие. Разработка низкоуровневых драйверов и файлов начальной инициализации периферии зачастую вызывает затруднения, особенно у начинающих проектировщиков. Dave3 обеспечивает графическое представление используемых блоков периферии и их взаимодействие между собой, возможность начального конфигурирования и задания параметров, а также распределение выводов кристалла для подключения к конкретным блокам как в автоматическом, так и в ручном режиме, что значительно облегчает и ускоряет процесс. Ну и самое главное преимущество — это большое количество примеров типового применения аппаратных и программных блоков, в которых в интерактивной форме какого-либо отдельного компонента его можно сконфигурировать в соответствии со своими потребностями и после компиляции получить рабочий проект.

Дополнительно компонентно-ориентированный подход позволяет легко использовать несколько одинаковых компонентов, то есть одинаковых блоков периферии, которых в микроконтроллерах XMC обычно несколько. Причем IDE Dave3 сама назначает имена аналогичным блокам, чтобы не происходило путаницы при разработке программы. Так, зачастую мы можем управлять не одним, а сразу несколькими двигателями или организовывать несколько каналов передачи данных, имеющих аналогичную структуру.

И конечно, самое главное, особенно для тех, кто только делает первые шаги в области разработки программного обеспечения для встраиваемых систем, — это большое количество примеров применения периферии для различных задач, выполненных не просто в виде дополнительных библиотек, а в виде Dave-приложений, наглядно демонстрирующих варианты решения поставленной задачи как в однозадачной системе, так и в операционной системе реального времени. Например, зачастую вопросы пространственно-векторного управления бесколлекторными двигателями именно в практическом плане, то есть при переходе от теории реализации алгоритмов управления с применением преобразований Кларка и Парка к конкретно выполняемому коду на языке C, недостаточно хорошо освещаются, а с помощью исходных файлов именно в приложениях Dave3 можно сразу увидеть конкретную реализацию алгоритма. Поэтому очень полезно начинать изучение программирования встраиваемых систем не с ARDUINO-совместимых проектов, что в дальнейшем потребует значительных усилий при переходе на профессиональные системы разработки, а разбирать и модифицировать примеры приложений в среде Dave3, которые написаны высокопрофессиональными специалистами с огромным опытом. При этом, конечно, нельзя отвергать и полезность изучения и ARDUINO-совместимых проектов.

Работа с младшими семействами микроконтроллеров, основанными на ядре Cortex-M0 (а именно к ним и относятся описанные семейства), дает возможность легко перейти к решениям на ядре Cortex-M4 (семейство XMC4500), поскольку мы имеем дело в основном с теми же периферийными блоками (или точнее — с их дальнейшим развитием).

В таблице отображены основные характеристики семейства XMC1000.

Таблица. Основные характеристики семейства XMC1000
Семейство XMC1100 XMC1200 XMC1300
Ядро ARM Cortex-MO
Рабочая частота, МГц 32
Наличие сопроцессора CORDIC (64 МГц)
Размер флэш-памяти, кбайт 8-64 16-200 8-200
Статическое ОЗУ, кбайт 16
Интерфейс POSIF  
Таймеры 1 1(CCU4) + 1(CCU8)
12-битный АЦП 1 1 (2 выборка и хранение)
Компараторы 3
Последовательный интерфейс 3 канала
Дополнительно Управление матрицей светодиодов.
Емкостный интерфейс.
Управление яркостью светодиодов
Управление яркостью светодиодов
Температурный диапазон, °С –40…+85 (–40…+105)
Корпус TSSOP16, 32; VQFN24, 48

Для начала ознакомления с микроконтроллерами XMC1000 (и XMC4500) достаточно установить с сайта производителя IDE Dave3 и оценить концепцию работы с ней на имеющихся примерах. Если она вам понравится, то, возможно, эти микросхемы окажутся предпочтительными для вашей последующей деятельности. Затем нужно подобрать соответствующую демонстрационную плату для более детального знакомства и начала работы над очередным изделием.

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

В заключение хочется упомянуть новые оценочные платы: крошечную по размерам XMC2GO, XMC1000 Motor Control Application Kit и плату с микроконтроллером XMC1200 (для любителей ярких свето-диодов и емкостных кнопок). Внешний вид комплектов представлен на рис. 1-3.

Оценочная плата XMC2GO с микроконтроллером XMC1100

Рис. 1. Оценочная плата XMC2GO с микроконтроллером XMC1100

Оценочная плата Motor Control Application Kit c XMC1300

Рис. 2. Оценочная плата Motor Control Application Kit c XMC1300

Оценочная плата LED Lighting Application Kit с XMC1200

Рис. 3. Оценочная плата LED Lighting Application Kit с XMC1200

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

Отметим положительные стороны описанных микроконтроллеров XMC1000, на которые необходимо обратить внимание:

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

Вывод: семейство XMC1000 — это качественные, сбалансированные по производительности, надежные микроконтроллеры для разнообразных промышленных применений. 

Литература
  1. Иванов О. Dave3 — среда компонентно-ориентированного программирования для встраиваемых систем // Компоненты и технологии. 2013. № 7.
  2. www.infineon.com
  3. Arduino-совместимый проект https://code.google.com/p/arduino-to-xmc/
  4. Форум с поддержкой специалистами компании www.infineonforums.com

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

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