№8 / 2013 / статья 7

Ядро Cortex-M3, ультранизкое потребление и цена 1 доллар – все это STM32L100 Value Line

Роман Иванов (г. Санкт-Петербург)

Устройства с автономным питанием давно и прочно вошли в нашу жизнь. Основные требования к таким приборам — это низкое энергопотребление в динамическом и/или ожидающем режимах плюс низкая стоимость. В последнее время очень часто возникает требование и к производительности системы в целом. Разработчикам уже не хватает возможностей малопроизводительных 8/16-битных микроконтроллеров.

Учитывая эти требования, компания STMicroelectronics разработала 32-разрядные микроконтроллеры серии STM32Lxx, построенные на базе хорошо зарекомендовавшего себя ядра Cortex-M3 и ориентированные на применение в областях с батарейным питанием. Микроконтроллеры STM32L по своей концепции схожи с микроконтроллерами STM32F1: большинство периферийных модулей осталось без изменения и имеет 100% совместимость по выводам с STM32F1. Основные изменения, прежде всего — 110 нм-технология производства с ультранизкими токами утечки, дополнительные режимы потребления, система тактирования. Также была добавлена система динамического изменения напряжения питания ядра и претерпели изменения некоторые периферийные модули, которые теперь могут работать в режимах пониженного потребления.

 

Серия микроконтроллеров STM32Lxx

Серия включает в себя три линейки микроконтроллеров, отличающихся размером встроенной памяти и набором периферийных устройств на борту (рисунок 1). Общее количество контроллеров в серии в настоящий момент достигло 45.

 

Серия микроконтроллеров STM32L1xx

 

Рис. 1. Серия микроконтроллеров STM32L1xx

Линейка STM32L151/152 имеет широкий набор периферийных устройств и подходит для низкопотребляющих высокопроизводительных приложений.

Линейка STM32L162 дополняет STM32L151/152 и содержит встроенный модуль шифрования.

Линейка STM32L100 Value Line представляет собой контроллеры начального уровня с базовым набором функций и оптимизированной ценой. Микроконтроллеры этой линейки позиционируются как самые доступные по цене, но сохраняющие все основные достоинства и совместимость с STM32L151/152 (включая pin-to-pin-совместимость). Выбирая эту линейку, разработчик экономит за счет отсутствия уникального номера кристалла, лишнего объем RAM- и EEPROM-памяти и ненужного количества циклов перезаписи Flash и EEPROM.

Кроме этого, для сокращения стоимости была произведена оптимизации процесса производства, тестирования и сокращено количество наименований. Благодаря этим мерам удалось добиться уменьшения цены на линейку Value Line на целых 25%.

В таблице 1 представлено сравнение микроконтроллеров STM32L100 и STM32L15x.

Таблица 1. Сравнение микроконтроллеров STM32L1 и STM32L15x   

Технические характеристики STM32L15x STM32L100
Объем Flash/SRAM, кбайт   32/10   64/10   128/16   256/32   32/4   64/8   128/10   256/16  
Flash   10K циклов / Сохранность 30 лет/85°C   1K циклов / Сохранность 20 лет/85°C  
Buckup registers, байт   80   20  
VDD, В   1,65…-3,6   1,8…-3,6  
Температура, °C   -45…85/105   -40…85  
Корпус   48 ножек   64 ножки   48 ножек   64 ножки  
EEPROM   4K   4K   4K   8K   2K   2K   2K   2K  
300 K циклов   100 K циклов  
HSI точность   +/-1% при T = 25°C; — 4…3% при T = -40…85°C   +/-10% при T = от -40…85°C  
MSI точность   +/3% при T = 0…85°C   +/10% при T = 0…85°C  
LCD   4х16   8х28   8х28   8х28   4х16   8х28   8х28   8х28  
USART   3   3   3   3   3   3   3   3  
SPI   2   2   2   3   2   2   2   3  
I2C   2   2   2   2   2   2   2   2  
ЦАП   2   2   2   2   2   2   2   2  
Компаратор   2   2   2   2   2   2   2   2  
Датчик температуры   1   1   1   1   Нет  
Touch Sense   28   28   28   36   Нет  

