STM32N6: Cortex-M55 на 800 МГц, NPU Neural-ART у N647 и N657
STM32N6 — микроконтроллеры STM32 на ядре Cortex-M55 с частотой до 800 МГц и 4,2 МБ ОЗУ, а в линейке N6x7 — с нейроускорителем Neural-ART. Встроенной флеш-памяти нет: программу загружает из внешней памяти код в ПЗУ. Здесь — отличия N645, N647, N655 и N657 по даташиту DS14791, режимы загрузки по reference manual RM0486, корпуса VFBGA и страницы с распиновкой каждого микроконтроллера в каждом корпусе.
STM32N6 — семейство микроконтроллеров STMicroelectronics на ядре Arm Cortex-M55 с векторным расширением Helium и блоком вычислений с плавающей точкой половинной, одинарной и двойной точности (DS14791, разд. 2). Ядро работает до 600 МГц, а в режиме overdrive при повышенном напряжении ядра — до 800 МГц (DS14791, табл. 2–5 и 25). У ядра кэши команд и данных по 32 КБ и сильно связанная память TCM: 128 КБ для данных и 64 КБ для команд. Встроенной флеш-памяти у STM32N6 нет — на её месте в заказном номере цифра 0, «0–1 Kbytes» (разд. 7), — зато есть 4,2 МБ SRAM одним непрерывным массивом. Из других высокопроизводительных семейств в атласе есть STM32H7 и STM32H5. В разделе 28 страниц для 28 исполнений в 7 корпусах, 4 линейки: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.
Линейки STM32N6
Значения в таблице собраны из записей базы ST. Частоты и напряжения питания в записях STM32N6 нет, поэтому на страницах микроконтроллеров они взяты из даташита: до 800 МГц — это частота ядра в режиме overdrive — и питание от 1,71 до 3,6 В (DS14791, табл. 2–5). Флеш-памяти в таблице и на страницах нет: база записывает её объём как 0. ОЗУ в записях — 4200 КБ, в даташите этот объём назван 4,2 МБ.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32N645 | Cortex-M55, до 800 МГц | — | 4200 КБ | VFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264 | USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, HASH, RNG, LPTIM, LPUART |
| STM32N647 | Cortex-M55, до 800 МГц | — | 4200 КБ | VFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264 | USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, HASH, RNG, LPTIM, LPUART |
| STM32N655 | Cortex-M55, до 800 МГц | — | 4200 КБ | VFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264 | USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM, LPUART |
| STM32N657 | Cortex-M55, до 800 МГц | — | 4200 КБ | VFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264 | USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM, LPUART |
В базе ST линейки записаны как STM32N6x5 (N645, N655) и N6x7 (N647, N657), в таблице они разделены по номеру. По даташиту последняя цифра означает нейроускоритель, предпоследняя — криптографию (DS14791, табл. 2–5 и разд. 7):
| Микроконтроллер | Neural-ART | SAES, CRYP, PKA, MCE |
|---|---|---|
| STM32N645 | — | — |
| STM32N647 | есть | — |
| STM32N655 | — | есть |
| STM32N657 | есть | есть |
Остальное у всех четырёх общее: 4,2 МБ SRAM и 8 КБ резервной, питание от 1,71 до 3,6 В, температура кристалла от −40 до +125 °C и одни и те же шесть корпусов (DS14791, табл. 2–5). Из периферии ST перечисляет до двух контроллеров USB 2.0 OTG High Speed (один с UCPD), Ethernet до 1 Гбит/с с TSN, до трёх FDCAN, два I3C, до шести SPI и два АЦП до 5 Мвыб/с (DS14791, с. 2). Сколько блоков доступно, зависит от корпуса: по табл. 2 даташита SPI — 6 или 5, FDCAN — 3 или 2, OTG HS — 2 или 1, USART — от 5 до 2, SDMMC — от 2 до 0, контроллер FMC есть не во всех корпусах. Для камер есть параллельный интерфейс и CSI-2 со встроенным конвейером обработки изображения (ISP), для графики — ускоритель Neo-Chrom для 2,5D, кодек JPEG и, по описанию ST, опционально кодер H.264 (разд. 2).
Нейроускоритель Neural-ART и память
Нейроускоритель (NPU) есть только у STM32N6x7 (DS14791, 3.5). По описанию ST он работает на частоте до 1 ГГц, даёт 600 Gops (млрд операций в секунду) при выводе глубоких нейросетей, распаковывает веса на лету и шифрует данные (разд. 2); без overdrive частота NPU — до 800 МГц (табл. 25). Отдельной памяти для весов и данных у NPU нет: он работает с общей системной SRAM (3.5), а потоковые блоки внутри ускорителя сокращают использование его внутренних буферов (разд. 2). У N6x7 под кэш нейроускорителя отдаётся блок AXISRAM7 (см. ниже).
4096 КБ ОЗУ на шине AXI делятся пополам: AXISRAM1, AXISRAM2 и FLEXRAM работают в частотном домене ядра, AXISRAM3–AXISRAM7 — в домене NPU и предназначены прежде всего для вычислений нейросетей (RM0486, 10.3.2). Блоки SRAM (RM0486, табл. 33):
| Блок | Объём | Особенность |
|---|---|---|
| AXISRAM1 | 624 КБ | основное ОЗУ |
| AXISRAM2 | 1024 КБ | основное ОЗУ |
| FLEXRAM | до 400 КБ | можно отдать ядру как TCM; 80 КБ сохраняются в Standby |
| AXISRAM3–AXISRAM6 | по 448 КБ | домен NPU |
| AXISRAM7 | 256 КБ | у N6x7 после включения становится кэшем Neural-ART |
| AHBSRAM1, AHBSRAM2 | по 16 КБ | для обмена с периферией через DMA |
| VENCRAM (AXISRAM8) | 128 КБ | память кодера, если он не используется — обычное ОЗУ |
| BKPSRAM | 8 КБ | сохраняется при питании от VBAT |
У STM32N6x5 блок AXISRAM7 всегда остаётся обычным ОЗУ, а у N6x7 после включения кэша битом EN регистра CACHEAXI_CR1 он уходит под нейроускоритель и пропадает из адресного пространства (RM0486, 10.3.1).
Частоты и питание
Частоты по табл. 25 даташита DS14791:
| Узел | Обычный режим | Overdrive |
|---|---|---|
| Ядро Cortex-M55 | до 600 МГц (VOS low) | до 800 МГц (VOS high) |
| Нейроускоритель Neural-ART | до 800 МГц | до 1000 МГц |
| Шина AXI ядра | до 400 МГц | то же |
| Шины AHB и APB | до 200 МГц | то же |
Флеш-памяти, а значит и таблицы её тактов ожидания, у STM32N6 нет. На частоте ядра до 600 МГц основная TCM работает без тактов ожидания, а расширенная Flex-TCM — с одним (DS14791, табл. 25). Все исполнения в данных ST — с окончанием Q или QG, то есть со встроенным понижающим преобразователем SMPS (разд. 7); его выводы VDDSMPS, VLXSMPS, VSSSMPS и VFBSMPS есть в каждом корпусе. Режимы низкого потребления — Sleep, Stop и Standby (разд. 2).
Загрузка без внутренней флеш-памяти
После любого сброса первым выполняется код BootROM в ПЗУ. Режим загрузки задают выводы BOOT0 и BOOT1, слово однократно программируемой памяти OTP (RM0486, 9.1) и, по даташиту, ещё один резервный регистр блока TAMP (DS14791, 3.6). BOOT0 — отдельный шарик корпуса, его уровень защёлкивается при выходе из сброса. BOOT1 по умолчанию берётся с линии PA6, но его можно перенести на другую линию битами dev_boot_port и dev_boot_pin в слове OTP 19; на плате оба вывода должны быть доступны (RM0486, 9.1). Режимы (RM0486, табл. 32):
| BOOT0 | BOOT1 | Режим | Что делает BootROM |
|---|---|---|---|
| любой | 1 | Development boot | защищённым способом открывает отладку и останавливается в бесконечном цикле; режим доступен, только пока микроконтроллер в состоянии разработки |
| 0 | 0 | Flash boot | загружает программу из внешней памяти: NOR-флеш на XSPI (SPI, одна линия данных), HyperFlash на XSPI (8 бит), e.MMC на SDMMC1 или SDMMC2, SD-карта на SDMMC1; источник задаёт поле boot_source в слове OTP 11, по умолчанию — NOR-флеш |
| 1 | 0 | Serial boot | принимает образ по USB 2.0 OTG HS или по UART — USART1, USART2 или UART4 |
Отдельные последовательные интерфейсы можно отключить битами boot_source_disable в том же слове OTP 11 (RM0486, 9.1.2). При выходе из Standby с сохранением SRAM BootROM не выполняется: ядро стартует с адреса, заданного в регистрах SYSCFG (RM0486, 9.2). Код в ПЗУ — корень доверия при защищённой установке прошивки: он расшифровывает и проверяет подлинность обновляемого корня доверия заказчика (uRoT), то есть служит основой защищённой загрузки (DS14791, с. 1; RM0486, 9.1.3). В AN2606 Rev 70 раздела о STM32N6 нет: последовательную загрузку здесь выполняет сам BootROM.
Корпуса VFBGA
STM32N6 выпускается в шести корпусах VFBGA (DS14791, табл. 2–5); буква после номера линейки в заказном номере задаёт корпус: Z — 142, A — 169, I — 178, B — 198, L — 223, X — 264 шарика (разд. 7).
| Корпус | Размер | Шаг шариков | Линий ввода-вывода |
|---|---|---|---|
| VFBGA142 | 8 × 8 мм | 0,5 мм | 75 |
| VFBGA169 | 6 × 6 мм | 0,4 мм | 90 |
| VFBGA178 | 12 × 12 мм | 0,8 мм | 106 |
| VFBGA198 | 10 × 10 мм | 0,65 мм | 126 |
| VFBGA223 | 10 × 10 мм | 0,5 мм | 144 |
| VFBGA264 | 14 × 14 мм | 0,8 мм | 165 |
В базе ST и в атласе есть ещё корпус VFBGA169GP. Это не опечатка: так ST называет второй вариант расположения шариков в корпусе VFBGA169 — рис. 9 даташита «VFBGA169GP ballout» и отдельный столбец в таблице выводов (DS14791). Он у исполнений с окончанием QG, которое расшифровано как «встроенный SMPS и конфигурация GP» (разд. 7), например STM32N657A0H3QG. В даташите для обоих вариантов указано 90 линий ввода-вывода (табл. 2–5), а по данным ST в GP их 104; на странице микроконтроллера показан счёт по базе. Набор выводов в GP другой (по данным ST и DS14791, табл. 2): нет второго контроллера USB OTG HS, Ethernet, FMC, SPI4, третьего FDCAN, USART6 и USART10, зато появились порты PO0–PO5 и PP0–PP15, USART2, I²C1, SDMMC1 и SDMMC2, а на шарики выведены домены питания портов VDDIO2 и VDDIO5.
Выводы STM32N6: альтернативные функции
У каждой линии порта мультиплексор на шестнадцать функций: номер AF0–AF15 записывают в регистры GPIOx_AFRL и GPIOx_AFRH. Во время сброса и сразу после него альтернативные функции не активны, а большинство линий находится в аналоговом режиме (RM0486, раздел GPIO). В данных ST у STM32N6 встречаются все номера до AF15. Для внешней памяти по данным ST есть три интерфейса XSPI во всех корпусах и контроллер FMC — во всех, кроме VFBGA142 и VFBGA169GP, а шифровать и расшифровывать внешнюю память на лету у N655 и N657 умеет блок MCE (DS14791, с. 2 и табл. 4–5).
Все STM32N6 по корпусам
STM32N645 — Cortex-M55, до 800 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32N645A0 | VFBGA169 | — | 4200 КБ | 90 |
| STM32N645A0 | VFBGA169GP | — | 4200 КБ | 104 |
| STM32N645B0 | VFBGA198 | — | 4200 КБ | 126 |
| STM32N645I0 | VFBGA178 | — | 4200 КБ | 106 |
| STM32N645L0 | VFBGA223 | — | 4200 КБ | 144 |
| STM32N645X0 | VFBGA264 | — | 4200 КБ | 165 |
| STM32N645Z0 | VFBGA142 | — | 4200 КБ | 75 |
STM32N647 — Cortex-M55, до 800 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32N647A0 | VFBGA169 | — | 4200 КБ | 90 |
| STM32N647A0 | VFBGA169GP | — | 4200 КБ | 104 |
| STM32N647B0 | VFBGA198 | — | 4200 КБ | 126 |
| STM32N647I0 | VFBGA178 | — | 4200 КБ | 106 |
| STM32N647L0 | VFBGA223 | — | 4200 КБ | 144 |
| STM32N647X0 | VFBGA264 | — | 4200 КБ | 165 |
| STM32N647Z0 | VFBGA142 | — | 4200 КБ | 75 |
STM32N655 — Cortex-M55, до 800 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32N655A0 | VFBGA169 | — | 4200 КБ | 90 |
| STM32N655A0 | VFBGA169GP | — | 4200 КБ | 104 |
| STM32N655B0 | VFBGA198 | — | 4200 КБ | 126 |
| STM32N655I0 | VFBGA178 | — | 4200 КБ | 106 |
| STM32N655L0 | VFBGA223 | — | 4200 КБ | 144 |
| STM32N655X0 | VFBGA264 | — | 4200 КБ | 165 |
| STM32N655Z0 | VFBGA142 | — | 4200 КБ | 75 |
STM32N657 — Cortex-M55, до 800 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32N657A0 | VFBGA169 | — | 4200 КБ | 90 |
| STM32N657A0 | VFBGA169GP | — | 4200 КБ | 104 |
| STM32N657B0 | VFBGA198 | — | 4200 КБ | 126 |
| STM32N657I0 | VFBGA178 | — | 4200 КБ | 106 |
| STM32N657L0 | VFBGA223 | — | 4200 КБ | 144 |
| STM32N657X0 | VFBGA264 | — | 4200 КБ | 165 |
| STM32N657Z0 | VFBGA142 | — | 4200 КБ | 75 |
Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах, токи, номиналы внешних компонентов SMPS и правила разводки корпусов с шагом шариков 0,4–0,8 мм. Исполнения в корпусах VFBGA169 и VFBGA169GP отличаются расположением шариков и набором периферии, поэтому у каждого из них своя страница со схемой корпуса.
Частые вопросы
Где у STM32N6 флеш-память?
Встроенной флеш-памяти нет: в заказном номере на её месте цифра 0, что ST расшифровывает как «0–1 Kbytes» (DS14791, разд. 7). После сброса первым выполняется код BootROM в ПЗУ, который загружает программу из внешней памяти — NOR-флеш на XSPI, HyperFlash, e.MMC или SD-карты — либо принимает её по USB или UART (RM0486, 9.1).
Чем STM32N657 отличается от N647, N655 и N645?
Последняя цифра — нейроускоритель: Neural-ART есть у N647 и N657 (линейка N6x7) и нет у N645 и N655 (N6x5). Предпоследняя — криптография: SAES, CRYP, PKA и шифрование внешней памяти MCE есть у N655 и N657 и нет у N645 и N647 (DS14791, табл. 2–5 и разд. 7). Ядро, память, корпуса и остальная периферия у всех четырёх общие.
Как загрузить программу в STM32N6 без внешней флеш-памяти?
Через последовательную загрузку: при BOOT0 = 1 и BOOT1 = 0 BootROM принимает образ по USB 2.0 OTG HS или по UART — USART1, USART2 или UART4 (RM0486, 9.1.2 и табл. 32). BOOT0 — отдельный шарик корпуса, BOOT1 по умолчанию — линия PA6. По данным ST сигналов USART2 в корпусах VFBGA142 и VFBGA169 нет. Своей энергонезависимой памяти для программы у STM32N6 нет, поэтому принятый так образ после выключения питания нужно загружать снова, а постоянную прошивку держат во внешней памяти. При BOOT1 = 1 включается отладочный режим, но только пока микроконтроллер в состоянии разработки.
Что такое корпус VFBGA169GP?
Второй вариант расположения шариков корпуса VFBGA169 размером 6 × 6 мм. Даташит так его и называет — рис. 9 «VFBGA169GP ballout», а в таблице выводов у него отдельный столбец (DS14791). Этот вариант у исполнений с окончанием QG: «встроенный SMPS и конфигурация GP» (разд. 7), например STM32N657A0H3QG. По данным ST в нём 104 линии ввода-вывода против 90 у обычного VFBGA169, хотя в даташите для обоих вариантов указано 90 (табл. 2–5); нет второго USB OTG HS, Ethernet, FMC и SPI4, FDCAN два вместо трёх, зато есть порты PO и PP.
На какой частоте работает STM32N6?
Ядро Cortex-M55 — до 600 МГц при обычном напряжении ядра (VOS low) и до 800 МГц в режиме overdrive (VOS high). Нейроускоритель — до 800 МГц и до 1000 МГц в overdrive. Шина AXI ядра работает до 400 МГц, шины AHB и APB — до 200 МГц (DS14791, табл. 25).
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- STM32H5Cortex-M33 до 250 МГц с TrustZone: от H503 до H5F5 — память, VOS0–VOS3, жизненный цикл, загрузка и распиновки
- STM32U5Cortex-M33 до 160 МГц с TrustZone и SMPS: от U535 до U5G9 — память, питание, загрузка и распиновки
- USB OTGUSB-контроллер, работающий устройством и хостом: HNP, SRP, ESP32-S2/S3
- OTP-памятьОднократно программируемая память: ключи, настройки, необратимые биты
- Безопасная загрузкаЗапуск только подписанной прошивки: подпись, ключи в OTP, откат версий
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD