Двухъядерные процессоры серии lpc43XX компании NXP

№ 9’2013
PDF версия
Многоядерность в сфере микроконтроллеров для встраиваемых систем — мода или неизбежность? Нужен ли секретарь центральному процессору? Мы постараемся дать ответы на эти и другие вопросы. Статья посвящена ознакомительному описанию двухъядерных микропроцессоров фирмы NXP. Рассматриваются общие аспекты внутреннего строения моделей серии lpc43XX.

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

Обобщенная структурная схема устройств автоматики

Рис. 1. Обобщенная структурная схема устройств автоматики

Если скорость измерения физической величины невелика и требования к обработке и отображению измеренной информации невысоки, то большинство необходимых элементов такой схемы присутствуют в современных микропроцессорах. Под невысокой понимается точность измерения от 0,1% от максимального значения сигнала при частоте дискретизации до 1000 Гц. Под невысокими требованиями к отображению информации — индикация на отдельных светодиодах, семисегментных индикаторах, на одно-, двухстрочных LCD-индикаторах типа WH1602B фирмы WINSTAR или аналогичных. Микропроцессоры, обеспечивающие выполнение этих функций, давно известны на рынке и представлены такими компаниями, как Analog Devices, Texas Instruments, STMicroelectronics, NXP и ON Semiconductor.

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

Измеряется температура. Если она ниже заложенной разработчиком в программном обеспечении, зажигается красный светодиод и включается исполнительное устройство — нагреватель, если температура выше установленной в программе, то включается зеленый светодиод и выключается нагревательный элемент. В такой системе достаточно самого дешевого микропроцессора и простой программы, чтоб выполнить задачу стабилизации температуры (рис. 2).

Структурная схема простого устройства контроля температуры

Рис. 2. Структурная схема простого устройства контроля температуры

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

Структурная схема многоканального измерительного устройства автоматики

Рис. 3. Структурная схема многоканального измерительного устройства автоматики

Обмен данными между центральным и периферийными процессорами, как правило, осуществляется через устройства последовательного обмена данными, такими как UART, SPI, SSP, I2C, CAN. Они присутствуют во всех микроконтроллерах, даже самых недорогих и низкопроизводительных, и для их работы требуется малое количество линий связи. Но они не имеют высокой скорости передачи данных, сравнимой с параллельной передачей, хотя во многих случаях она достаточна. Используя их, мы вынуждены придумывать какой-нибудь протокол обмена данными между процессорами, а значит, тратить время на его разработку и отладку, привлекая дополнительные ресурсы процессора, такие как прерывания и DMA, и пытаясь сделать так, чтоб процесс передачи не мешал выполнению основной программы. И все это для того, чтоб фрагмент памяти периферийных процессоров перенести в память центрального.

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

Мы уже привыкли к многоядерности процессоров в персональных компьютерах (Core Duo i3, i5, i7), имеющих два, четыре, шесть или восемь ядер, хотя большинство из нас плохо представляет, как они работают и как использует все это программа, запущенная на компьютере. Компании, создающие микроконтроллеры, тоже начинают применять этот подход для увеличения производительности. Уже есть варианты двухъядерных микроконтроллеров у нескольких фирм, например:

  • Texas Instruments. F28M35xx — двухъядерные микроконтроллеры серии Concerto: одно ядро — DSP, другое — ARM, OMAP L138.
  • Renesas Technology. Семейство микроконтроллеров SuperH — SH7205. Микросхема SH7205 объединяет в себе два одинаковых ядра SH‑2A производительностью 480 DMIPS, работающих на частоте 200 МГц.
  • MediaTek Technology (Китай). «Система на кристалле» MT6577 и новинка конца 2012 года MT6589, хотя это микроконтроллеры другого класса, предназначенные для телефонов и планшетов.
  • «Миландр» (Россия). Двухъядерный микроконтроллер 1901 ВЦ1 Т: 32‑разрядное RISC-ядро с тактовой частотой до 70 МГц и 16‑разрядное DSP-ядро с тактовой частотой до 100 МГц.
  • NXP. Процессоры серии lpc43XX c двухъядерной асимметричной структурой ядра Cortex-M0 и ядром Cotrex-M4. О них мы расскажем подробнее.