Более подробно на линейке микроконтроллеров Value Line остановимся немного позднее. А сейчас рассмотрим основные аспекты организации питания и доступные режимы пониженного энергопотребления у серии STM32L1xx.

 

Питание микроконтроллеров STM32L1xx

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

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

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

Супервизор BOR (Brown out Reset) обеспечивает сброс контроллера при включении питания, пока его уровень не достигнет порога Vbor. Это избавляет от необходимости использования внешних супервизоров питания. BOR имеет гистерезис порядка 100 мВ, поэтому можно не опасаться небольшого дребезга напряжения. При необходимости после запуска микроконтроллера возможно отключение супервизора или изменение порогов срабатывания.

В дополнение к BOR (когда он не активен), возможен сброс по схемам POR (Power-On Reset) и PDR (Power-Down Reset). У этих схем нет гистерезиса.

Микроконтроллер имеет также встроенный программируемый детектор напряжения PVD (Programmable Voltage Detector), который контролирует напряжение питания и сравнивает его заданным порогом. При превышении/падении питания выше/ниже порога генерируется прерывание. Порог срабатывания конфигурируется в диапазоне 1,9…3,1 В с шагом 0,2 В.

Для оптимизации энергопотребления в микроконтроллерах STM32Lхх применена динамическая адаптация напряжения внутреннего понижающего регулятора в зависимости от рабочей частоты контроллера (рисунок 2). Доступно три напряжения питания ядра: 1,8 В (Range 1), 1,5 В (Range 2) и 1,2 В (Range 3). Соответственно, при напряжении 1,8 В мы получаем максимальную производительность, а при 1,2 В — минимальную.

 

Динамическая адаптация напряжения внутреннего регулятора

 

Рис. 2. Динамическая адаптация напряжения внутреннего регулятора

Кроме этого, производительность и функциональные возможности микроконтроллера зависят от общего напряжения питания. Для получения максимальной производительности необходимо запитать контроллер от источника с напряжением 2,4…3,6 В. Минимальные границы питающего напряжения — 1,6…1,8 В. В этом режиме часть внутренней периферии перестает функционировать, а частота работы CPU составляет не более 4 МГц.

На рисунке 2 представлены зависимости частоты тактирования процессора от напряжения питания ядра и общего напряжения питания микроконтроллера. А в таблице 2 отражены ограничения по работе в зависимости от напряжения питания.

Таблица 2. Ограничения по работе микроконтроллера в зависимости от напряжения питания   

Напряжение питания, В АЦП, Ksps USB Питание ядра
1,65…1,8   Не функционирует   Не функционирует   Range: 2 или 3  
1,8…2   до 500   Не функционирует   Range: 2 или 3  
2…2,4   до 500   Функционирует   Range: 1, 2 или 3  
2,4…3,6   до 1000   Функционирует   Range: 1, 2 или 3  

В линейке микроконтроллеров STM32Lхх выбору разработчика доступно семь режимов пониженного энергопотребления. Рассмотрим эти режимы подробнее.

Режим «Sleep». В этом режиме только ядро останавливает свою работу. Вся периферия продолжает работать и пробуждает процессор по наступлении определенного прерывания или события.

Режим «Low power run». В этом режиме системная частота тактирования устанавливается от внутреннего MSI-осциллятора на минимальной частоте, внутренний регулятор напряжения переводится в энергосберегающий режим, а выполнение кода осуществляется из SRAM- или Flash-памяти (Flash можно переключить в режим Power Down (при исполнении кода из RAM)). Количество работающей периферии ограничено.

