Семейство микроконтроллеров STM32L4.
DSP c батарейным питанием
Последним обновлением линейки стали микроконтроллеры STM32L4, предоставляющие потрясающую функциональность и производительность при ультранизком потреблении.
Семейство STM32L4
Основные характеристики нового семейства (табл. 1):
- ядро ARM Cortex-М4 32 бит;
- частота тактирования 80 МГц;
- поддержка DSP-инструкций;
- до 1 Мбайт Flash-памяти;
- до 128 кбайт SRAM-памяти;
- напряжение питания 1,71–3,6 В;
- внутренние RC-генераторы на 16 МГц и 32 кГц (для RTC);
- внешний источник тактирования 4–48 МГц и для RTC — 32,768 кГц;
- модули отладки SWD/JTAG, модуль ETM;
- три 12‑битных SAR АЦП;
- два 12‑битных ЦАП;
- четыре цифровых фильтра для SD-АЦП;
- два низкопотребляющих компаратора;
- DMA-контроллер на 14 каналов;
- 16 таймеров (16 и 32 разряда);
- два сторожевых таймера (WWDG и IWDG);
- коммуникационные интерфейсы: I2C, USART (ISO 7816, LIN, IrDA), SPI, I2S;
- CAN 2.0 B Active;
- USB OTG full speed 2.0;
- аппаратное вычисление CRC;
- LCD-контроллер 8×40 или 4×44 с повышающим преобразователем;
- обычный или расширенный температурный диапазон –40…+125 °C.
Параллельный интерфейс FSMC 8-/16-бит (TFT-LCD, SRAM, NOR, NAND) |
Cortex-M4 80-МГц микропроцессор с модулем ETM |
Интерфейсы USB OTG 1×SD/SDIO/MMC, 3×SPI, 3×I2C, 1×CAN, 1×Quard SPI, 5×USART + 1×ULP UART, 1×SWP |
Дисплей ЖКД-драйвер 8×40 |
||
Таймеры 17 таймеров, в т. ч.: 2×16-бит таймера для управления приводом; 2×ULP-таймера; 7×16-бит таймеров; 2×32-бит таймера |
2-панельная флэш-память объемом до 1 Мбайт с проверкой кода |
Цифровой блок AES (256-бит), TRING, 2×SAI, DFSDM (8 каналов) |
I/O До 114 вводов/выводов Контроллер сенсорного экрана |
128-кбайт ОЗУ |
Аналоговый блок 3×16-бит АЦП, 2×ЦАП, 2×компаратора, 2×ОУ, 1×датчик температуры |
В настоящий момент производитель вывел на рынок 19 новых микроконтроллеров линейки STM32L4, условно разделенных на два семейства: STM32L476 и STM32L486 (рис. 1). Особенность семейства STM32L486 заключается в наличии встроенного модуля шифрования AES (Advanced encryption standard hardware accelerator). Разработчику доступны как небольшие бюджетные микроконтроллеры в корпусах LQFP64, так и более солидные модели с 1 Мбайт Flash-памяти в корпусах LQFP144.
В ближайшее время компания STMicro-electronics планирует значительно расширить данную линейку. В частности, для высокопроизводительных приложений потребителю будут предоставлены микроконтроллеры с объемом SRAM-памяти, увеличенным до 288 кбайт, а для задач, предусматривающих небольшой бюджет или требования по минимизации размеров, будут предложены контроллеры в UFQFPN-корпусах на 32 ножки. Таким образом, при сочетании высокой производительности, сверхнизкого потребления и доступной цены специалисты получат настоящий бестселлер для портативных устройств.
Питание микроконтроллеров STM32L4
Питание микроконтроллера разделено на несколько доменов (рис. 2). Это позволяет более грамотно организовать питание периферии и уменьшить шумы, поступающие из одной части в другую. Для подачи напряжения в микроконтроллер и сохранения его полной функциональности необходим источник на 3–3,6 В. Рассмотрим подробнее организацию питания:
- VDD = 1,71–3,6 В: внешнее питание для I/O, внутреннего регулятора и аналоговых систем, таких как сброс, управление питанием и внутреннее тактирование;
- VDDA = 1,62 (ADC/COMP)/1,8 (DAC/OPAMP)…3,6 В: внешнее аналоговое питание для АЦП, ЦАП, операционных усилителей, компараторов и источника опорного напряжения. Питание VDDA независимо от VDD;
- VDDUSB = 3–3,6 В: внешнее питание для USB-трансивера. Питание VDDUSB независимо от VDD;
- VDDIO2 = 1,08–3,6 В: внешнее питание для 14 I/O (PG [15:2]). Питание VDDIO2 независимо от VDD;
- VLCD = 2,5–3,6 В: LCD-контроллер может быть запитан внешним источником через VLCD-пин или внутренним повышающим преобразователем;
- VBAT = 1,55–3,6 В: питает часы реального времени RTC, внешний генератор 32 кГц и регистры восстановления, когда отсутствует основное питание.
Для поддержания правильной работы при подаче, снятии или колебаниях напряжения микроконтроллер имеет несколько встроенных супервизоров питания. Супервизор BOR (Brown out Reset) обеспечивает сброс контроллера при включении питания, пока его уровень не достигнет определенного порога. Это избавляет от необходимости использования внешних супервизоров питания. BOR имеет гистерезис, поэтому можно не опасаться дребезга напряжения. В дополнение к BOR возможен сброс по схемам POR (Power On Reset) и PDR (Power Down Reset).
Для оптимизации энергопотребления в микроконтроллерах STM32L4 применена динамическая адаптация напряжения внутреннего понижающего регулятора в зависимости от рабочей частоты контроллера: для обеспечения высокой производительности напряжение увеличивается, для сохранения энергии частота и, следовательно, потребление уменьшается.
Для организации нужного режима питания в линейке микроконтроллеров STM32L4 разработчику предложено на выбор семь режимов пониженного энергопотребления, позволяющих достичь компромисса между низким потреблением, временем старта, доступной периферией и источниками пробуждения. В таблице 2 представлено краткое описание возможных режимов. Рассмотрим их немного подробнее.
Режим |
Регулятор |
ЦП |
Флэш-память |
SRAM |
Источники тактовых сигналов |
Периферия источник пробуждения |
Энергопотребление при 1,8 В |
Время пробуждения |
---|---|---|---|---|---|---|---|---|
Активный режим |
R1 |
Да |
Вкл. |
Вкл. |
Любые |
Вся |
127 мкА/МГц |
– |
R2 |
Вся, кроме |
111 мкА/МГц |
||||||
LP |
LPR |
Да |
Вкл. |
Вкл. |
Любые, кроме |
Вся, кроме |
136 мкА/МГц |
Подлежит |
Сон |
R1 |
Нет |
Вкл. |
Вкл. |
Любые |
Вся Любое IT или события |
37 мкА/МГц |
6 циклов |
R2 |
35 мкА/МГц |
|||||||
LP |
LPR |
Нет |
Вкл. |
Вкл. |
Любые, кроме |
Вся кроме Любое IT или события |
40 мкА/МГц |
6 циклов |
Останов 1 |
LPR |
Нет |
Выкл. |
Вкл. |
Генераторы |
Вывод Reset, все I/O BOR, PVD, PVM, RTC, LCD, IWDG, COMPx, DACx, OPAMPx, |
7,3 мкА без RTC 7,6 мкА с RTC |
4 мкс ОЗУ 6 мкс |
Останов 2 |
LPR |
Нет |
Выкл. |
Вкл. |
Генераторы |
Вывод Reset, все I/O BOR, PVD, PVM, RTC, LCD, IWDG, COMPx, LPUART, I2C3, LPTIM1 |
1,2 мкА без RTC 1,4 мкА с RTC |
5 мкс ОЗУ 7 мкс |
Ожидание |
LPR |
Вниз |
Выкл. |
SRAM2 вкл. |
Генераторы |
Вывод Reset, BOR, RTC, IWDG |
+ 235 нА |
14 мкс |
Выкл. |
Вниз |
128 нА без RTC 433 нА с RTC |
||||||
Выключение |
Выкл. |
Вниз |
Выкл. |
Вниз |
Генератор |
Вывод Reset, RTC |
43 нА без RTC 265 нА с RTC |
256 мкс |
Режим Sleep. В этом режиме только ядро останавливает свою работу. Вся периферия продолжает действовать и пробуждает процессор при наступлении определенного прерывания или события.
Режим Low power run. Устанавливается ограничение на максимальную частоту ядра в 2 МГц. Питание ядра осуществляется от низкопотребляющего регулятора напряжения. Выполнение кода происходит из SRAM- или Flash-памяти. Тактирование можно реализовать через HSI16.
Режим Low power Sleep. Ядро остановлено, большая часть периферии активна. При появлении прерывания или наступлении события система переходит в Low power run.
Режим Stop (с активным RTC или без него). Все тактирование в домене VCORE, PLL, MSI, HSI и HSE отключено. LSE и LSI продолжают функционировать. Данные SRAM и контекст регистров сохранен. Часы реального времени RTC могут продолжать работать. Периферия с возможностью пробуждать контроллер остается доступной.
Режим Standby (с активным RTC или без него). Режим позволяет добиться ультранизкого энергопотребления. Внутренний регулятор напряжения выключен, и питание всех элементов ядра прекращено. PLL, MSI RC, HSI16 RC и HSE также отключены. Супервизор BOR (Brown out Reset) остается активным. Во время работы в режиме Standby можно задавить подтяжку каждой ножки I/O к питанию/«земле» или оставлять плавающей. Это весьма удобно при необходимости обеспечить нужный уровень внешних сигналов при неработающем микроконтроллере. После вхождения в режим Standby содержимое памяти SRAM1 и регистров теряется, за исключением данных в зоне Backup. При необходимости содержание SRAM2 может быть сохранено при запитке от низкопотребляющего регулятора. Микроконтроллер выходит из этого режима при наступлении одного из следующих событий: внешний сброс (вывод NRST), появление фронта на одном из выводов WKUP, сигнал от RTC.
Режим Shutdown (с активным RTC или без него). Режим также позволяет добиться самого низкого энергопотребления. Используя, например, небольшую батарею емкостью в 1 А·ч, контроллер сможет проработать десятки лет. Внутренний регулятор напряжения в этом режиме выключен, и питание всех элементов ядра прекращено. PLL, HSI16, MSI, LSI и HSE отключены. Супервизор BOR (Brown out Reset) больше недоступен. Содержимое памяти SRAM1 и SRAM2, а также регистров теряется. Данные можно сохранить только в зоне Backup. Пробуждение из этого режима происходит при наступлении одного из следующих событий: внешний сброс (вывод NRST), сброс IWDG, появление фронта на одном из выводов WKUP, сигнал от RTC, ошибки LSE.
Часы реального времени и Backup-регистры
Часы реального времени RTC (Real-time clock) выполнены как независимый счетчик с аппаратной поддержкой календаря. Реализовано ведение секунд, минут и часов (12‑ или 24‑часовой формат), дня (день недели), даты (день месяца), месяца и года, представленных в двоично-десятичном формате (BCD). Автоматизирована работа с 28-, 29- (високосный год), 30‑ и 31‑дневными месяцами. Функция цифровой калибровки позволяет компенсировать неточность кварцевого резонатора.
Backup-регистры представляют собой 32‑разрядные регистры для сохранения 128 байт пользовательских данных при пропадании основного питания микроконтроллера (только при условии, что на ножку Vbat подключено батарейное питание).
Контроллер прямого доступа к памяти
Контроллер прямого доступа к памяти DMA (Direct Memory Access) используется для высокоскоростного перемещения данных между периферией и памятью или памятью и памятью без участия CPU. Это значительно разгружает CPU для проведения других операций и избавляет программиста от ненужной работы по отслеживанию потоков данных. Микроконтроллеры имеют два DMA-контроллера, которые функционируют независимо друг от друга. Суммарно два контроллера имеют 14 каналов. Каждый канал имеет арбитраж приоритетности для распределения порядка выполнения запросов. Приоритеты задаются программно (четыре уровня приоритета: очень высокий, высокий, средний и низкий) или аппаратно в случае равенства. Поддерживается работа с кольцевым буфером. DMA действует со всей наиболее важной периферией: SPI, I2C, USART, TIMx, DAC, ADC и USB.
Коммуникационные интерфейсы
I2C-интерфейс (InterIntegrated Circuit)
Микроконтроллер имеет на борту до трех модулей I2C. Предусмотрена работа в режимах: «Ведущий» (Master), «Ведомый» (Slave) и «Несколько ведущих» (Мultimaster). Доступны три скорости передачи данных: «Стандартная» (Standard) — до 100 кГц, «Быстрая» (Fast) — до 400 кГц и «Быстрая+» (Fast+) — до 1000 кГц. Поддерживается 7/0‑битная адресация и растягивание такта (clock stretching).
Модули I2C также поддерживают протоколы обмена данными для устройств питания — SMBus 2.0 (System Management Bus) и PMBus (Рower Management Bus).
SPI-интерфейс (Serial Peripheral Interface)
Контроллер содержит до трех модулей SPI. Поддерживается работа в режимах Мaster или Slave с полнодуплексной (по трем линиям), полудуплексной (по двум линиям с двунаправленной линией данных) и симплексной (по двум линиям с однонаправленной линией данных) передачей данных на скоростях до 40 Mбит/с. Трехбитный делитель предоставляет возможность ведущему задавать восемь частот передачи с конфигурированием фрейма от 4 до 16 бит. Встроена аппаратная поддержка вычисления циклически избыточного кода CRC. Для каждого модуля SPI можно задать полярность и фазу тактового сигнала.
USART-интерфейс (Universal Synchronous Asynchronous Receiver Transmitter)
Микроконтроллер имеет до трех USART- и двух UART-модулей, которые обеспечивают скорость передачи данных до 10 Mбит/с. Возможна работа с LIN-, IrDA-устройствами и смарт-картами. Доступно автоматическое определение скорости передачи данных и аппаратный контроль потоков для подключения модемов и приемопередатчиков RS‑485.
Кроме стандартного USART, разработчику доступен низкопотребляющий LPUART. Он осуществляет полнодуплексную передачу данных, используя минимум энергии. Для его тактирования достаточно низкоскоростного часового генератора. В таком режиме LPUART способен передавать данные на скорости до 9600 бит/с. Для работы на больших скоростях необходимо переключиться на высокоскоростной источник тактового сигнала. LPUART имеет всю необходимую аппаратную поддержку, свойственную обычному UART.
CAN-интерфейс (Controller Area Network)
Микроконтроллер содержит встроенный контроллер CAN-интерфейса, поддерживающий стандарты 2.0А и 2.0В (активная передача данных) на скоростях до 1 Мбит/с и работающий со стандартными (11‑битными) и расширенными (29‑битными) кадрами. CAN-контроллер имеет три буфера сообщений на передачу, два приемных FIFO с тремя каскадами и 14 распределенных масштабируемых банков фильтров.
USB-интерфейс (Universal Serial Bus)
Микроконтроллер содержит встроенный контроллер USB OTG с поддержкой режима fullspeed (12 Мбит/с). Предусмотрены режимы Device, Host и OTG. Физический уровень выполнен на кристалле. USB-контроллер имеет программно конфигурируемые «конечные точки» (endpoint) и поддерживает функции приостановки/возобновления.
SWPMI-интерфейс (Single wire protocol master interface)
Микроконтроллер оснащен встроенным модулем SWPMI. SWPMI — стандарт шины данных и протокола для обмена информацией в соответствии со спецификацией ETSI TS 102 613, принятой в 2007 году и описывающей стандарт физического и канального уровня модели OSI. Физический интерфейс использует свободный контакт C6 стандартной ISO 7816 SIM-карты. Шина позволяет передавать данные на скоростях до 2 Мбит/с в полнодуплексном режиме. Данные от ведущего передаются цифровой модуляцией напряжения, а от ведомого — с помощью цифровой модуляции тока.
SAI-интерфейс (Serial audio interfaces)
Контроллер содержит до двух модулей последовательного аудиоинтерфейса SAI, которые могут поддерживать различные протоколы: I2S (LSB или MSB), PCM/DSP, TDM, AC’97 и SPDIF. Для обеспечения такой гибкости SAI содержит два независимых аудиосубблока. Каждый из них имеет собственный независимый тактовый генератор и контроллер линий входа/выхода. Модули SAI способны работать как ведущими, так и ведомыми. Аудиосубблоки могут быть передатчиками или приемниками и действовать синхронно.
LCD-контроллер (Liquid crystal display controller)
Для управления жидкокристаллическими индикаторами разработчику доступен встроенный LCD-контроллер. Он способен управлять 8 общими и 48 сегментными контактами, что в сумме дает 320 пикселей. Не используемые для управления дисплеем порты могут применяться как обычные GPIO. LCD-контроллер поддерживает низкопотребляющие режимы. Внутренний преобразователь питания гарантирует работоспособность и контроль контрастности вне зависимости от внешнего питания. При необходимости использования внешнего питания он может быть отключен. В этом случае питание на LCD заводится через ножку VLCD. До 8 пикселей можно сконфигурировать для работы в режиме мигания. Поддерживаются режимы заполнения: статическое, 1/2, 1/3, 1/4 и 1/8. Доступно смещение: статическое, 1/2, 1/3 и 1/4.
АЦП ADC (Analog to digital converter)
Микроконтроллеры содержат на борту три 12‑битных аналого-цифровых преобразователя последовательного приближения с возможностью подключения до 24 внешних аналоговых каналов. АЦП работают на скоростях до 5,53 мегасемпла (при разрешении 12 бит). Для увеличения скорости преобразования до 8,8 мегасемпла можно уменьшить разрешение до 6 бит. Кроме внешних каналов, на АЦП также поступают сигналы от пяти внутренних источников: температурного сенсора, выходов цифро-аналоговых преобразователей (DAC1 и DAC2), батареи и внутреннего источника опорного напряжения. Оцифровка входных аналоговых сигналов может выполняться в режиме одиночного или непрерывного преобразования. И в том, и в другом режиме количество и последовательность обрабатываемых каналов задается разработчиком.
На каждый АЦП доступно до трех аналоговых Watchdog. Аналоговый Watchdog представляет собой аналоговый компаратор с верхним и нижним программируемым порогом срабатывания. Результат преобразования сравнивается с этими величинами, и если он выходит за пределы коридора, то формируется прерывание.
Следует отметить, что в корпусе LQFP64 возможно использование только встроенного источника опорного напряжения. Для подключения своего источника необходимо взять любой другой корпус.
Операционные усилители OPAMP (Operational amplifier)
Микроконтроллеры STM32L4 имеют два встроенных операционных усилителя, которые могут быть использованы как самостоятельные усилители или как программируемый усилитель — PGA (Programmable Gain Amplifier). Выходы операционных усилителей могут быть подключены на вход АЦП или выведены наружу.
Операционные усилители имеют низкое напряжение смещения (1,5 мВ после калибровки, 3 мВ при заводской калибровке) и работают в режиме rail-to-rail. Граничная частота составляет 1,6 МГц. В режиме низкого потребления для питания необходимо лишь 30 мкА.
При использовании операционного усилителя как самостоятельного элемента усиление задается внешней цепочкой элементов, то есть мы меняем коэффициент усиления самостоятельно. Если усилитель применяется в качестве элемента совместно с PGA, усиление задается программно и выставляется встроенными резисторами. Коэффициент усиления меняется в пределах от 2 до 16.
ЦАП DAC (Digital to analog converter)
Контроллеры снабжены 12‑разрядным цифро-аналоговым преобразователем с двумя выходными каналами. ЦАП может быть сконфигурирован для работы с 8‑ или 12‑разрядным разрешением. Преобразователь имеет аппаратные функции генерации шума и треугольных волн. Каналы ЦАП можно использовать раздельно, поскольку они полностью независимы друг от друга и в них предусмотрены собственные регистры для данных и модуль преобразователя.
Компараторы COMP (Comparators)
Микроконтроллеры имеют два встроенных rail-to-rail-компаратора с программируемым опорным напряжением (внутренним или внешним), гистерезисом и скоростью и задаваемой выходной полярностью. Опорное напряжение можно задавать с ножки контроллера, выхода ЦАП или внутреннего источника опорного напряжения с множителем 1/4, 1/2 или 3/4. Оба компаратора могут пробуждать контроллер из спящего режима, генерировать прерывания и сконфигурированы в оконные компараторы.
Цифровой фильтр для SD-модулятора DFSDM (Digital filter for Sigma-Delta Modulators)
Микроконтроллеры имеют четыре встроенных цифровых фильтра для подключения внешних SD-модуляторов. Разработчик может подключить до восьми внешних сигналов, которые через мультиплексор будут попадать на один из фильтров. DFSDM поддерживает два стандарта последовательных интерфейсов — SPI и Манчестерский код. Также доступен альтернативный ввод данных из памяти микроконтроллера. Цифровой фильтр имеет целый ряд настраиваемых параметров: тип, порядок, длина фильтра и интегратора. Максимальное разрешение — 24 бит. Предусмотрено два режима работы: одиночное и цикличное. Данные можно автоматически скопировать в память через DMA.
Сенсорный контроллер прикосновений (Touch sensing controller)
Встроенный сенсорный контроллер позволяет достаточно просто реализовать в своем устройстве емкостный сенсорный экран управления. Для облегчения труда программиста и ускорения процесса разработки компания ST бесплатно предоставляет специальную библиотеку для контроллера сенсорных экранов. Контроллер использует хорошо зарекомендовавшую себя ранее технологию переноса заряда и поддерживает до 24 входных каналов. До восьми емкостных каналов можно объединить в параллель для получения минимального времени отклика.
Таймеры и сторожевые таймеры (Timers and watchdogs)
Микроконтроллеры STM32L4 имеют на борту богатый набор таймеров: 16‑битные таймеры с расширенными функциями, 32‑ и 16‑битные таймеры общего назначения, 16‑битные базовые таймеры, два сторожевых таймера (независимый и оконного типа) и 24‑битный системный таймер.
Таймеры с расширенными функциями располагают довольно многочисленными возможностями: поддерживают режимы счета в прямом и обратном направлениях, имеют комплементарные выходы с программируемым мертвым временем, осуществляют генерацию ШИМ и другие важные функции.
Таймеры общего назначения во многом похожи на таймеры с расширенными функциями, но имеют менее богатый функционал (по направлению счета, входам захвата, выходам сравнения и т. д.).
Базовые таймеры имеют наименьший функционал и используются в основном как обычные 16‑разрядные счетчики.
У низкопотребляющих таймеров (LPTIM1 и LPTIM2) независимое тактирование, и они могут работать в режиме Stop при тактировании от LSE, LSI или внешнего источника. Они также способны осуществлять пробуждение микроконтроллера.
Модуль шифрования и хеширования AES (Advanced encryption standard hardware accelerator)
Модуль шифрования (сryptographic accelerator) представлен пока только в серии STM32L486. Он позволяет аппаратно реализовывать различные алгоритмы шифрования с очень высокой скоростью, необходимые для обеспечения конфиденциальности данных. Разработчику доступен один из наиболее широко используемых современных алгоритмов шифрования данных — AES (Advanced Encryption Standard). Это симметричный алгоритм блочного шифрования с размером блока 128 бит и ключом до 256 бит.
FSMC-контроллер (Flexible Static Memory Controller)
Модуль FSMC дает возможность подключить к микроконтроллеру внешнюю память.
FSMC поддерживает внешнюю синхронно/асинхронную статическую и NAND Flash-память, обеспечивает преобразование данных в доступный для соответствующих внешних устройств формат и формирует временные диаграммы чтения/записи. Все внешние устройства получают свои адреса в адресном пространстве, сигналы данных и управления. Доступ к каждому внешнему устройству осуществляется посредством индивидуального сигнала выбора микросхемы. Одновременное обращение к двум различным микросхемам внешней памяти недоступно. Поддерживаются следующие типы памяти: SRAM, PSRAM, NOR Flash и NAND Flash.
Средства отладки
Для проведения отладки и программирования микроконтроллера используются хорошо известные четырехпроводной JTAG-интерфейс или двухпроводной интерфейс SWD (Serial Wire Debug). Ножки SWD-интерфейса мультиплексированы с ножками JTAG. По умолчанию после запуска микроконтроллера активен JTAG-интерфейс. Переход от JTAG- к SWD-интерфейсу осуществляется программными средствами среды программирования или разработки. При отсутствии средств для работы по JTAG/SWD-интерфейсу можно воспользоваться встроенным в микроконтроллер загрузчиком (Boot Loader). Он позволяет программировать память микроконтроллера через один из последовательных интерфейсов (USART, I2C, SPI, CAN или USB OTG FS) с помощью Device DFU (device firmware upgrade). Boot Loader расположен в системной памяти и защищен от самоперезаписи, поэтому разработчик не может повредить его случайными действиями.
Для написания кода можно использовать широко распространенные в нашей стране IAR Embedded Workbench или Keil MDKARM. Если бюджет проекта не позволяет применить эти средства, то можно взять бесплатную Eclipse/GCC. Для ускорения процесса разработки компания STMicroelectronics предоставляет все необходимые библиотеки, содержащие наборы функций, структуры данных и макросы, охватывающие периферию микроконтроллеров.
Несколько слов о программном обеспечении STM32CubeMX, которое разработчик может использовать для настройки и создания кода инициализации. STM32CubeMX позволяет назначать функции ножек с автоматическим разрешением конфликтов, строить дерево тактирования с последующей проверкой, осуществлять инициализацию периферии и проводить оценку потребления микроконтроллера. По завершении всех процедур настройки разработчик может генерировать проекты для сред IAR Embedded Workbench, Keil uVision и Atollic TrueStudio.
Компания STMicroelectronics предлагает на выбор несколько недорогих отладочных плат для начала работы с STM32L4.
NUCLEO-L476RG
Для знакомства с STM32L4 можно рассмотреть NUCLEO-L476RG (рис. 3) с контроллером STM32L476RGT6.
Особенности данной платы:
- контроллер STM32L476RGT6 с 1 Мбайт Flash и 128 кбайт ОЗУ;
- выполненный на плате программатор/отладчик STLINK/V2-1 с поддержкой USB;
- три различных режима подключения USB: виртуальный СОМ-порт, накопитель данных, отладочный порт;
- три светодиода: индикация подключения USB, индикация питания; пользовательский светодиод;
- одна пользовательская кнопка;
- возможность питания платы от USB или от внешнего источника;
- разъемы Arduino Uno Revision 3;
- разъемы расширения STMicroelectronics Morpho с прямым доступом ко всем ножкам контроллера.
32L476GDISCOVERY
В качестве отладки начального уровня можно воспользоваться 32L476GDISCOVERY (рис. 4) с контроллером STM32L476VGT6.
Особенности платы:
- контроллер ST STM32L476VGT6 с 1 Мбайт Flash и 128 кбайт ОЗУ;
- выполненный на плате программатор/отладчик STLINK/V2-1 с поддержкой USB;
- три различных режима подключения USB: виртуальный СОМ-порт, накопитель данных, отладочный порт;
- LCD-дисплей на 24 сегмента с четырьмя общими в DIP-корпусе на 28 ножек;
- семь светодиодов: индикация подключения USB, индикация питания 3,3 В, светодиод перегрузки по току, два пользовательских светодиода и два светодиода индикации USB;
- кнопка сброса и джойстик с кнопкой выбора;
- возможность питания платы от USB, батареи или от внешнего источника 5 В;
- цифровой микрофон, MEMS-гироскоп, акселерометр и магнетометр;
- штыревые разъемы для доступа к выводам контроллера.
STM32L476G-EVAL
В качестве отладки более высокого уровня можно применить STM32L476G-EVAL (рис. 5) с контроллером STM32L476ZGT6.
Особенности платы:
- контроллер STM32L476ZGT6 с 1 Мбайт Flash и 128 кбайт ОЗУ;
- выполненный на плате программатор/отладчик STLINK/V2-1 с поддержкой USB;
- LCD-дисплей на 320 сегментов;
- TFT LCD-панель диагональю 2,8″ с разрешением 320×240 и сенсорным экраном;
- два цифровых MEMS-микрофона;
- слот для microSD-карт с поддержкой SD, SDHC, SDXC;
- установленные микросхемы памяти: 16‑Mbit (1 M×16 bit) SRAM, 128‑Mbit (8 M×16 bit) NOR Flash, 256‑Mbit Quad-SPI Flash, RF-EEPROM;
- IrDA-передатчик;
- комплект микросхем STPMS2 для демонстрации возможностей построения счетчиков электроэнергии и работы со встроенным цифровым фильтром, применяемым при подключении внешних SD-модуляторов;
- кнопки сброса и пробуждения контроллера из спящего режима;
- джойстик с кнопкой выбора;
- возможность питания платы от USB либо от внешнего источника 5 В;
- штыревые разъемы для доступа к выводам контроллера.
Применение
Области применения новых микроконтроллеров STM32L4 разнообразны: от недорогой бытовой портативной электроники до серьезной автоматизации промышленных объектов. Разработчик сможет без особых проблем собрать как МР3‑плеер, так и блок управления двигателем.
На рис. 6 представлен пример реализации трехфазного счетчика электроэнергии.
Встроенные цифровые фильтры, применяемые для подключения внешних SD-модуляторов, смогут без проблем поддерживать измерение восьми аналоговых каналов (четыре тока, три напряжения и температуры). Контроллер LCD-дисплеев избавит от необходимости применять внешние микросхемы для подключения индикатора. Три кнопки контроля вскрытия активны даже при работе от батареи в низкопотребляющем режиме. FSMC-контроллер позволит подключить к микроконтроллеру внешнюю память для хранения данных. А изобилие коммуникационных интерфейсов и модуль шифрования предоставят возможность организовать достаточное количество внешних интерфейсов для передачи данных по АСУ.
Заключение
Новая линейка микроконтроллеров STM32L4 на базе ядра Cortex-M4, несомненно вобрала в себя все лучшее от своих предшественников STM32L1 и STM32F4. Основное преимущество новой серии — значительно возросшая производительность при уменьшении потребления. Все новые микроконтроллеры программно и аппаратно имеют высокую совместимость с существующими микросхемами. Разработчику не составит большого труда осуществить переход на новую платформу.
Невысокая цена, низкое потребление и новые возможности STM32L4 по цифровой обработке сигналов, несомненно, сделают эти микроконтроллеры лидерами в своем сегменте рынка.