Перейти к содержанию

STM32U3: малопотребляющие Cortex-M33 на 96 МГц с TrustZone

STM32U3 — малопотребляющее семейство STM32 на ядре Cortex-M33 с частотой до 96 МГц и TrustZone, по описанию ST первое на технологии near-threshold: ядро питается напряжением около 0,9 или 0,75 В. Здесь — отличия линеек по reference manual RM0487, питание и режимы сна по даташиту STM32U385, такты ожидания, загрузка и страницы с распиновкой каждого микроконтроллера в каждом корпусе.

STM32U3 — семейство малопотребляющих микроконтроллеров STMicroelectronics на ядре Arm Cortex-M33 с блоком вычислений с плавающей точкой, TrustZone и частотой до 96 МГц (DS14830, разд. 2; RM0487, раздел RCC). По описанию ST это первая серия STM32 на технологии near-threshold: логика работает при напряжении, близком к порогу открывания транзисторов, и активное потребление снижено до 10 мкА/МГц (DS14830, разд. 2). Ядро то же, что у STM32U5, но частота ниже, а памяти меньше: до 2 МБ флеш-памяти и 640 КБ ОЗУ. В разделе 93 страницы для 93 исполнений в 14 корпусах, 4 линейки: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.

Линейки STM32U3

Значения в таблице собраны из записей базы ST: память — от наименьшего до наибольшего исполнения. Частота в записях STM32U3 не указана, поэтому в строках её нет; предел из RM0487 — 96 МГц. В базе ST эти линейки записаны одной строкой STM32U3x5, в таблице они разделены по номеру.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32U375Cortex-M33512 КБ – 1 МБ256 КБLQFP48, LQFP64, LQFP100, UFBGA64, UFBGA100, UQFN32, UQFN48, WLCSP52, WLCSP68USB, FDCAN, DAC, COMP, SAI, HASH, RNG, LPTIM, LPUART, TSC
STM32U385Cortex-M331 МБ256 КБLQFP48, LQFP64, LQFP100, UFBGA64, UFBGA100, UQFN32, UQFN48, WLCSP52, WLCSP68USB, FDCAN, DAC, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC
STM32U3B5Cortex-M331 МБ – 2 МБ640 КБLQFP48, LQFP64, LQFP100, LQFP144, UFBGA132, UQFN48, WLCSP72, WLCSP99, WLCSP126USB, FDCAN, DAC, COMP, SAI, HASH, RNG, LPTIM, LPUART, TSC
STM32U3C5Cortex-M332 МБ640 КБLQFP48, LQFP64, LQFP100, LQFP144, UFBGA132, UQFN48, WLCSP72, WLCSP99, WLCSP126USB, FDCAN, DAC, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC

RM0487 Rev 3 делит опубликованные линейки на две группы — STM32U375/385 и U3B5/3C5, и главное различие между ними — объём SRAM (RM0487, табл. 5; флеш-память — по данным ST):

ЛинейкаФлеш-памятьSRAMАппаратный шифратор AES
STM32U375512 КБ или 1 МБ192 + 64 = 256 КБ—
STM32U3851 МБ192 + 64 = 256 КБесть
STM32U3B51 или 2 МБ192 + 64 + 320 + 64 = 640 КБ—
STM32U3C52 МБ192 + 64 + 320 + 64 = 640 КБесть

Внутри группы линейки различаются криптографией: по данным ST шифратор AES есть у U385 и U3C5, а у U375 и U3B5 его нет; в даташите STM32U385 цифры 385 так и расшифрованы — «с аппаратным шифрованием AES» (DS14830, разд. 7). Исполнения с AES выпускаются только с наибольшим объёмом флеш-памяти своей группы. У U3B5/3C5 по сравнению с U375/385 есть сигнальный процессор HSP, FDCAN2, таймеры TIM8 и TIM12, SPI4, I²C4, USART2 и порт F (RM0487, табл. 2 и 3). HSP — отдельный процессор для контуров управления, учёта энергии и небольших свёрточных нейросетей; он считает в 32-битном формате с плавающей точкой или в 8-битных целых (RM0487, разд. 19).

