№10 / 2013 Статья 3 Для интенсивных вычислений: STM32F401 с ультранизким динамическим потреблением

Вячеслав Гавриков (г. Смоленск)

логотип

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

Новая линейка STM32F401 сочетает высокопроизводительный процессор ARM Cortex-M4, позволяющий легко производить цифровую обработку данных, и оптимизированный набор наиболее часто применяемой периферии. Это позволяет с одной стороны – сохранить производительность, а с другой – получить уникальные параметры потребления: даже при рабочей частоте 84 МГц в режиме «Dynamic RUN» потребляемый ток не превысит 12 мА.

Обзор семейства высокопроизводительных микроконтроллеров STM32F4

 

 

 

Семейство микроконтроллеров STM32F4 в этом году получило серьезное пополнение. В дополнение к базовым линейкам STM32F405/415 и STM32F407/417 выпущено сразу три новых линейки (рисунок 1).

Семейство STM32F4

 

Рис. 1. Семейство STM32F4

Все контроллеры STM32F4 выполнены по технологии 90 нм и имеют в распоряжении сверхсовременное процессорное ядро ARM Cortex-M4. Этот процессор имеет блок вычислений с плавающей точкой, поддержку DSP-инструкций, встроенный ускоритель ART Accelerator, оптимизирующий обмен данными с памятью.

Еще одно базовое преимущество архитектуры ARM Cortex-M4 – высокопроизводительная шина AHB. К этой шине имеют доступ три ведущих устройства: ядро Cortex-M4 и два блока DMA. Для обеспечения арбитража между ведущими используется матрица AHB (Multi-AHB matrix). Ведущие устройства инициируют обмен данными с ведомыми: FLASH, ОЗУ, мостами к периферийным блокам.

Все эти особенности ядра позволяют достигать производительности 1,25 DMIPS/МГц (Dhrystone 2.1).

Микроконтроллеры различных линеек имеют различную максимальную рабочую частоту и различный набор периферии.

Линейка STM32F405/415 является базовой для всего семейства. Максимальная рабочая частота для них составляет до 168 МГц.

Микроконтроллеры STM32F407/417 имеют расширенный набор периферии: Ethernet, параллельный интерфейс видеокамеры.

STM32F427/437 – линейка с повышенной производительностью. Максимальная рабочая частота для неё достигает 180 МГц. Набор периферии расширен за счет последовательного аудиоинтерфейса SAI и контроллера внешней памяти FMC.

Флагманская линейка STM32F429/439 работает на частотах до 180 МГц и имеет уникальные блоки для работы с графикой: аппаратный контроллер TFT-LCD-дисплеев, графический ускоритель Chrom-ART (DMA2D).

После столь мощных микроконтроллеров с такой развитой периферией новые STM32F401 могут вначале вызвать недоумение (таблица 1).

Таблица 1. Микроконтроллеры линейки STM32F401

Наименование Корпус Рабочая частота, МГц FLASH, кбайт ОЗУ, кбайт Таймеры, бит АЦП, бит Интерфейсы Uпит, В Iпотр (Run mode) (тип), мкА/МГц
STM32F401CB UFQFPN 48 7x7x0,55 84 128 64 6×16 2×32 1×24 2xWDG RTC 10×12 3xSPI 1,71…3,6 137
WLCSP 49L 3X3x0,4
STM32F401CC UFQFPN 48 7x7x0,55 256 10×12 2xI2S
WLCSP 49L 3X3x0,4
STM32F401RB LQFP64 10x10x1,4 128 16×12 3xI2C
STM32F401RC LQFP64 10x10x1,4 256 16×12 3xUSART (IrDA, ISO 7816)
STM32F401VB LQFP100 14x14x1,4 128 16×12 1xUSB OTG FS
UFBGA100 7x7x0,6
STM32F401VC LQFP100 14x14x1,4 256 16×12 1xSDIO
UFBGA100 7x7x0,6

Фактически несистемная периферия ограничена коммуникационными интерфейсами (SPI, I2C, USART, USB, SDIO), таймерами и АЦП (рисунок 2).