Режим «Low power Sleep». При нахождении микроконтроллера в этом состоянии встроенный регулятор напряжения переводится в энергосберегающий режим. Ядро остановлено, часть периферии активна. Типичный пример использования данного режима- работа на частоте 32кГц. При появлении прерывания или наступлении события система переходит в рабочий режим с включением регулятора.

Режим «Stop» (с активным RTC или без него). В этом режиме все тактирование периферии, PLL, MSI, HSI и HSE отключено, SRAM и контекст регистров сохранен. Встроенный регулятор напряжения находится в энергосберегающем режиме. Микроконтроллер может выйти из режима за 8мкс по любому сигналу EXITI, источником которого могут быть различные события модулей RTC, USB, компараторы или одна из 16 внешних линий.

Режим «Standby» (с активным RTC или без него). Режим позволяет добиться ультранизкого энергопотребления. В этом режиме внутренний регулятор напряжения выключен и питание всех элементов ядра прекращено. Все осцилляторы, кроме LSI и LSE, отключены. Содержимое SRAM-памяти и регистров, за исключением системных (логики пробуждения, независимого сторожевого таймера (IWDG), RTC, LSI, LSE, модуля управления сбросом (RCC)), теряется. Микроконтроллер выходит из этого режима за 60мкс при наступлении одного из следующих событий: внешний сброс (вывод NRST); сброс IWDG; появление возрастающего фронта на одном из выводов WKUP; сигнал тревоги RTC, искажение данных в регистре RTC, сигнал пробуждения от RTC.

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

 

Типичное потребление микроконтроллера в зависимости от режима его работы

 

 

Рис. 3. Типичное потребление микроконтроллера в зависимости от режима его работы

 

Линейка микроконтроллеров STM32L100 Value Line

Теперь остановимся более подробно на линейке Value Line. Обобщенная структура микроконтроллеров представлена на рисунке 4.

 

Обобщенная структура микроконтроллеров STM32L100 Value Line

 

Рис. 4. Обобщенная структура микроконтроллеров STM32L100 Value Line

 

Основные характеристики линейки:

  • 32-битное ядро Cortex-M3 ;
  • частота тактирования 32МГц;
  • до 256кбайт Flash-памяти;
  • до 16кбайт SRAM-памяти;
  • напряжение питания 1,65…3,6В;
  • LCD-контроллер;
  • модули отладки SWD/JTAG, модуль ETM;
  • до 20 каналов 12-битного АЦП;
  • до двух каналов 12-битного ЦАП;
  • два низкопотребляющих компаратора;
  • DMA-контроллер на 12 каналов;
  • восемь 16-разрядных таймеров;
  • два сторожевых таймера (WWDG и IWDG);
  • коммуникационные интерфейсы: I2C, 3хUSART, 3хSPI, 2хI2S, USB2.0 FS;
  • аппаратное вычисление CRC;
  • температурный диапазон -40…85°C.

В таблице 3 представлены доступные микроконтроллеры линейки Value Line с кратким описанием основных характеристик.

Таблица 3. Линейка микроконтроллеров STM32L100 Value Line   

Наименование Корпус Flash, Кбайт SRAM, Кбайт EEPROM, байт АЦП ЦАП Входы/ Выходы LCD Интерфейсы
STM32L100C6 UFQFPN 48 7x7x0,55   32   4   2048   16×12-бит   2×12-бит   37   4×16   2xSPI/I2S; 2xI2C; 3xUSART; 1xUSB 2.0 FS  
STM32L100R8 LQFP 64 10x10x1,4   64   8   2048   20×12-бит   2×12-бит   50   4×32/8×28   2xSPI/I2S; 2xI2C; 3xUSART; 1x USB 2.0 FS  
STM32L100RB LQFP 64 10x10x1,4   128   10   2048   20×12-бит   2×12-бит   50   4×32/8×28   2xSPI/I2S; 2xI2C; 3xUSART; 1xUSB 2.0 FS  
STM32L100RC LQFP 64 10x10x1,4   256   16   8192   21×12-бит   2×12-бит   51   4×32/8×28   3xSPI/I2S; 2xI2C; 3xUSART; 1xUSB 2.0 FS  

 