Ядро Cortex-M0 предназначено для того, чтобы освободить ядро М4 от задач, не связанных с высокопроизводительными вычислениями. Ядро М0 берет на себя операции управления обмена с внешними и внутренними периферийными устройствами (АЦП, ЦАП, последовательные EEPROM и т. п.), а также часть обработки прерываний. Это приводит к повышению производительности системы в целом и к значительному снижению энергопотребления, поскольку для сервисных операций используется ядро М0 с низким энергопотреблением, а ядро М4 можно использовать для сложных вычислений и обработки больших блоков данных, после чего его можно отправить в режим сна. Иными словами, ядро М4 поддерживает сложные вычислительные процессы, характерные для того или иного приложения, в то время как М0 обеспечивает собственно работу контроллера в режиме реального времени.

Набор инструкций для ядер ARM Cortex-M представлен в таблице 1. Обработку прерываний можно назначить одному или другому ядру, произведя запись в соответствующий регистр процессора.

Таблица 1. Характеристики семейств Cortex

Тип ядра процессора ARM Cortex-M

Набор команд
Thumb

Набор команд
Thumb2

Аппаратное
умножение

Аппаратное
деление

Арифметика
насыщения

Расширенные
команды DSP

Команды над данными
 в формате с плавающей точкой

Архитектура
ARM

Архитектура
ядра

Соrtех- М0

Большинство

Подмножество

1 или 32 цикла

Нет

Нет

Нет

Нет

ARMv6-M

фон Неймана

Соrtех-M0+

Большинство

Подмножество

1 или 32 цикла

Нет

Нет

Нет

Нет

ARMv6-M

фон Неймана

Соrtех- М1

Большинство

Подмножество

1 или 32 цикла

Нет

Нет

Нет

Нет

ARMv6-M

фон Неймана

Соrtех- М3

Целиком

Целиком

1 цикл

Да

Да

Нет

Нет

ARMv7-M

Гарвардская

Соrtех- М4

Целиком

Целиком

1 цикл

Да

Да

Да

Опционально

ARMv7E-M

Гарвардская

Ядро Cortex-M4 построено по гарвардской архитектуре и включает три шины AHB-Lite: инструкций, данных и системную шину. Наличие отдельных шин данных и команд обеспечивает одновременное получение инструкций и данных от различных периферийных устройств. Ядро включает трехстадийный конвейер, а также устройство предварительной выборки. Встроенный в ядро контроллер вложенных векторных прерываний (NVIC) поддерживает до 53 прерываний.

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

Основные характеристики моделей микроконтроллеров этого семейства представлены в таблице 2.

Таблица 2. Характеристики процессоров семейства LPC43XX

Тип

Память,
кбайт

M4/M0

Поддержка
ЖК-дисплеев

Контроллер Ethernet

Контроллер USB

Конфигурируемые таймеры

Выводы процессора
с функцией
сдвиговых регистров

Внешняя шина адрес/данные, бит

Температурный
диапазон, °С

Корпус

ПЗУ
(Flash)

ОЗУ

LPC4310

Нет

168

Есть

Нет

Нет

1

Есть

Есть

8–16

–40…+80

LQFP144, TBGA100

LPC4312

512

104

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4313

256×2

104

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4315

768

136

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4317

1024

136

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4320

Нет

200

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100,  LQFP100

LPC4322

512

104

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4323

256×2

104

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4325

768

136

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100

LPC4327

1024

136

Есть

Нет

Нет

Есть

Есть

LQFP144, TBGA100,  LQFP100

LPC4330

Нет

264

Есть

Нет

Есть

2

Есть

Есть

16–32

BGA256, BGA180, LQFP144, BGA100

LPC4333

512

136

Есть

Нет

Есть

Есть

Есть

BGA256, BGA180, LQFP144, BGA100

LPC4337

1024

136

Есть

Нет

Есть

Есть

Есть

BGA256, BGA180, LQFP144, BGA100

LPC4350

Нет

264

Есть