Структурный состав микроконтроллеров STM32F401

 

Рис. 2. Структурный состав микроконтроллеров STM32F401

Недоумение вызывает и то обстоятельство, что ограниченная периферия STM32F401 соседствует с мощным вычислительным ядром. Действительно, контроллер обладает высокопроизводительным процессором ARM Cortex-M4, таким же мощным, как и в старших моделях семейства. Системная периферия не уступает даже контроллерам STM32F429/439. И в то же время STM32F401 является обладателем непривычно скромного набора периферии и удивительно маленького для STM32F4 объема FLASH-памяти и ОЗУ. Однако удивление пропадает после ознакомления с параметрами потребления данного микроконтроллера и ценовой политикой компании STMicroelectronics. Существует целый ряд приложений, для которых подобное сочетание производительность/потребление окажется незаменимым.

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

Методы снижения потребляемой мощности в STM32F4

 

 

 

Современные микроконтроллеры, в том числе и STM32F4, построены на основе КМОП-технологии. Хорошо известно [1], что для таких устройств суммарная потребляемая мощность складывается из двух составляющих: статической и динамической потребляемых мощностей.

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

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

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

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

Динамическое потребление также может быть сокращено. Определим пути снижения данного вида потерь. Для этого более подробно рассмотрим характер их зависимости от различных факторов. Динамическая мощность КМОП-микросхемы зависит от величины питающего напряжения и рабочей частоты:

Pd = C x V2 x f, (1)

С – нагрузочная емкость КМОП, V – напряжение питания, f – рабочая частота.

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

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

Рабочая частота определяет частоту переключений в единицу времени. Если на однократное переключение транзистора требуется единица мощности, то для двух переключений необходимо затратить две единицы мощности. Соответственно наблюдается прямая пропорциональная зависимость мощности от рабочей частоты.

Компания STMicroelectronics стремится снизить потребление всех своих микроконтроллеров. Пути снижения практически идентичны для всех семейств – от 8-битных STM8 до высокопроизводительных STM32F4. Перечислим их применительно к STM32F4.

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

Еще одним преимуществом STMicroelectronics являются низкие топологические нормы. Для микроконтроллеров STM32F4 они составляют 90 нм. Чем меньше топологические нормы, тем меньше размер транзисторов и паразитные емкости.

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

Снижение напряжения питания. В соответствии с формулой (1), потребление растет пропорционально величине напряжения питания. Микроконтроллеры STMicroelectronics способны работать при напряжении питания от 1,7 В. При этом непосредственно ядро и внутренние блоки используют рабочее напряжение 1,2 В.

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

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

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

Оптимизация обмена с памятью. Одной из особенностей семейства STM32F4 является ART AcceleratorTM – ускоритель обмена данными с памятью. ART Accelerator использует очередь предварительной выборки, кэш-память и гибкий механизм арбитража. Он позволяет обеспечить обмен данными без циклов ожидания и увеличения числа обращений к памяти на частотах до 180 МГц (STM32F42x/43x), до 168 МГц (STM32F405/415, STM32F407/417), до 84 МГц (STM32F401). Это дает сразу несколько преимуществ.

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

Сокращение объемов памяти и оптимизация набора периферии. Одним из основных потребителей в составе микроконтроллера является память. Уменьшая объем памяти, можно добиться снижения потребления. Как правило, любая линейка микроконтроллеров производства компании STMicroelectronics содержит несколько наименований, отличающихся объемами как FLASH, так и ОЗУ.

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

Использование режимов пониженного потребления. Режимы потребления призваны оптимизировать потребляемую мощность в соответствии с требованиями ко времени пробуждения. Для контроллеров STM32F4 представлены несколько таких режимов: Run, Sleep, Stop, Standby.

Режим «Run», по сути, не является режимом пониженного потребления. Это активный режим работы. Однако, как указывалось выше, неиспользуемые блоки могут быть отключены. При необходимости, в активном состоянии можно оставить только ядро, системную периферию и память. Такую конфигурацию иногда называют «Dynamic RUN». Она удобна для сравнения потребления различных микроконтроллеров.

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