DMA

Микроконтроллеры содержат на борту два встроенных контроллера прямого доступа к памяти DMA1 и DMA2 (Direct Memory Access), используемых для перемещения данных без участия ядра. DMA может перемещать данные из периферии в память и обратно или из памяти в память. DMA1 имеет до семи независимых каналов, DMA2 — до пяти.

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

Для удобства управления порядком выполнения, DMA-запросы поделены с помощью четырех программных приоритетов. В случае равенства программных приоритетов происходит аппаратное управление потоками.

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

Поддерживается работа со всей основной периферией: SPI, I2С, USART, ЦАП, АЦП и таймерами.

 

Управление тактированием

Для тактирования микроконтроллера доступно несколько источников тактовых импульсов.

Для приложений, требующих высокой точности по временным характеристикам, доступно использование внешнего источника тактового сигнала с частотой 1…24 МГц (генератор или кварц) HSE (Hight Speed External clock). Он используется блоком PLL для тактирования CPU на частоте до 32 МГц и USB-модуля на частоте 48 МГц.

Если необходимо более экономичное и не очень требовательное по временным характеристикам решение, то вполне подойдет высокоскоростной внутренний RС-генератор на 16 МГц HSI (Hight Speed Internal clock).

Для тактирования часов реального времени (RTC) используется внешний часовой кварцевый генератор с частотой 32,768 кГц LSE (Low Speed External clock). Кроме часов, от него также тактируются и LCD.

При желании сэкономить на кварце, вместо LSE вполне можно использовать внутренний RC-генератор с частотой 37 кГц LSI (Low Speed Internal clock).

Интересным дополнением к вышеперечисленным источникам тактовых сигналов служит встроенный RC-генератор с конфигурируемой частотой тактирования 64 кГц…4 МГц и низким потреблением MSI (Multi-Speed Internal clock). Он был специально разработан для гибкого контроля энергопотребления в зависимости от частот тактирования микроконтроллера.

Встроенные источники тактирования калибруются на производстве при изготовлении. Если их точность недостаточна (например, уход частоты вследствие изменения напряжения питания или температуры), то их можно программно откалибровать (необходимо занести калибровочные поправки в специально отведенные для этого регистры управления). Для удобства вычисления поправок можно воспользоваться таймерами TIM9/TIM10/TIM11 для измерения частот точных внешних тактовых сигналов и корректируемых внутренних.

 

Коммуникационные интерфейсы

PC-интерфейс. Микроконтроллеры линейки содержат два модуля I2C. Поддерживается работа в режимах «Ведущий» («Master»), «Ведомый» («Slave») или «Несколько ведущих» («Мultimaster»). Возможна передача данных в двух диапазонах скоростей: «Стандартный» («Standard») — скорости передачи до 100 кГц, «Быстрый» («Fast») — до 400 кГц. Поддерживается 7- и 10-битная адресация.

I2C-модули поддерживают два расширенных протокола: SMBus 2.0 (System Management Bus) и PMBus (Рower Management Bus).

SPI-интерфейс. Микроконтроллеры содержат до трех модулей SPI. Поддерживается работа в режимах «Мaster» или «Slave» с полнодуплексной/полудуплексной и симплексной передачей данных на скоростях до 16Mбит/с. Доступна встроенная аппаратная поддержка вычисления циклически избыточного кода CRC с поддержкой SD/MMC-карт.

I2S-интерфейс (Inter-Integrated Sound). Микроконтроллер имеет на борту до двух модулей I2S, мультиплексированных с SPI-интерфейсом. Модули могут работать в режиме «Мaster» или «Slave». Интерфейс может быть сконфигурирован для работы с 16/32-битным разрешением. Делители и умножители тактирующей системы позволяют работать с аудиосигналом, оцифрованным на частоте сэмплирования 8…192кГц.

