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

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 МБ.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32N645Cortex-M55, до 800 МГц—4200 КБVFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, HASH, RNG, LPTIM, LPUART
STM32N647Cortex-M55, до 800 МГц—4200 КБVFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, HASH, RNG, LPTIM, LPUART
STM32N655Cortex-M55, до 800 МГц—4200 КБVFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264USB OTG HS, UCPD, FDCAN, Ethernet, FMC, I²S, SAI, SPDIF-RX, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM, LPUART
STM32N657Cortex-M55, до 800 МГц—4200 КБVFBGA142, VFBGA169, VFBGA169GP, VFBGA178, VFBGA198, VFBGA223, VFBGA264USB 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-ARTSAES, 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):

БлокОбъёмОсобенность
AXISRAM1624 КБосновное ОЗУ
AXISRAM21024 КБосновное ОЗУ
FLEXRAMдо 400 КБможно отдать ядру как TCM; 80 КБ сохраняются в Standby
AXISRAM3–AXISRAM6по 448 КБдомен NPU
AXISRAM7256 КБу N6x7 после включения становится кэшем Neural-ART
AHBSRAM1, AHBSRAM2по 16 КБдля обмена с периферией через DMA
VENCRAM (AXISRAM8)128 КБпамять кодера, если он не используется — обычное ОЗУ
BKPSRAM8 КБсохраняется при питании от 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):

BOOT0BOOT1РежимЧто делает BootROM
любой1Development bootзащищённым способом открывает отладку и останавливается в бесконечном цикле; режим доступен, только пока микроконтроллер в состоянии разработки
00Flash bootзагружает программу из внешней памяти: NOR-флеш на XSPI (SPI, одна линия данных), HyperFlash на XSPI (8 бит), e.MMC на SDMMC1 или SDMMC2, SD-карта на SDMMC1; источник задаёт поле boot_source в слове OTP 11, по умолчанию — NOR-флеш
10Serial 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).

КорпусРазмерШаг шариковЛиний ввода-вывода
VFBGA1428 × 8 мм0,5 мм75
VFBGA1696 × 6 мм0,4 мм90
VFBGA17812 × 12 мм0,8 мм106
VFBGA19810 × 10 мм0,65 мм126
VFBGA22310 × 10 мм0,5 мм144
VFBGA26414 × 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 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32N645A0VFBGA169—4200 КБ90
STM32N645A0VFBGA169GP—4200 КБ104
STM32N645B0VFBGA198—4200 КБ126
STM32N645I0VFBGA178—4200 КБ106
STM32N645L0VFBGA223—4200 КБ144
STM32N645X0VFBGA264—4200 КБ165
STM32N645Z0VFBGA142—4200 КБ75

STM32N647 — Cortex-M55, до 800 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32N647A0VFBGA169—4200 КБ90
STM32N647A0VFBGA169GP—4200 КБ104
STM32N647B0VFBGA198—4200 КБ126
STM32N647I0VFBGA178—4200 КБ106
STM32N647L0VFBGA223—4200 КБ144
STM32N647X0VFBGA264—4200 КБ165
STM32N647Z0VFBGA142—4200 КБ75

STM32N655 — Cortex-M55, до 800 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32N655A0VFBGA169—4200 КБ90
STM32N655A0VFBGA169GP—4200 КБ104
STM32N655B0VFBGA198—4200 КБ126
STM32N655I0VFBGA178—4200 КБ106
STM32N655L0VFBGA223—4200 КБ144
STM32N655X0VFBGA264—4200 КБ165
STM32N655Z0VFBGA142—4200 КБ75

STM32N657 — Cortex-M55, до 800 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32N657A0VFBGA169—4200 КБ90
STM32N657A0VFBGA169GP—4200 КБ104
STM32N657B0VFBGA198—4200 КБ126
STM32N657I0VFBGA178—4200 КБ106
STM32N657L0VFBGA223—4200 КБ144
STM32N657X0VFBGA264—4200 КБ165
STM32N657Z0VFBGA142—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).