Режим «Stop» характеризуется низким уровнем потребления, при этом содержимое ОЗУ сохраняется. Малое потребление обеспечивается тем, что тактирование ядра и периферии, питающихся от внутреннего преобразователя 1,2 В, отключено. Внутренние и внешние источники тактирования этих блоков (ФАПЧ, интегрированные RC-генераторы, внешние резонаторы) остановлены.

Сам 1,2 В регулятор также может находиться в режиме пониженного потребления.

Время пробуждения из этого режима больше, чем из режима «Sleep». Источником сигнала пробуждения может стать внешнее прерывание EXTI, часы реального времени RTC, либо PVD.

В режиме «Standby» достигается наименьшее потребление. Внутренний регулятор 1,2 В отключен, отключена системная и несистемная периферия и ядро, питающиеся от 1,2 В-регулятора. Отключены ФАПЧ, интегрированные RC-генераторы, внешние резонаторы. После входа в режим «Standby» содержимое ОЗУ теряется, за исключением ряда специальных резервных (backup) регистров, если они есть.

Выход из режима «Standby» происходит при формировании внешнего сигнала сброса (вывод NRST), генерации прерывания от интегрированного независимого сторожевого таймера (IWDG) или от RTC, при формировании внешнего сигнала пробуждения на линии WKUP.

Возможность питания от батареи. Микроконтроллеры STM32F4 имеют вывод для подключения дежурной батареи. При исчезновении напряжения питания блоки RTC и резервных регистров переключаются на батарейное питание. Пробуждение из этого режима возможно только при подаче напряжения питания VDD.

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

Особенности потребления микроконтроллеров STM32F401

 

 

 

Уровень потребления STM32F401 отличается от потребления других представителей STM32F4 (рисунок 3). Рассмотрим более подробно особенности STM32F401 в различных режимах.

Потребление микроконтроллеров STM32F4

 

Рис. 3. Потребление микроконтроллеров STM32F4

Как было сказано выше, в режиме «Dynamic RUN» активным остается только ядро и память, а тактирование всей периферии запрещено. Исследования показывают, что потребление STM32F401 составляет около 137 мкА/МГц, это примерно в два раза меньше, чем у других представителей семейства.

Следует предположить, что снижение величины потребления стало возможным благодаря уменьшению объема FLASH-памяти и ОЗУ.

Для STM32F401 потребление при максимальной рабочей частоте 84 МГц составит около 8,5 мА. Для STM32F405/415/407/417 потребление на частоте 168 МГц составляет уже 40 мА. Но не стоит забывать, что уменьшая рабочую частоту, мы выигрываем в потреблении, но проигрываем в производительности (рисунок 4).

Зависимость производительности от частоты для STM32F4

 

Рис. 4. Зависимость производительности от частоты для STM32F4

Сокращение объема памяти снижает уровень потребления и в других режимах. Так, в режиме «STOP» потребление составляет всего 11 мкА (FLASH находится в глубоком сне «Deep power down mode»). При этом ориентировочное время пробуждения будет около 120 мкс.

Для получения более оперативного пробуждения на уровне 19 мкА, FLASH-память остается в режиме «Stop mode». Потребляемый ток при этом составит около 50 мкА.

Для сравнения, в режиме «STOP» STM32F405/415/407/417 имеют время пробуждение около 110 мкс, при токе 280 мкА.

В режиме с минимальным потреблением «Standby» и в режиме питания от батареи характеристики всех контроллеров семейства сопоставимы

Подводя итог данному разделу, можно отметить, что STM32F401 имеют преимущества в составе малопотребляющих устройств с интенсивной потоковой обработкой данных за счет использования режима «Dynamic RUN». Кроме того, среди всех контроллеров STM32F4 в STM32F401 наиболее эффективно реализован режим «STOP». Это идеально подходит для приложений с периодическими пробуждениями, во время которых производятся интенсивные вычисления.