В базе STM32CubeMX 6.18.0 есть ещё STM32U356, U366, U335 и U345, но в атласе их нет. На st.com нет их даташитов и страниц продукта: мы проверили STM32U345RC 20 октября 2026 года и STM32U356RE и U366VE 21 октября, а на странице серии STM32U3 перечислены только U375/385 и U3B5/3C5. В AN2606 Rev 70 этих линеек тоже нет. U356 и U366 описаны только в RM0487 Rev 3 — это группа с 192 КБ SRAM и контроллером ЖКИ, — а U335 и U345 нет и там.

База ST называет QFN-корпуса STM32U3 UQFN32 и UQFN48, а в даташите STM32U385 те же корпуса названы UFQFPN32 и UFQFPN48; буква U в заказном номере означает UFQFPN (DS14830, табл. 1 и разд. 7).

Питание: near-threshold, LDO и SMPS

Напряжение ядра выбирается из двух диапазонов: Range 1 — около 0,9 В и частота до 96 МГц, Range 2 — около 0,75 В и до 48 МГц (RM0487, раздел PWR; DS14830, 3.8.2). Прежде чем поднять частоту выше 24 МГц, нужно включить бустер EPOD и дождаться его готовности; у STM32U3B5/3C5 процессор HSP в Range 2 не работает (RM0487, раздел PWR).

Стабилизатор ядра зависит от исполнения (DS14830, 3.8.1, рис. 2 и 3). В исполнениях без SMPS напряжение ядра даёт линейный LDO с внешним конденсатором на выводе VCAP. В исполнениях с буквой Q или G в конце заказного номера вывода VCAP нет: LDO и понижающий преобразователь SMPS работают параллельно и выдают напряжение ядра на выводы VDD11. Переключаться между LDO и SMPS можно на ходу, оба работают и в режиме Stop. По данным ST выводов VDD11 два во всех корпусах, кроме WLCSP52, WLCSP68, WLCSP72 и WLCSP99, где он один. Исполнения с Q есть во всех линейках, с G — только в корпусе WLCSP68 у STM32U375 и U385.

Основное питание — от 1,71 до 3,6 В, температура окружающей среды — до +105 °C при температуре кристалла до +110 °C (DS14830, табл. 1). По даташиту STM32U385 отдельно питаются аналоговая часть (VDDA), USB (VDDUSB, 3,0–3,6 В) и резервный домен (VBAT, 1,55–3,6 В), а до 14 линий порта G (PG2–PG15) — от вывода VDDIO2, который допускает от 1,08 до 3,6 В (DS14830, 3.8.1). Выведены они не во всех корпусах:

  • порт G и VDDIO2 — у U375 и U385 только в WLCSP68 с буквой G (по DS14830, табл. 1, у U385 это единственный корпус с линиями, питаемыми от 1,08 В), у U3B5 и U3C5 — в UFBGA132, WLCSP99, WLCSP126 и LQFP144;
  • порт F — только у U3B5 и U3C5 в UFBGA132, WLCSP126 и LQFP144;
  • VDDUSB — нет в корпусах на 32 и 48 выводов, VBAT — нет в UQFN32 и в WLCSP68 с буквой Q.

Распределение по корпусам — по данным ST; у U385 отсутствие VBAT и VDDUSB в 32-выводном корпусе подтверждает и распиновка даташита (DS14830, рис. 6).

Типовые токи с первой страницы даташита STM32U385 (DS14830, с. 1):

РежимТок
Run на 3,3 В с SMPS, цикл while(1)9,5 мкА/МГц
Run на 3,3 В с SMPS, CoreMark на 48 МГц13 мкА/МГц
Run на 3,3 В с SMPS, CoreMark на 96 МГц16 мкА/МГц
Stop 2 с 8 КБ SRAM / со всей SRAM3,8 мкА / 4,5 мкА
Stop 3 с 8 КБ SRAM / со всей SRAM1,6 мкА / 2,2 мкА

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