USART-интерфейс. Микроконтроллеры содержат до трех модулей USART, работающих на скорости до 4Mбит/с. Имеется встроенная аппаратная поддержка работы с сигналами управления модемов RTS и СTS, поддерживаются инфракрасные приемопередатчики IrDA, режим связи нескольких контроллеров, однопроводной полудуплексный режим, работа со смарт-картами в соответствии со стандартом ISO 7618-3 и LIN-устройствами.

USB-интерфейс. Микроконтроллер содержит встроенный USB-контроллер с поддержкой режима «full-speed» (12Мбит/с). USB-контроллер имеет программно конфигурируемые «конечные точки» («endpoint») и поддерживает функции приостановки/возобновления. Специализированная частота в 48МГц формируется на внутренних делителях из внешнего кварцевого генератора.

 

LCD-контроллер

Для управления жидкокристаллическими индикаторами разработчику доступен встроенный LCD-контроллер. Он поддерживает до 8 строк и 28 столбцов для управления 224 пикселями. Неиспользуемые для управления дисплеем порты могут использоваться как обычные GPIO. LCD-контроллер полностью поддерживает низкопотребляющие режимы (исключая Standby).

 

АЦП

Микроконтроллеры содержат на борту 12-битный аналого-цифровой преобразователь с возможностью подключения до 20 внешних аналоговых каналов.

АЦП работают на скоростях до 1 мегасемпла (при разрешении 12 бит). Для увеличения скорости преобразования можно уменьшить разрешение до 6 бит.

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

Кроме внешних каналов, на АЦП также поступает напряжение от внутреннего источника опорного напряжения.

Можно также отметить наличие аналоговой схемы контроля (Analog Watchdog). Она представляет собой аналоговый компаратор с верхним и нижним порогом срабатывания. Значения порогов задаются в двух 12-разрядных регистрах. Результат преобразования сравнивается с этими величинами, и если он выходит за пределы коридора, сформированного нижними и верхними границами, то формируется прерывание.

Для перемещения результатов конвертирования АЦП может использоваться контроллер DMA.

Также отметим, что АЦП в STM32L отличается от микроконтроллеров STM32F. Как показали испытания, модуль АЦП потребляет много энергии в активном режиме — более 1 мА. В связи с этим, инженерами компании были введены два изменения, которые помогли сократить ток потребления в разы. Первое — АЦП всегда тактируется от источника тактирования 16 МГц, даже когда контроллер находится в спящем режиме. Таким образом сокращается время работы АЦП до минимума, что экономит потребляемый ток. Второе — АЦП при входе и выходе из низкопотребляющих режимов автоматически активируется и дезактивируется, т.к. в случае программного управления АЦП время отключения составляет несколько команд, что также влечет дополнительное потребление. И в конце отметим, что появились дополнительные режимы работы АЦП, которые позволяют более гибко подходить к реализации сценария обработки аналоговых сигналов и уменьшения потребления энергии.

 

ЦАП

Контролеры имеют 12-разрядный цифро-аналоговый преобразователь с двумя выходными каналами. ЦАП может быть сконфигурирован для работы в 8- или 12-разрядном режиме. Преобразователь поддерживает функции генерации шума и треугольных волн.

Запуск преобразования происходит программно, по таймеру или сигналу на внешнем входе микроконтроллера. Два канала преобразования можно использовать раздельно или одновременно (синхронный запуск преобразования в обоих каналах). Каналы полностью независимы друг от друга, каждый имеет свои собственные регистры для данных и модуль преобразователя. Вход опорного напряжения используется совместно с АЦП.

 

Компараторы

Микроконтроллеры имеют два неинвертирующих встроенных компаратора.

Первый компаратор инвертирующим входом подключен к встроенному источнику опорного напряжения и поэтому имеет фиксированный порог переключения.

Второй компаратор имеет настраиваемый порог переключения. На инвертирующий вход напряжение может подаваться со следующих источников: внутреннего источника опорного напряжения с возможностью использования делителей 1/4, 1/2 и 3/4; выходов ЦАП или внешнего входа с ножки микроконтроллера.

 

Порты ввода-вывода общего назначения

Микроконтроллеры оснащены большим количеством портов ввода-вывода общего назначения GPIO (General-purpose Input Output). Их количество определяется типом корпуса микроконтроллера и составляет порядка 80% от общего количества пинов. Почти все порты имеют толерантность к пятивольтовым сигналам. Токи утечки составляют не более 50 нA для каждого ввода/вывода.

Все ножки GPIO поддерживают генерацию прерываний. Каждый порт может быть программно сконфигурирован как выход, вход, настроен на альтернативную аналоговую или цифровую функцию.

Если порт конфигурируется как выход, то доступны следующие состояния: двухтактный выход или открытый коллектор + подтяжка вниз/вверх. Если ножка конфигурируется как вход, то возможны следующие состояния: плавающий вход, подтяжка вниз/вверх или аналоговый вход.

 

Таймеры

Микроконтроллеры имеют на борту богатый набор таймеров: шесть 16-битных таймеров общего назначения, два 16-битных базовых таймера и 24-битный системный таймер.

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

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

Микроконтроллеры также имеют два встроенных сторожевых таймера — независимый IWDG (Independent watchdog) и WWDG (Window watchdog) «оконного» типа.

Независимый сторожевой таймер имеет разрядность 12 бит и отделен от основной тактирующей системы контроллера. Он тактируется встроенным низкочастотным генератором (LSI) через 8-битный предделитель.

Таймер поддерживает работу в низкопотребляющих режимах «Stop» и «Standby». Для удобства отладки приложений доступна функция остановки счета.

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

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

Таймер имеет разрядность 7 бит и тактируется от основной системы микроконтроллера. Может быть остановлен при отладке.

Сторожевые таймеры могут использоваться одновременно.

 

Часы реального времени

Часы реального времени выполнены на независимом счетчике с аппаратной поддержкой календаря с долями секунды, секундами, минутами, часами (12- или 24-часовой формат), днями недели, датой, месяцем и годом в BCD (двоично-десятичном) формате. Поддерживается автоматическая работа с 28-, 29- (високосный год), 30- и 31-дневными месяцами.

Для компенсации неточности работы кварцевого кристалла имеется цифровая схема калибровки с разрешением 5 ppm. Часы имеют ультранизкое потребление менее 1 мкА и активны во всех низкопотребляющих режимах.

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

 

Средства отладки

Для проведения отладки и программирования микроконтроллера используются хорошо всем известные четырехпроводный JTAG-интерфейс или двухпроводный SWD (Serial Wire Debug). Ножки SWD-интерфейса мультиплексированы с ножками JTAG. По умолчанию после запуска микроконтроллера активен JTAG-интерфейс. Переход от JTAG- к SWD-интерфейсу осуществляется программными средствами среды программирования или разработки.

В случае отсутствия отладчика/программатора для работы по JTAG-/SWD-интерфейсу можно вполне воспользоваться встроенным в микроконтроллер загрузчиком (Boot Loader). Это позволяет разработчику программировать Flash-, EEPROM- и SRAM-память через один из последовательных интерфейсов (UART, USB). Boot Loader расположен в системной памяти и защищен от самоперезаписи, поэтому пользователь не может его повредить случайными действиями.

Для работы с Boot Loader доступна бесплатная утилита Flash Loader. Ее можно скачать с сайта компании STMicroelectronics.

Для написания кода можно использовать широко распространенные в нашей стране IAR Embedded Workbench или Keil MDK-ARM. Если бюджет разработки не позволяет использовать эти средства, то можно взять бесплатную Eclipse/GCC.

Для ускорения процесса разработки компания STMicroelectronics предоставляет все необходимые библиотеки, содержащие наборы функций, структуры данных и макросы, охватывающие периферию микроконтроллеров STM32Lxx. Последние версии библиотек размещены на сайте компании в свободном доступе.

Компания STMicroelectronics предлагает разработчикам на выбор несколько недорогих отладочных плат для начала работы с STM32Lxx.

В качестве такой отладки можно взять STM32L100C-DISCO (рисунок 5) с контроллером STM32L100RCT6.

 

Отладочная плата STM32L100C-DISCO

 

Рис. 5. Отладочная плата STM32L100C-DISCO

Плата состоит из двух частей. В первой части находится отладчик/программатор ST-LINK/V2. Управление и питание происходит по шине USB. В дальнейшем эта часть платы может быть использована отдельно от микроконтроллера в качестве программатора.

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

Для старших микроконтроллеров линейки STM32L15x компания также предоставляет недорогую отладочную плату STM32L152C-DISCO (рисунок 6). По своей сути, она является прототипом STM32L100C-DISCO, но имеет дополнительный функционал, LCD-дисплей и сенсорный слайдер.

 

Отладочная плата SMT32L152C-DISCO

 

Рис. 6. Отладочная плата SMT32L152C-DISCO

 

Если есть необходимость в более продвинутой отладочной плате — можно использовать STM32L152D-EVAL (рисунок 7). Она построена на базе более мощного микроконтроллера STM32L152ZDT6. Плата имеет довольно много предустановленной периферии: два LCD-дисплея (графический и сегментный), сенсорную панель, датчик температуры, микросхемы SRAM/N или Flash/EEPROM-памяти, MicroSD-карту и отладчик/программатор ST-LINK.

 

Отладочная плата STM32L152D-EVAL

 

Рис. 7. Отладочная плата STM32L152D-EVAL

 

 

MicroXplorer

Каждому разработчику хорошо известна ситуация, когда перед ним стоит задача распределить полторы сотни ножек микроконтроллера. При этом нельзя допустить ни одной ошибки. А если после нескольких часов работы приемлемый вариант не удалось подобрать, то приходится выбирать новый контроллер и начинать все сначала. Для решения этой несложной, на первый взгляд, задачи компания STMicroelectronics предлагает свою утилиту — MicroXplorer.

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

 

MicroXplorer. Главное окно программы

 

Рис. 8. MicroXplorer. Главное окно программы

После конфигурации GPIO (вход, выход или альтернативная функция периферии) MicroXplorer может сгенерировать соответствующий код инициализации.

Для малопотребляющих микроконтроллеров STM32L добавлена функция расчета энергопотребления.

Если разработчик еще не определился с конкретным типом микроконтроллера, то MicroXplorer может его подобрать, исходя из необходимой для проекта периферии.

Рассмотрим процесс конфигурирования и расчета потребления на конкретном примере. Возьмем за основу микроконтроллер линейки STM32L100 Value Line — STM32L100C6.

На первом шаге необходимо создать новый проект и выбрать необходимый микроконтроллер: из меню «File» необходимо выбрать «new Config» и в появившемся окне «New Configuration settings» выбрать контроллер. После этого окно программы примет вид, представленный на рисунке 8.

Далее нужно выбрать периферию, используемую в проекте. Для этого в панели «Peripherals panel» (вкладка «Pinout»), расположенной слева в основном окне программы, необходимо отметить все необходимое. Одновременно с этим на изображении чипа будут отмечаться ножки, которые будут задействованы. Поскольку в микроконтроллере очень часто на одну ножку выводится несколько функций, то в процессе выбора необходимых модулей в общем списке периферии параллельно будет отмечаться как используемая, так и ставшая недоступной периферия. Здесь стоит упомянуть еще и одну мало заметную галочку «Keep User Placement». При ее установке MicroXplorer не может сам в автоматическом режиме переназначать ножки.

После выбора периферии во вкладке «Configuration» необходимо задать все параметры, необходимые для генерации кода инициализации. После этого, используя меню «Tools»/ «Generate Code menu», можно запустить генерацию кода.