Есть

Есть

Есть

Есть

BGA256, BGA180, LQFP144, BGA100

LPC4353

512

136

Есть

Есть

Есть

Есть

Есть

LQFP 208, BGA256, , BGA180

LPC4357

1024 (512×2)

136

Есть

Есть

Есть

Есть

Есть

LQFP 208, BGA256, BGA180

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

Так, например, контроллеры LPC43XX наследуют большую часть своей периферии от LPC17XX, LPC18XX и даже более поздних моделей LPC23XX и LPC24XX. Поэтому знания и наработки инженера, полученные при работе с ними, облегчают изучение нового процессора, так как User manual на него содержит 1300 страниц.

Структура блоков процессора LPC43XX представлена на рис. 4.

Структура блоков процессора LPC43XX

Рис. 4. Структура блоков процессора LPC43XX

Особенности контроллеров LPC43XX по сравнению с предыдущими моделями следующие.

Они построены на многоуровневой шинной матрице (рис. 5), используемой и в предыдущих поколениях микроконтроллеров. Она позволяет обмениваться данными с памятью и периферией (UART, SPI, SSP, USB) нескольким устройствам без арбитража шины и ожидания ее освобождения. Теперь к ней подключился еще один «мастер» — ядро M0. На взаимодействии между процессорами мы остановимся чуть позже, отметим лишь, что оно реализовано через ОЗУ, которое в данном случае служит почтовым ящиком.

Многоуровневая шинная матрица, связывающая блоки микроконтроллера

Рис. 5. Многоуровневая шинная матрица, связывающая блоки микроконтроллера

Микроконтроллеры семейства LPC43XX используют оптимизированную архитектуру флэш-памяти с 256‑разрядным доступом (в предыдущих моделях был 128‑разрядный), что позволяет уменьшить число обращений к памяти и при этом оптимизировать производительность микроконтроллера. В зависимости от модификации в семействе LPC4300 предусмотрено до 1 Мбайт флэш-памяти. Ее можно конфигурировать как единый массив либо представить ее в виде двух симметричных банков.

Внутреннее ОЗУ в старших моделях семейства объемом до 264 кбайт у LPC43XX — одно из самых больших для существующих сегодня на рынке микроконтроллеров на базе ядер Cortex-M4. Оперативная память разбита на блоки: всего пять блоков ОЗУ. В результате возможно одновременное обращение к разным блокам ОЗУ как со стороны ядер, так и по каналам прямого доступа (DMA). Получается очень удачное сочетание для быстрой и эффективной работы системы в целом, так как каждому из ядер можно выделить свое пространство флэш-памяти программ, свой фрагмент оперативной памяти. Благодаря независимому доступу к этим пространствам через AHB многослойную матрицу (рис. 5) получаются две максимально независимые системы, работающие параллельно.

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

В контроллере появился четырехбитный SPI-интерфейс к внешней флэш-памяти типа Quad SPI Flash. Сейчас Quad SPI Flash — это недорогая и емкая память. Ее выпускают многие производители — Atmel, Gigadevice, Macronix, Micron (Numonyx), Microchip (SST), Winbond и др. Однако до недавнего времени микроконтроллеры не поддерживали Quad SPI Flash. Семейства LPC4000 поддерживают SPIFI (SPI Flash Interface) к Quad SPI флэш-памяти.

Вместо четырех сигнальных линий традиционного SPI-интерфейса (CLC, CS, MOSI, MISO) в SPIFI — шесть линий (CLC, CS, IO0–IO3), четыре из которых (IO0–IO3) предназначены для передачи данных параллельно. Благодаря высокой скорости обмена по SPIFI — до 52 Мбайт/с, внешняя флэш-память может заменять внутреннюю. Она отображена на внутреннее адресное пространство контроллера. Это полезно для ряда недорогих приложений, поскольку стоимость микросхем внешней флэш-памяти существенно ниже, чем цена микроконтроллера с большим объемом встроенной памяти. Например, это стандартная задача отображения информации на графическом ЖК-экране. Как правило, массив видеоданных хранится во внешней памяти, но для отображения записывается в ОЗУ микроконтроллера со встроенным контроллером ЖКИ, поскольку время обмена с внешней памятью велико. Интерфейс SPIFI и шинная архитектура семейства LPC4000 позволяют обходиться без загрузки данных в ОЗУ, непосредственно обращаясь к внешней Quad SPI флэш-памяти. Достоинства доступа к внешней флэш-памяти посредством SPIFI аналогично проявляются в задачах обработки больших массивов информации в реальном времени, что характерно для цифровой обработки сигналов.

Следующая новинка в микроконтроллере — таймеры с конфигурируемым состоянием (State Configurable Timer, SCT). Это набор таймеров с машиной состояний, управляемой по событиям. Система, включающая 8 входов и 16 выходов, предусматривает 32 состояния, переключение между которыми возможно по 16 различным событиям. Запрограммировав машину состояний, разработчик разгружает процессор от многочисленных процедур формирования сложных последовательностей выходных сигналов.

Претерпели изменения и порты ввода/вывода: теперь это программируемые последовательные порты ввода/вывода общего назначения (SGPIO). SGPIO представляет собой традиционный порт общего назначения, оснащенный сдвиговым регистром и программируемым таймером, а также регистром состояния. SGPIO позволяют, в частности, формировать выходной сигнал (путем программирования задержек и состояний битовых полей), не загружая процессорные ядра. Это очень важно, например, для реализации нестандартных последовательных интерфейсов и эмуляции стандартных интерфейсов: I2S (многоканальный аудиоинтерфейс с временным разделением каналов), I2C, SPI и др. Подчеркнем, процессор при этом освобождается от задач формирования точных временных последовательностей сигналов.

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

Кроме того, существует развитая система режимов пониженного энергопотребления:

  • Режим сна — процессор остановлен, но периферия активна.
  • Режим глубокого сна — остановлен основной и все внутренние тактовые генераторы, кроме таймера реального времени. Флэш-память переведена в режим ожидания, но готова к немедленному доступу.
  • Выключение питания — отключено все, кроме флэш-памяти и часов реального времени. Состояние контроллера сохраняется.
  • Глубокое отключение питания — остановлено все, включая часы реального времени. Внутреннее напряжение отключено. Системное состояние сброшено, сохраняются только данные в регистрах часов реального времени.

Есть отдельное ПЗУ, 64 кбайт, в котором прошиты загрузчик и программные драйверы периферии. Поддерживается загрузка через UART, внешнюю статическую память, NOR flash, SPI flash, Quad SPI flash, высокоскоростные USB0 и USB1.

Конечно, процессоры вышли позже, чем планировала компания NXP. Процессоры, ранее анонсированные как работающие на частоте 150 МГц (по документации 2010 года) и 180 МГц (по документации 2011 года), затем, в конце 2012 года, были выпущены с частотой 204 МГц, что стало приятным сюрпризом. Дело в том, что у одноядерных процессоров с ядрами Cortex-M4 конкурирующих компаний микропроцессоры уже давно работают на частоте 168 МГц (например, контроллеры семейства STM32 F4 фирмы STMicroelectronics).

Вместе с повышением тактовой частоты процессора на более высокой частоте стала работать и периферия, которая перешла в контроллер от предыдущих моделей. Это последовательные порты I2C, SPI и UART. Внешнюю динамическую память можно будет запустить на частоте 120 МГц, что также скажется на общей производительности системы в лучшую сторону, особенно если еще использовать 32‑разрядную динамическую память.

Вообще разработчику прикладного ПО можно принять модель такого двухъядерного контроллера, как контроллер Cortex-M4, и еще одно периферийное устройство — Cortex-M0, более сложное, чем те, с которыми он сталкивался до сих пор. Оно имеет свои регистры, память, прерывания, возможность захвата шины для обмена данными, как DMA. И соответственно, создатели микроконтроллера предлагают построить взаимодействие следующим образом (рис. 6). Основной процессор — ядро Cortex-M4 — оставляет задание в буфере команд ведущего ядра и инициирует прерывание для ядра Cortex-M0, которое читает это сообщение, выполняет и оставляет результаты работы в буфере сообщений ведомого ядра, а затем генерирует свое прерывание для центрального процессора.

Структурная схема взаимодействия ядер в микропроцессорах серии LPC43XX

Рис. 6. Структурная схема взаимодействия ядер в микропроцессорах серии LPC43XX

Приведем краткое описание всех функциональных возможностей процессоров серии LPC43XX:

  • Ядро Cortex-M4:
    • Процессор ARM Cortex-M4, работающий на частоте до 204 МГц.
    • Встроенный модуль защиты памяти (MPU) с поддержкой восьми регионов.
    • Встроенный контроллер вложенных векторных прерываний (NVIC).
    • Аппаратный модуль работы с плавающей запятой.
    • Отдельный вход немаскируемого прерывания (NMI).
    • Поддержка одноцикловых команд цифровой обработки сигналов и SIMD-инструкций.
    • JTAG и SWD — последовательные протоколы для отладки, поддерживающие восемь точек останова breakpoint и четыре точки watchpoints.
    • Встроенный модуль трассировки Enhanced Trace Module (ETM) и буфер трассировки Enhanced Trace Buffer (ETB).
    • Системный таймер.
  • Ядро Cortex-M0 Processor core:
    • Сопроцессор ARM Cortex-M0, способный разгрузить главный процессор Cortex-M4.
    • Работает на частоте до 204 МГц.
    • JTAG и контроллер вложенных векторных прерываний (NVIC).
  • Внутренняя память (для кристаллов без флэш-памяти):
    • 264 кбайт SRAM-памяти для кода и данных.
    • Несколько блоков SRAM с отдельным доступом к шине. Два SRAM-блока с возможностью переключения в режим пониженного энергопотребления.
    • 64 кбайт ROM-памяти, содержащей код и программные драйверы.
    • 32 бита памяти общего назначения, однократно программируемые пользователем.
  • Внутренняя память (для кристаллов с флэш-памятью):
    • До 1 Мбайт встроенной флэш-памяти, разделенных на два банка с ускорителем доступа.
    • 16 кбайт встроенной EEPROM-памяти.
    • 136 кбайт SRAM-памяти для кода и данных.
    • Несколько блоков SRAM с отдельным доступом к шине. Два SRAM-блока переведены в режим пониженного энергопотребления.
    • 64 кбайт ROM-памяти, содержащей код и программные драйверы.
    • 64 бита памяти общего назначения, однократно программируемые пользователем.
  • Конфигурируемые цифровые устройства:
    • Последовательный интерфейс портов ввода/вывода.
    • Таймеры с конфигурируемым состоянием в подсистеме AHB.
    • Глобальный массив мультиплексоров ввода (GIMA). Позволяет перенаправить события, возникающие от одних устройств, таких как USART0/2/3 RX/TX, USB0/1, входные выводы SCT и выходы совпадения таймеров TIMER0/1/2/3, на другие периферийные устройства: входы захвата таймеров TIMER0/1/2/3, SCT, АЦП0/1, SCT. Например, старт преобразования АЦП могут инициировать события, возникшие у таймера совпадения.
  • Последовательные интерфейсы:
    • Счетверенный SPI-интерфейс флэш-памяти (SPIFI) с 1-, 2‑ или 4‑битными данными и скоростью обмена до 52 Мбайт/с.
    • 10/100T Ethernet MAC с интерфейсами RMII и MII и поддержкой DMA. Отличается высокой пропускной способностью при низкой нагрузке на процессор. Поддержка IEEE 1588 и IEEE 1588-2008 v2.
    • Один высокоскоростной USB 2.0 Host/Device/OTG-интерфейс с поддержкой DMA и встроенный в чип высокоскоростной физический уровень PHY.
    • Один высокоскоростной USB 2.0 Host/Device-интерфейс с поддержкой DMA, встроенный в чип скоростной PHY и ULPI-интерфейс для внешнего высокоскоростного физического уровня.
    • Подпрограммы тестирования электрических цепей USB-интерфейса, включенные во встроенную ROM-библиотеку USB stack.
    • Один UART стандарта 550 с поддержкой DMA и полноскоростной модем.
    • Три USART стандарта 550 с поддержкой DMA и синхронным режимом поддержки смарт-карт.
    • Интерфейс, совместимый со спецификацией ISO7816. Один USART с интерфейсом IrDA.
    • Два C_CAN 2,0‑B контроллера по одному каналу на каждый. Использование контроллера C_CAN исключает работу других периферийных устройств, подключенных к тому же мосту шины.
    • Два SSP-контроллера с FIFO и поддержкой нескольких протоколов. Оба SSP с поддержкой DMA.
    • Один SPI-контроллер.
    • Один I2C-интерфейс c режимом Fast-mode Plus. Полностью соответствует спецификации шины I2C. Поддерживает скорость передачи данных до 1 Мбит/с.
    • Одна стандартная I2C-шина с режимом монитора и стандартными портами ввода/вывода.
    • Два I2S-интерфейса, каждый с поддержкой DMA.
  • Цифровая периферия:
    • Контроллер внешней памяти (EMC) с поддержкой внешних SRAM, ROM, NOR Flash и SDRAM устройств.
    • LCD-контроллер, с поддержкой DMA, с программируемым разрешением экрана вплоть до 1024 точек по горизонтали на 768 точек по вертикали. Поддерживает монохромные и цветные STN-панели и цветные TFT. Поддерживает 1/2/4/8‑битный цвет с использованием таблицы ColorLook-UpTable (CLUT) и прямое отображение 16/24‑разрядных пикселей.
    • Интерфейс SDIO (Secure Digital Input Output).
    • Восьмиканальный контроллер DMA общего назначения (GPDMA) может получить доступ ко всем элементам шины AHB, которые являются DMA-совмес-тимыми, ведомыми устройствами.
    • До 164 вводов/выводов общего назначения (GPIO). Контакты этих выводов можно сконфигурировать так, что они будут подключены внутренними нагрузочными резисторами к питанию или на общий вывод процессора.
    • Регистры SGPIO находятся на AHB для быстрого доступа к ним. SGPIO-порты поддерживают DMA.
    • Восемь выводов процессора могут быть выбраны из любых его GPIO-выводов и работать как источники прерываний по фронту сигнала или уровню.
    • Выводы процессора объединены в две группы: GPIO GROUP0 и GPIO GROUP1. Это модули разрешения прерывания на основе запрограммированных паттернов входных состояний контактов этих GPIO. То есть можно запрограммировать прерывание при совпадении определяемого пользователем паттерна (ожидаемого набора уровней на выводах процессора) и текущего состояния уровней напряжения на выводах процессора.
    • Четыре универсальных таймера-счетчика, каждый — с каналами захвата и совпадения.
    • Один широтно-импульсный модулятор (PWM) — для трехфазного управления двигателем.
    • Один квадратурный энкодер (QEI).
    • Таймер повторяющихся прерываний (RIT). RIT является универсальным средством получения прерываний через заданные интервалы времени, без использования стандартного таймера.
    • Оконный сторожевой таймер (WWDT). Он позволяет пользователю задать временной интервал, в течение которого необходимо сбросить сторожевой таймер. Если WWDT сбрасывается слишком рано или слишком поздно, выполняется системный сброс.
    • –  Часы реального времени (RTC) c ультранизким энергопотреблением, с 256 байтами для резервного хранения и отдельным батарейным питанием.
    • Монитор, регистратор событий, с тремя входами: Event 0, Event 1, Event 2, которые служат для записи числа событий и времени их появления. Монитор может работать от батарейного питания.
    • Таймер тревоги (будильник), с возможностью подключения к батарейному питанию. Может инициировать переход процессора в состояние пониженного энергопотребления или выход из этого состояния.
  • Аналоговая периферия:
    • Один 10‑битный ЦАП с поддержкой DMA и скоростью преобразования до 400 000 отсчетов/с.
    • Два 10‑битных АЦП с поддержкой DMA и скоростью преобразования до 400 000 отсчетов/с. До восьми входных каналов на каждый АЦП.
  • Безопасность (только для процессоров SLPC43Sxx):
    • AES-шифрование с помощью встроенного API.
    • Два 128‑битных, однократно программируемых фрагмента памяти для хранения AES ключей шифрования и хранения данных пользователя.
    • Генератор случайных чисел, доступный через AES API.
    • Уникальный ID для каждого устройства.
  • Блок системных тактовых сигналов:
    • Кварцевый генератор с рабочим диапазоном частот от 1 до 25 МГц.
    •  Внутренние RC- и IRC-генераторы работают на частоте 12 МГц. Стабильность частоты при изменении температуры и напряжения питания доведена до 1%.
    • Кварцевый генератор часов реального времени (RTC) с ультранизким энергопотреблением.
    • Три ФАПЧ (PLL). Первый позволяет получать максимальную тактовую частоту процессора без высокочастотных кварцев. Второй PLL предназначен для высокоскоростного USB, третий PLL можно использовать в качестве генератора для аудио.
    • Выход тактового сигнала.
  • Питание:
    • Один источник питания 3,3 В (допустимый диапазон — 2,2–3,6 В) со встроенным DC/DC-преобразователем для питания ядра и блока RTC.
    • Блок RTC может питаться отдельно от 3‑В батарейного питания.
    • Четыре режима пониженного энергопотребления: «сон», «глубокий сон», Power-down и Deep power-down.
    • Процессор пробуждения из режимов пониженного энергопотребления, через прерывания пробуждения (wake-up, interrupts) от различных периферийных устройств.
    • Переход из режима глубокого сна в рабочий режим и обратно и переход в режим Deep Power-down с помощью внешних прерываний и прерываний, порожденных устройствами, подключенными к батарейному питанию в блоке RTC POWER DOMAIN.
    • Система обнаружения падения напряжения питания с четырьмя отдельными порогами для прерывания и принудительного сброса.
    • Power-On-Reset (POR) — система формирования сигнала сброса при достижении рабочего напряжения питания процессора.

Процессор доступен в BGA-корпусах (LBGA256, TFBGA180, TFBGA100) и QFP-корпусах (LQFP208 и LQFP144).

Сразу встает вопрос: а как писать программы и отлаживать их в известных IDE-системах? Например, таких, какими пользуется большинство инженеров: IAR Embedded Workbench и Keil µVision. Это происходит следующим образом. Создается новый проект, внутри которого в поле конфигурации создается два варианта проекта: Cortex-M0 и Cortex-M4. Далее в каждом варианте разрабатываем свою программу. Причем пытаемся писать ее с отладочными кодами, которые позволили бы нам отладить каждое ядро отдельно.

Примеры создания проекта и примеры программ для двухъядерного микроконтроллера на IDE компаний Keil и IAR приведены в [2, 3].

И об экономической стороне вопроса. Цена кристалла должна быть в среднем около $10, что является очень привлекательным фактором для применения его в недорогих массовых изделиях.

Образцы отладочных плат, на которых можно поэкспериментировать, представлены несколькими фирмами:

  • LPC4357 OEM Board DS от Embedded Artists;
  • SK-LPC4357 от StarterKit;
  • MCB4357 Evaluation Board от Keil;
  • LPC4330‑Xplorer bundle от NGXtechnologies;
  • LPC4350 Eval board от Hitex;
  • LPC4357‑DB1 от Diolan.
Литература
  1. http://www.lpcware.com/content/project/lpc43xx-dual-core-examples
  2. http://www.lpcware.com/content/project/lpc43xx-dual-core-notes
  3. http://www.lpcware.com/content/project/lpcopen-platform-nxp-lpc-microcontrollers/lpcopen-build-procedures/lpc18xx/43xx-lpco
  4. http://www.nxp.com/products/microcontrollers/cortex_m4/
  5. www.lpcware.com
  6. http://www.lpc4350.com
  7. http://www.lpcnow.com
  8. Лис  Д., Шахнович  И. Двухъядерные микроконтроллеры Cortex-M4/M0 от NXP: первые ласточки // Электроника: НТБ. 2010. № 8.
  9. www.nxp.com/products/microcontrollers

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

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