Такты ожидания флеш-памяти

После сброса ядро работает от генератора MSIS на 12 МГц, в регистре FLASH_ACR установлен один такт ожидания (RM0487, разделы FLASH и RCC). Такты ожидания в обычном режиме чтения (бит LPM = 0) зависят от диапазона напряжения ядра и от группы (RM0487, табл. 43):

Тактов ожиданияRange 1: U375/385Range 1: U3B5/3C5Range 2: обе группы
0до 32 МГцдо 25 МГцдо 16 МГц
1до 64 МГцдо 50 МГцдо 32 МГц
2до 96 МГцдо 75 МГцдо 48 МГц
3—до 96 МГц—

В экономичном режиме чтения (LPM = 1) тактов нужно больше: в Range 1 без ожидания флеш-память работает до 20 МГц, а на 96 МГц нужно четыре такта (RM0487, табл. 44). Делители таймеров от выбранных частот считает калькулятор таймера.

Режимы низкого потребления

По даташиту STM32U385 (DS14830, 3.9) кроме Sleep есть четыре режима Stop, Standby и Shutdown:

  • Stop 0 — регулятор остаётся в основном режиме: пробуждение самое быстрое, потребление выше;
  • Stop 1 — регулятор в экономичном режиме, весь домен ядра под питанием, работает вся автономная периферия;
  • Stop 2 — большая часть домена ядра переходит в режим малой утечки с сохранением регистров, работать остаются блоки на шине APB3;
  • Stop 3 — самый экономичный режим с полным сохранением ОЗУ, но работающая периферия и источники пробуждения в нём те же, что в Standby;
  • Standby — домен ядра обесточен, можно сохранить SRAM2 целиком или 8, 24 или 32 КБ;
  • Shutdown — самое низкое потребление, монитор питания BOR выключен.

Выводы STM32U3: альтернативные функции и загрузка

У каждой линии порта мультиплексор на шестнадцать функций: номер AF0–AF15 записывают в регистры GPIOx_AFRL и GPIOx_AFRH (RM0487, раздел GPIO). В данных ST у STM32U3 встречаются номера до AF14. По даташиту STM32U385 при включённой TrustZone все линии портов и вся SRAM после сброса защищённые (DS14830, 3.5.1 и 3.7.1); у U3B5/3C5 блок SRAM4 после сброса защищён, но доступен незащищённому процессору HSP (RM0487, с. 104).

Значение BOOT0 берётся с вывода PH3-BOOT0 (DS14830, 3.6) или, если бит nSWBOOT0 сброшен, из бита nBOOT0 в байтах опций, и защёлкивается при выходе из сброса (RM0487, раздел о загрузке). В корпусе UQFN32 вывода PH3-BOOT0 нет: у STM32U385KG BOOT0 совмещён с выводом PB7 (DS14830, 3.6), а в записях базы ST для U375KE, U375KG и U385KG вывод 30 назван просто PB7. В отличие от STM32U5 адрес старта задают байты опций FLASH_BOOT0R, FLASH_BOOT1R и FLASH_SBOOT0R (RM0487, табл. 19 и 20):

TrustZoneBOOT_LOCKУсловиеСтартЗаводское значение
выключена (TZEN = 0)—(nSWBOOT0 = 1 и BOOT0 = 0) либо (nSWBOOT0 = 0 и nBOOT0 = 1)адрес из FLASH_BOOT0Rфлеш-память 0x0800 0000
выключена—(nSWBOOT0 = 1 и BOOT0 = 1) либо (nSWBOOT0 = 0 и nBOOT0 = 0)адрес из FLASH_BOOT1Rзагрузчик 0x0BF8 F000
включена (TZEN = 1)0команда RSS = 0 и ((nSWBOOT0 = 1 и BOOT0 = 0) либо (nSWBOOT0 = 0 и nBOOT0 = 1))адрес из FLASH_SBOOT0Rфлеш-память 0x0C00 0000
включена0команда RSS = 0 и ((nSWBOOT0 = 1 и BOOT0 = 1) либо (nSWBOOT0 = 0 и nBOOT0 = 0))службы RSS0x0FF8 0000
включена0команда RSS ≠ 0службы RSS0x0FF8 0000
включена1любоеадрес из FLASH_SBOOT0Rфлеш-память 0x0C00 0000