Для расчета потребляемой мощности необходимо перейти во вкладку «Power Consumption Calculator» (рисунок 9а).

MicroXplorer. Расчет потребляемой мощности

Рис. 9. MicroXplorer. Расчет потребляемой мощности

Здесь необходимо задать номер микроконтроллера (Part Number), температуру окружающей среды (Ambient Temperature) и напряжение питания (Vdd Power Supply). В случае необходимости расчета времени жизни от батареи можно задать еще и ее тип (Battery Selection). К сожалению, в текущей версии 3.1 изменение температуры и напряжения питания недоступно.

После этого можно переходить к построению кривых потребления. Для этого нужно добавлять временные шаги с описанием режимов работы, используя кнопку «Add» группы «Step». На рисунке 9б отображено типичное окно такого шага.

Здесь необходимо задать:

  • режим работы микроконтроллера по питанию: «Power Mode»;
  • режим работы микроконтроллера в зависимости от напряжения внутреннего регулятора (Vcore): «Power Consumption Range selection»;
  • память (Flash или RAM), из которой выполняется программный код: «Memory Fetch Type selection»;
  • режим тактирования микроконтроллера: «Clock»;
  • время выполнения шага: «Step Duration»;
  • дополнительное внешнее потребление (светодиоды, подтяжки и прочее): «Additional Consumption»;
  • периферийные модули, задействованные в микроконтроллере: «Peripherals».

После завершения настройки всех необходимых параметров кнопкой «Add» завершается конфигурирование и добавляется требуемый участок кривой потребления.

На рисунке 10 представлен результат расчета потребления на двух временных интервалах с различными режимами работы микроконтроллера.

 

MicroXplorer. Результаты расчета потребляемой мощности

 

Рис. 10. MicroXplorer. Результаты расчета потребляемой мощности

 

Заключение

В 2011 году компания STMicroelectronics представила новое семейство микроконтроллеров STM32L на основе ядра ARM Cortex-M3. Новые 32-битные микроконтроллеры STM32L стали первым низкопотребляющим решением на основе ядра Cortex-M3. В настоящий момент общее количество наименований микроконтроллеров семейства достигло 45.

В первой половине 2013 года состоялось очередное пополнение семейства — вышла в свет новая линейка STM32L100 Value Line, состоящая из 4 чипов. Эта линейка вобрала в себя все лучшее от старшего собрата STM32L15x и, за счет оптимизации функционала и процесса производства, получила существенное снижение стоимости, став идеальным решением для высокопроизводительных низкопотребляющих устройств по минимальной цене.

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

 

 

МЭМС-микрофоны с аналоговым выходом производства компании STMicroelectronics

МЭМС-микрофоны серии MP33xx производства компании STMicroelectronics обладают такими отличительными характеристиками, как высокое качество звука, низкое энергопотребление, устойчивость к механическим вибрациям, изменениям температуры и электромагнитному полю, превосходя показатели обычных дискретных микрофонов.

МЭМС-процесс позволяет производить микрофоны с характеристиками, позволяющими использовать их в таких применениях, как локализация источника группового сигнала и подавление шумов, идущих с определенных направлений. МЭМС-микрофоны с аналоговым выходом имеют отличные параметры по чувствительности — диапазоны звукового давления до 125 дБ SPL.

 

STMicroelectronics запускает виртуальную лабораторию для аудиоприложений

Виртуальная лаборатория Audio Processor Workbench предоставляет возможность оценки и измерения параметров аппаратных решений, построенных на базе аудиочипов SoundTerminalTM и цифровых MEMS-микрофонов. Audio Processor Workbench является первым и пока единственным на рынке решением, которое позволяет произвести комплексную оценку полного аудиотракта от микрофона до усилителя низкой частоты и динамического громкоговорителя.

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

Наши информационные каналы

Рубрики:

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее