SAM4E — новое семейство микроконтроллеров с ядром Cortex-M4 корпорации Atmel

№ 7’2013
PDF версия
В конце 2012 года корпорация Atmel анонсировала серию микроконтроллеров SAM4E на базе ядра Cortex-M4F с аппаратным блоком арифметики с плавающей точкой. Кристалл содержит большой объем Flash-памяти, множество различных последовательных интерфейсов, улучшенную аналоговую часть. Он ориентирован для применения в промышленных приложениях, в которых требуются высокая производительность, наличие нескольких коммуникационных интерфейсов и высокие математические возможности. В статье рассмотрены общие характеристики микроконтроллера SAM4E и новшества, отличающие его от других семейств Atmel на базе ядер Cortex-M3/M4.

Максимальная тактовая частота SAM4E с ядром Cortex-M4F составляет 120 МГц. Он содержит 1024 кбайт Flash-памяти, 2 кбайт кэш-памяти и до 128 кбайт ОЗУ. Поддерживается питание от одного источника 1,62-3,6 В, при этом питание ядра осуществляется с помощью встроенного преобразователя напряжения. Рабочий температурный диапазон кристалла — индустриальный (-40…+85 °C). Основные параметры семейства SAM4E приведены в таблице 1.

Таблица 1. Характеристики микроконтроллера SAM4E

Параметр Значение
Частота 120 МГц
Flash-память От 512 кбайт до 1 Мбайт
ОЗУ 128 кбайт
EMAC 10/100 Мбит/с, IEEE 1588
CAN 2
USART 4
SPI 3
I2C 2
Криптоалгоритмы AES256
Parallel Capture (CMOS int.) Есть
2×16-разрядных АЦП, 1 Msps До 24 каналов
12-разрядный ЦАП До 2 каналов
Таймеры-счетчики/ШИМ 9/4
Интерфейс MCI/SDIO Есть
USB FS Device
Интерфейс внешней шины Есть
Линий ввода/вывода До 117
Количество выводов 100-144
Корпус QFP, BGA

На рис. 1 показана блок-схема микроконтроллера. Особенности микроконтроллера SAM4E — два высокоскоростных периферийных моста, блок арифметики с плавающей точкой, двойной сторожевой таймер и новые периферийные блоки EMAC, CAN, AFE, AES с поддержкой DMA.

Блок-схема микроконтроллера SAM4E

Рис. 1. Блок-схема микроконтроллера SAM4E

Еще одна особенность архитектуры SAM4E — только один блок ФАПЧ. Благодаря наличию нового делителя (USBDIV) для тактирования USB, он позволяет тактировать устройство на максимальной скорости (120 МГц) и генерировать сигнал 48 МГц для USB.

Пример: 25 МГц×(МUL = 47 & DIV = 5) => 240 МГц. Чтобы получить рабочую частоту, 120 МГц нужно разделить на 2. Затем полученное значение следует разделить на 5 (USBDIV = 4), чтобы получить тактовый сигнал для USB.

В таблице 2 показано сравнение функциональности и производительности архитектур Cortex компании Atmel.

Таблица 2. Сравнение функциональности ЦПУ с разной архитектурой компании Atmel

Ядро Cortex-M0 Cortex-M3 Cortex-M4 Cortex-M4F
Aрхитектура Фоннеймановская

Гарвардская

Расширенный набор команд + + +
DSP + +
SIMD   + +
FPU +
Производительность, DMIPS/МГц 0,84

1,25

Блок арифметики с плавающей точкой

Блок арифметики с плавающей точкой (FPU) в Cortex-M4F реализует расширение с плавающей точкой FPv4-SP. FPU поддерживает операции сложения, вычитания, умножения, деления, умножения с накоплением, извлечения квадратного корня с одинарной точностью (32 бита) и две операции с двойной точностью (64 бита, для команд load и store). FPU также обеспечивает преобразование между форматами данных с плавающей и фиксированной точкой. Режимы работы FPU:

  • В полнофункциональном режиме, соответствующем стандарту IEEE 754.
  • Режим сброса в ноль (Flush-to-zero mode, FZ).
  • Режим по умолчанию «не число» (Default NaN, DN), при котором результат любой арифметической операции, включающей на входе NaN или дающей в результате NaN, получается по умолчанию NaN.

IEEE 754 — наиболее широко используемый стандарт для действительных чисел с плавающей точкой для персональных компьютеров разных архитектур, например Intel, Macintosh или на платформах Unix. Когда режимы DN и FZ отключены, функциональность FPv4 аппаратно соответствует стандарту IEEE 754, и дополнительного кода не требуется. Следует добавить, что набор команд для чисел с плавающей точкой Cortex-M4F поддерживает не все операции, определенные стандартом IEEE 754-2008, например, не поддерживается команда remainder.

Установка бита FZ регистра FPSCR [24] разрешает режим Flush-to-zero. В этом режиме FPU обрабатывает все операнды де-нормализованных входов арифметических операций как ноль. Исключения от нулевого операнда передаются соответственно. VABS, VNEG и VMOV не считаются арифметическими операциями и не затрагиваются режимом сброса в ноль. Если результат мал, как описано в IEEE 754, и для заданной точности меньше по значению, чем наименьшее представимое нормализованное число перед округлением, то он заменяется на ноль. Флаг IDC регистра FPSCR [7] показывает, когда происходит сброс на входе. Флаг UFC регистра FPSCR [3] показывает, когда происходит сброс на выходе.

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

Количество команд для реализации функции вычитания без FPU и с FPU

Рис. 2. Количество команд для реализации функции вычитания без FPU и с FPU

Следует добавить, что команда не всегда занимает один или несколько машинных циклов, например для команды деления требуется 14 машинных циклов.

Кэш-память

Кэш-память — небольшой объем памяти для хранения данных, к которым может быть обеспечен скоростной доступ (рис. 3). Действуя в качестве ОЗУ, кэш-память позволяет избежать задержек, вносимых вынужденными состояниями ожидания. Помимо увеличения скорости, кэш-память позволяет снизить количество обращений к Flash-памяти. Таким образом, заметно снижается энергопотребление, так как обращение к кэш-памяти менее энергозатратно (табл. 3).

Расположение кэш-памяти в структуре SAM4E

Рис. 3. Расположение кэш-памяти в структуре SAM4E

Таблица 3. Снижение энергопотребления при использовании кэш-памяти

Частота ядра IVDDIN, мA IVDDCORE, мA
123 МГц (кэш отключен) 21,5 24,1
123 МГц (кэш подключен) 18,5 20,6

Производительность кристалла SAM4E при рабочей частоте ядра 21 МГц, при которой не вносится задержек из-за состояний ожидания при работе с Flash-памятью, составляет 3,33 Coremark/МГц по расчетам теста Coremark, скомпилированного с помощью IAR6.50 с максимальным уровнем оптимизации. При рабочей частоте ядра 123 МГц при отключенной кэш-памяти этот показатель составляет 2,03 Coremark/МГц, а при включенной кэш-памяти — 3,38 Coremark/МГц.

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

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

В SAM4E кэш-память состоит из четырех записей (рис. 4). При выборке команды или данных они копируются в первую запись, при этом для записи нужен один цикл состояния ожидания. Считываются данные из кэш-памяти уже на рабочей скорости ядра, состояния ожидания не требуется. Записи осуществляются последовательно. Когда кэш заполняется, следующие данные записываются снова в первую запись, старые данные удаляются, и так далее по кругу.

Работа кэш-памяти

Рис. 4. Работа кэш-памяти

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

  • Проверить, что контроллер кэш-памяти отключен: прочесть значение поля статуса кэш-памяти CSTS регистра CMCC_SR.
  • Разрешить контроллер кэш-памяти записью единицы в поле CEN регистра CMCC_CTRL.

Блок обработки аналоговых сигналов

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

  • Два контроллера аналогового сигнала:
    • 12-канальное АЦП с разрешением 12 бит, частота дискретизации 1 млн отсчетов/с;
    • возможность улучшения разрядности до 16 бит при 4 тыс. отсчетов/с;
    • автокалибровка;
    • компенсация смещения и программируемое усиление сигнала;
    • система событий реального времени;
    • несимметричный и дифференциальный режим;
    •  поддержка DMA.
  • ЦАП:
    • 2-канальный, 12-разрядный;
    • поддержка DMA.
  • Аналоговый компаратор.

В структуру каждого контроллера аналогового сигнала (Analog-Front-End Controller (AFEC)) входит 12-разрядный АЦП, а также мультиплексор с возможностью подключения до 16 аналоговых сигналов (рис. 5). Уровень входного сигнала от 0 В до ADVREF.AFEC поддерживает режимы с разрешением 10 или 12 разрядов. Разрешение может быть увеличено до 16 разрядов при использовании цифрового усреднения. Схемы сравнения позволяют осуществлять автоматическое определение значений ниже и выше установленного порога или попадание значения в установленное окно; пороги и окно конфигурируются.

Блок-схема блока аналогового преобразования

Рис. 5. Блок-схема блока аналогового преобразования

Для снижения энергопотребления кристалла в блоке AFEC предусмотрены различные режимы сна, преобразованные данные по готовности могут переправляться в ОЗУ без участия процессорного ядра под управлением контроллера DMA, а запуск преобразований может осуществляться циклично, без дополнительных сигналов от процессора.

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

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

Рассмотрим условное увеличение разрядности АЦП с 12 до 16 бит (рис. 6). Динамический диапазон — соотношение между наибольшим и наименьшим возможным значением сигнала. Перед увеличением динамического диапазона необходимо скорректировать смещение. Далее благодаря встроенному PGA (усилителю с программируемым усилением) и цифровому усреднению динамический диапазон увеличивается, как если бы мы использовали 16-разрядный АЦП. Цифровое усреднение выполняется автоматически в режиме увеличения разрядности, то есть когда АЦП используется в режиме с разрядностью 13, 14, 15 или 16 бит.

Алгоритм увеличения разрядности АЦП

Рис. 6. Алгоритм увеличения разрядности АЦП

Аналоговое смещение может быть сконфигурировано битом OFFSET регистра Channel Offset Register (AFE_CDOR). Коррекция смещения доступна только в несимметричном режиме.

Осуществить преобразование небольших напряжений достаточно сложно, используя 10-или 12-разрядные АЦП. Например, 12-разрядное АЦП при сигнале 3,3 В имеет разрешение по напряжению 3,3/212 = 0,000805 В.

Если уровень сигнала ниже, чем минимальное значение разрешения, на входе АЦП необходим усилитель, обеспечивающий увеличение входного сигнала. Например, усиление в четыре раза увеличит входное напряжение с 0,000805 до 0,00322 В, то есть на 22. Таким образом, динамический диапазон увеличивается с 12 до 14 бит (рис. 6).

Для успешного увеличения разрядности АЦП необходимо, чтобы входной сигнал менялся при выборке. Это выглядит не очень логично, но в данном случае в качестве изменения рассматриваются только несколько LSB (младших разрядов). Изменение в таком случае рассматривается как шумовая составляющая сигнала. Погрешность квантования АЦП составляет меньше 0,5 LSB. Поэтому усиление шума должно превосходить 0,5 LSB для переключения LSB. Таким образом, рекомендуется амплитуда помехи 1-2 LSB, так как при таком шуме гарантированно несколько выборок сигнала не будут иметь одинаковое значение. В противном случае все выборки будут иметь одинаковое значение, следовательно, среднее значение будет тоже таким, и передискретизация не даст эффекта. В таком случае результат будет неточным, таким же, как если бы преобразование осуществлялось АЦП с низким разрешением.

Усреднение применяется для того, чтобы получить более дешевый вариант увеличения разрядности аналогово-цифрового преобразования.

Количество выборок N, необходимых для получения добавочной разрядности n, рассчитывается по следующей формуле:

N = 4n.

Например, для осуществления 16-разрядного преобразования достаточно использовать 12-разрядный преобразователь, который осуществляет в среднем 256 выборок. Комбинируя 256 последовательных 12-разрядных выборок, можно увеличить соотношение сигнал/шум до 16 = √256, добавить четыре бита к разрядности и получить одну выборку с разрядностью 16 бит.

На рис. 6 показан пример выборки из 16 значений, которые добавляют два бита к разрядности.

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

Для быстрого освоения новых микросхем предлагается оценочный комплект ATSAM4E-EK (рис. 7). Он содержит:

  • дисплей 2,8″ TFT;
  • порты CAN;
  • порт Ethernet;
  • слайдеры Qtouch;
  • разъем FS Micro-USB;
  • порт JTAG/ICE;
  • разъем для подключения модулей ZigBee.
Оценочный комплект ATSAM4E-EK

Рис. 7. Оценочный комплект ATSAM4E-EK

Бесплатная интегрированная среда разработки Atmel Studio 6 поддерживает новое семейство SAM4E, как и все кристаллы Cortex-M и AVR.

Как и для всех своих микроконтроллеров на базе ядер Cortex, компания Atmel гарантирует производство микроконтроллеров SAM4E в течение 12 лет со дня запуска их в производство.

Заключение

Отличительной чертой микроконтроллеров SAM4E, построенных на базе ядра Cortex-M4, является высокая производительность и наличие большого числа коммуникационных интерфейсов (USB, CAN, Ethernet и т. д.), Flash-память и ОЗУ большого объема, наличие блока арифметики с плавающей точкой и кэш-памяти. Отличное соотношение производительность/энергопотребление делает этот кристалл одним из перспективных решений на рынке микроконтроллеров.

Литература
  1. http://www.atmel.com
  2. Материалы тренинга Atmel. Bachmair am See. Апрель, 2013.

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

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