Бит BOOT_LOCK оставляет единственную точку входа — основу защищённой загрузки. Уровень защиты RDP ограничивает адреса старта (RM0487, табл. 21 и текст над ней). С TrustZone начиная с RDP 0.5 разрешены только службы RSS (0x0FF8 0000) и защищённая флеш-память — 0x0C00 0000–0x0C0F FFFF у U375/385 и 0x0C00 0000–0x0C1F FFFF у U3B5/3C5; при другом адресе микроконтроллер принудительно стартует с 0x0FF8 0000. Без TrustZone ограничение действует только на уровне RDP 2: разрешена флеш-память 0x0800 0000–0x080F FFFF или 0x0800 0000–0x081F FFFF соответственно, иначе старт с 0x0800 0000.

Встроенный загрузчик STM32U375/385 и U3B5/3C5 включается так же, как у STM32U5 (AN2606, шаблон 12), занимает 40 КБ системной памяти с адреса 0x0BF8 F000, использует 16 КБ SRAM с адреса 0x2000 0000 и работает на 48 МГц от MSIS (AN2606, табл. 208 и 211). Интерфейсы у обеих групп одинаковые (AN2606, табл. 3):

USARTI²CI3CSPIПрочие
USART1, USART3I²C1–I²C3I3C1SPI1–SPI3FDCAN1, USB DFU

У STM32U375/385 загрузчик слушает USART1 на выводах PA10 (RX) и PA9 (TX), USART3 — на PC11 и PC10, I²C1 — на PB6 и PB7, FDCAN1 — на PB8 (RX) и PB9 (TX), USB — на PA11 и PA12, I3C1 — на PB13 (SCL) и PA1 (SDA). SPI1 выведен на PA4–PA7, а в корпусе WLCSP68 с буквой G загрузчик версии 14.2 берёт для него PG2–PG5, чтобы эти линии могли питаться от VDDIO2 (AN2606, табл. 208 и разд. 92.2).

Все STM32U3 по корпусам

STM32U375 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32U375CETxLQFP48512 КБ256 КБ37
STM32U375CETxQLQFP48512 КБ256 КБ33
STM32U375CEUxUQFN48512 КБ256 КБ37
STM32U375CEUxQUQFN48512 КБ256 КБ33
STM32U375CEWLCSP52512 КБ256 КБ35
STM32U375CGTxLQFP481 МБ256 КБ37
STM32U375CGTxQLQFP481 МБ256 КБ33
STM32U375CGUxUQFN481 МБ256 КБ37
STM32U375CGUxQUQFN481 МБ256 КБ33
STM32U375CGWLCSP521 МБ256 КБ35
STM32U375KEUQFN32512 КБ256 КБ25
STM32U375KGUQFN321 МБ256 КБ25
STM32U375REIxUFBGA64512 КБ256 КБ51
STM32U375REIxQUFBGA64512 КБ256 КБ47
STM32U375RETxLQFP64512 КБ256 КБ51
STM32U375RETxQLQFP64512 КБ256 КБ47
STM32U375REYxGWLCSP68512 КБ256 КБ47
STM32U375REYxQWLCSP68512 КБ256 КБ52
STM32U375RGIxUFBGA641 МБ256 КБ51
STM32U375RGIxQUFBGA641 МБ256 КБ47
STM32U375RGTxLQFP641 МБ256 КБ51
STM32U375RGTxQLQFP641 МБ256 КБ47
STM32U375RGYxGWLCSP681 МБ256 КБ47
STM32U375RGYxQWLCSP681 МБ256 КБ52
STM32U375VEIxUFBGA100512 КБ256 КБ82
STM32U375VEIxQUFBGA100512 КБ256 КБ79
STM32U375VETxLQFP100512 КБ256 КБ82
STM32U375VETxQLQFP100512 КБ256 КБ79
STM32U375VGIxUFBGA1001 МБ256 КБ82
STM32U375VGIxQUFBGA1001 МБ256 КБ79
STM32U375VGTxLQFP1001 МБ256 КБ82
STM32U375VGTxQLQFP1001 МБ256 КБ79

STM32U385 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32U385CGTxLQFP481 МБ256 КБ37
STM32U385CGTxQLQFP481 МБ256 КБ33
STM32U385CGUxUQFN481 МБ256 КБ37
STM32U385CGUxQUQFN481 МБ256 КБ33
STM32U385CGWLCSP521 МБ256 КБ35
STM32U385KGUQFN321 МБ256 КБ25
STM32U385RGIxUFBGA641 МБ256 КБ51
STM32U385RGIxQUFBGA641 МБ256 КБ47
STM32U385RGTxLQFP641 МБ256 КБ51
STM32U385RGTxQLQFP641 МБ256 КБ47
STM32U385RGYxGWLCSP681 МБ256 КБ47
STM32U385RGYxQWLCSP681 МБ256 КБ52
STM32U385VGIxUFBGA1001 МБ256 КБ82
STM32U385VGIxQUFBGA1001 МБ256 КБ79
STM32U385VGTxLQFP1001 МБ256 КБ82
STM32U385VGTxQLQFP1001 МБ256 КБ79

STM32U3B5 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32U3B5CGTxLQFP481 МБ640 КБ37
STM32U3B5CGTxQLQFP481 МБ640 КБ33
STM32U3B5CGUxUQFN481 МБ640 КБ37
STM32U3B5CGUxQUQFN481 МБ640 КБ33
STM32U3B5CITxLQFP482 МБ640 КБ37
STM32U3B5CITxQLQFP482 МБ640 КБ33
STM32U3B5CIUxUQFN482 МБ640 КБ37
STM32U3B5CIUxQUQFN482 МБ640 КБ33
STM32U3B5JGWLCSP721 МБ640 КБ55
STM32U3B5JIWLCSP722 МБ640 КБ55
STM32U3B5QGIxUFBGA1321 МБ640 КБ110
STM32U3B5QGIxQUFBGA1321 МБ640 КБ106
STM32U3B5QIIxUFBGA1322 МБ640 КБ110
STM32U3B5QIIxQUFBGA1322 МБ640 КБ106
STM32U3B5RGTxLQFP641 МБ640 КБ51
STM32U3B5RGTxQLQFP641 МБ640 КБ47
STM32U3B5RITxLQFP642 МБ640 КБ51
STM32U3B5RITxQLQFP642 МБ640 КБ47
STM32U3B5VGTxLQFP1001 МБ640 КБ82
STM32U3B5VGTxQLQFP1001 МБ640 КБ79
STM32U3B5VGWLCSP991 МБ640 КБ77
STM32U3B5VITxLQFP1002 МБ640 КБ82
STM32U3B5VITxQLQFP1002 МБ640 КБ79
STM32U3B5VIWLCSP992 МБ640 КБ77
STM32U3B5WGWLCSP1261 МБ640 КБ101
STM32U3B5WIWLCSP1262 МБ640 КБ101
STM32U3B5ZGTxLQFP1441 МБ640 КБ114
STM32U3B5ZGTxQLQFP1441 МБ640 КБ111
STM32U3B5ZITxLQFP1442 МБ640 КБ114
STM32U3B5ZITxQLQFP1442 МБ640 КБ111