Приведем несколько общих примеров применения STM32F401.

Примеры эффективного использования STM32F401

 

 

 

Рассмотрим несколько примеров приложений, в которых можно реализовать преимущества низкого потребления STM32F401.

Системы сбора цифровых данных. В качестве первого примера можно взять систему сбора данных или концентратор/мост для различного вида датчиков (рисунок 5). Современные MEMS-датчики (акселерометры, гироскопы, датчики давления) представляют собой сверхэкономичные системы, включающие непосредственно MEMS-датчик, цепи усиления и АЦП. Они имеют сразу два больших преимущества: возможность работы в различных режимах потребления, малое потребление в активном режиме (единицы мА), наличие интегрированных буферов данных.

 

Примеры эффективного применения STM32F401

 

Рис. 5. Примеры эффективного применения STM32F401

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

Очевидно, что при выполнении вычислений STM32F401 всегда может находиться в режиме «Dynamic RUN», в котором будет более выгоден с точки зрения потребления, чем другие представители STM32F4.

Если же в качестве режима пониженного потребления используется «Sleep» или «STOP», то преимущество в потреблении станет еще больше.

Системы потоковой обработки данных. Вторым примером эффективного применения STM32F401 являются аудиосистемы. В них важно обеспечить быструю обработку поступающих данных, например, с MEMS-микрофона (рисунок 5). Обработанные данные передаются в хост-контроллер. При этом не стоит задача сохранения и накопления результатов.

В этом случае STM32F401 окажется идеальным выбором. Наличие возможности использования DSP-инструкций и блока операций над числами с плавающей точкой позволяют обеспечить необходимую скорость обработки данных. При этом не нужны большие объемы интегрированной памяти для хранения результатов. И вновь STM32F401 будет работать в режиме «Dynamic RUN», в котором он имеет преимущества над другими микроконтроллерами STM32F4.

Система сбора аналоговых датчиков. STM32F401 имеет интегрированный 12-битный быстродействующий (0,42 мкс) АЦП. Он может быть использован для оцифровки данных, получаемых с аналоговых датчиков, например, с приводов двигателей или медицинских измерительных приборов.

Как и в случае с цифровыми датчиками, STM32F401 может находиться в режиме «Sleep». При этом ядро процессора будет находиться в спячке, в то время как ЦАП совместно с контроллером прямого доступа к памяти будут производить сбор данных. При накоплении достаточного количества отсчетов ядро входит в режим «RUN» и производит обработку данных.

Полученные результаты могут быть использованы для управления исполнительными устройствами, либо отсылаться хост-контроллеру.

Оценить преимущества STM32F401 при работе с MEMS-датчиками поможет отладочная плата STM32F401 Discovery.

 

 

Примеры эффективного использования STM32F401

 

 

 

Компания STMicroelectronics остается верна своей традиции и продолжает предоставлять инструментарий для быстрого освоения своих новых продуктов.

Специально для STM32F401 выпущен ознакомительный набор STM32F401С-DISCO (рисунок 6). Этот набор позволит не только быстро начать работу с STM32F401, но и сам может быть применен в составе какого-либо устройства.

Ознакомительная плата STM32F401С-DISCO

 

Рис. 6. Ознакомительная плата STM32F401С-DISCO

Традиционно работа с оценочной платой достаточно проста. Плата содержит готовый программатор/отладчик ST-LINK/V2 и способна работать не только от внешнего источника 5 В, но и от USB.

На плате, кроме микроконтроллера STM32F401VCT6, размещены специфичные компоненты:

  • трехосевой MEMS-гироскоп L3GD20;

 

  • комплексная MEMS-система LSM303DLHC, включающая трехосевой акселерометр и трехосевой магнитометр;
  • MEMS-микрофон MP45DT02;

 

  • CS43L22 аудиокодек со встроенным драйвером усилителя класса D.

Для нужд отладки и взаимодействия с пользователем можно использовать четыре пользовательских светодиода. Для удобства пользователя добавлены дополнительные светодиоды индикации питания (для USB, для 3,3 В) и два светодиода для USB OTG. Кроме того, на плате расположены пользовательская кнопка и кнопка сброса.

Для подключения к ПК используется MiniUSB-разъем.

Все неиспользуемые выводы общего назначения выведены на штыревые разъемы.

Сама по себе плата, конечно же, весьма удобна в использовании, но дополнительный комфорт добавляет подготовленное программное обеспечение (ПО).

ПО включает бесплатные драйверы периферийных устройств, готовые программные примеры и проекты, подготовленные для Altium TASKINGTM: VX-Toolset, Atollic TrueSTUDIO, IAR EWARM, Keil MDK-ARM.

Заключение

 

 

 

Микроконтроллеры STM32F401 сочетают в себе высокопроизводительное процессорное ядро ARM Cortex-M4, ограниченный объем памяти и оптимизированный набор периферии. Это позволяет сохранить производительность на уровне 1,25 DMIPS/МГц и снизить потребление. Величина потребляемого тока на частотах до 84 МГц составит всего 137 мкА/МГц в режиме «Dynamic RUN».

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

Одной из возможных областей применения STM32F401 станут системы обсчета и обработки сигналов MEMS-датчиков. Оценочный набор STM32F401С-DISCO поможет освоить не только работу с STM32F401, но и познакомиться с современными MEMS-системами.

Литература

 

 

 

1. AN3147 Application note Power management in STM8L and STM8AL Rev 3. 2013

2. RM0368 Reference manual STM32F401xB/C advanced ARM-based 32-bit MCUs. Rev 1. 2013.

3. Документация на представленные микроконтроллеры. Официальный сайт http://www.st.com/.

Получение технической информации, заказ образцов, поставка – e-mail: mcu.vesti@compel.ru

 

 

 

Микроконтроллеры STM32F0 за 0,5$

 

 

В середине 2013 года компания STMicroelectronics выпустила на рынок новую линейку микроконтроллеров STM32 «Value Line» на базе 32-разрядного ядра Cortex-M0. Данная линейка содержит пять наименований, начинающихся с индекса STM32F030, и обладает рядом уникальных преимуществ. Главное – баланс функциональности и цены. Все микроконтроллеры линейки «Value Line» работают на частоте 48 МГц, имеют на борту DMA-контроллер, 12-бит АЦП со скоростью преобразования 1 мкс, 16-бит таймеры с ШИМ, аппаратные RTC и интерфейсы обмена данными SPI, USART и I2C. При этом ценовой диапазон начинается от беспрецедентных 0,5$ от 1 штуки со склада КОМПЭЛ за самого простого представителя данной линейки – STM32F030F4P6.

Особо отметим 100% совместимость по выводам STM32F0 «Value Line» с более старшими линейками – STM32F1 и STM32L, что является дополнительным преимуществом использования платформы STM32.

Для быстрого освоения линейки STM32F03 STMicroelectronics предлагает недорогую отладочную плату STM32F0308-DISCO. На данной плате есть все для быстрого старта работы – встроенный программатор/отладчик ST-LINK/V2, целевой микроконтроллер со светодиодами, кнопками, все свободные ножки микроконтроллера выведены на внешние разъемы.

Цена на самого младшего представителя STM32F030F4P6 составляет порядка 0,51$!

 

Параметры STM32F030:

  • 48МГц, ядро 32-бит Cortex-M0;
  • Наименования- STM32F030F4P6, STM32F030C8T6, STM32F030C6T6, STM32F030K6T6, STM32F030R8T6;
  • до 64Кб FLASH, до 8Кб SRAM-памяти;
  • DMA-контроллер, 5 каналов;
  • 12-бит АЦП (1 мкс) до 18 каналов;
  • до 7 таймеров 16-бит, один 24-бит;
  • до 2 интерфейсов UART, SPI и I2C;
  • 2 встроенных RC генератора- 8МГц и 40кГц;
  • аппаратные RTC;
  • напряжение питания 2,4…3,6В;
  • Корпуса- TSSOP20/ LQFP32/LQFP48/LQFP64.