STM32U3C5 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32U3C5CITxLQFP482 МБ640 КБ37
STM32U3C5CITxQLQFP482 МБ640 КБ33
STM32U3C5CIUxUQFN482 МБ640 КБ37
STM32U3C5CIUxQUQFN482 МБ640 КБ33
STM32U3C5JIWLCSP722 МБ640 КБ55
STM32U3C5QIIxUFBGA1322 МБ640 КБ110
STM32U3C5QIIxQUFBGA1322 МБ640 КБ106
STM32U3C5RITxLQFP642 МБ640 КБ51
STM32U3C5RITxQLQFP642 МБ640 КБ47
STM32U3C5VITxLQFP1002 МБ640 КБ82
STM32U3C5VITxQLQFP1002 МБ640 КБ79
STM32U3C5VIWLCSP992 МБ640 КБ77
STM32U3C5WIWLCSP1262 МБ640 КБ101
STM32U3C5ZITxLQFP1442 МБ640 КБ114
STM32U3C5ZITxQLQFP1442 МБ640 КБ111

Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах, токи и номиналы внешних компонентов. Исполнения с буквой Q и без неё в одном корпусе отличаются выводами питания, поэтому у каждого из них своя страница со схемой корпуса.

Частые вопросы

Что такое near-threshold у STM32U3?

Так ST называет технологию, на которой построено семейство: логика питается напряжением, близким к порогу открывания транзисторов. Регулятор STM32U3 даёт ядру около 0,9 В в диапазоне Range 1 (до 96 МГц) и около 0,75 В в Range 2 (до 48 МГц) (RM0487, раздел PWR). По описанию ST за счёт этого активное потребление снижено до 10 мкА/МГц, и STM32U3 — первая серия STM32 на этой технологии (DS14830, разд. 2).

Чем STM32U3 отличается от STM32U5?

Ядро то же — Cortex-M33 с TrustZone, — но частота ниже: до 96 МГц против 160 МГц у STM32U5. Диапазонов напряжения ядра два, а не четыре, ОЗУ — до 640 КБ (RM0487, табл. 5) против 3026 КБ у старших STM32U5. Адреса старта при загрузке задают байты опций FLASH_BOOT0R и FLASH_BOOT1R, а встроенный загрузчик лежит с адреса 0x0BF8 F000 (RM0487, табл. 19), а не 0x0BF9 0000, как у STM32U5.

Сколько тактов ожидания флеш-памяти нужно STM32U3 на 96 МГц?

В диапазоне Range 1 у STM32U375/385 — два такта, у U3B5/3C5 — три (RM0487, табл. 43). В Range 2 частота ограничена 48 МГц, на ней нужно два такта. В экономичном режиме чтения (бит LPM) на 96 МГц нужно четыре такта (табл. 44). После сброса ядро работает на 12 МГц от MSIS с одним тактом ожидания.

Как запустить встроенный загрузчик STM32U3?

Без TrustZone — подать BOOT0 = 1 при сбросе: ядро стартует с адреса из байта опций FLASH_BOOT1R, заводское значение которого — загрузчик по адресу 0x0BF8 F000 (RM0487, табл. 19). Загрузчик STM32U375/385 и U3B5/3C5 работает через USART1, USART3, I²C1–I²C3, I3C1, SPI1–SPI3, FDCAN1 и USB DFU (AN2606, табл. 3). В корпусе UQFN32 вывода PH3-BOOT0 нет: у U385KG BOOT0 совмещён с PB7 (DS14830, 3.6).

Что означают буквы Q и G в конце заказного номера STM32U3?

Разводку под встроенный понижающий преобразователь SMPS. Q — разводка с SMPS, G — с SMPS и портом G (DS14830, разд. 7). У таких исполнений нет вывода VCAP, зато выведены питание и выход SMPS и шина ядра VDD11, поэтому распиновка другая, и в атласе у них свои страницы. Исполнения с G есть только в корпусе WLCSP68 у STM32U375 и U385; в нём загрузчик выводит SPI1 на PG2–PG5, чтобы эти линии питались от VDDIO2 (AN2606, разд. 92.2).