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

STM32F7: микроконтроллеры на Cortex-M7 до 216 МГц

STM32F7 — семейство STM32 на ядре Cortex-M7 с частотой до 216 МГц, кешами инструкций и данных и памятью, связанной с ядром (TCM). По выводам и периферии оно продолжает STM32F4: тот же мультиплексор AF0–AF15, Ethernet, USB OTG, контроллер дисплея. Здесь — сравнение линеек и страницы с распиновкой каждого микроконтроллера в каждом корпусе.

STM32F7 — семейство микроконтроллеров STMicroelectronics на ядре Arm Cortex-M7 с блоком вычислений с плавающей точкой, кешами инструкций и данных и частотой до 216 МГц. По выводам и составу периферии оно продолжает STM32F4: Ethernet, USB OTG FS и HS, контроллер TFT-дисплея LTDC, SDMMC, SAI, QUADSPI. В разделе 92 страницы для 125 исполнений в 13 корпусах, 16 линеек: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.

Линейки STM32F7

Значения в таблице собраны из записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32F722Cortex-M7, до 216 МГц256 КБ – 512 КБ192 КБLQFP64, LQFP100, LQFP144, LQFP176, UFBGA176USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, RNG, LPTIM
STM32F723Cortex-M7, до 216 МГц256 КБ – 512 КБ192 КБLQFP100, LQFP144, LQFP176, UFBGA144, UFBGA176, VQFPN68, WLCSP100USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, AES, RNG, LPTIM
STM32F730 Value LineCortex-M7, до 216 МГц64 КБ192 КБLQFP64, LQFP100, LQFP144, UFBGA176USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, AES, RNG, LPTIM
STM32F732Cortex-M7, до 216 МГц512 КБ192 КБLQFP64, LQFP100, LQFP144, LQFP176, UFBGA176USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, AES, RNG, LPTIM
STM32F733Cortex-M7, до 216 МГц512 КБ192 КБLQFP100, LQFP144, LQFP176, UFBGA144, UFBGA176, WLCSP100USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, AES, RNG, LPTIM
STM32F745Cortex-M7, до 216 МГц512 КБ – 1 МБ320 КБLQFP100, LQFP144, LQFP176, TFBGA100, UFBGA176USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DCMI, DMA2D, RNG, LPTIM
STM32F746Cortex-M7, до 216 МГц512 КБ – 1 МБ320 КБLQFP100, LQFP144, LQFP176, LQFP208, TFBGA100, TFBGA216, UFBGA176, WLCSP143USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DCMI, LTDC, DMA2D, RNG, LPTIM
STM32F750 Value LineCortex-M7, до 216 МГц64 КБ320 КБLQFP100, LQFP144, TFBGA216USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM
STM32F756Cortex-M7, до 216 МГц1 МБ320 КБLQFP100, LQFP144, LQFP176, LQFP208, TFBGA100, TFBGA216, UFBGA176, WLCSP143USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM
STM32F765Cortex-M7, до 216 МГц1 МБ – 2 МБ384 КБLQFP100, LQFP144, LQFP176, LQFP208, TFBGA100, TFBGA216, UFBGA176USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, DMA2D, RNG, LPTIM
STM32F767Cortex-M7, до 216 МГц1 МБ – 2 МБ384 КБLQFP100, LQFP144, LQFP176, LQFP208, TFBGA100, TFBGA216, UFBGA176USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DMA2D, RNG, LPTIM
STM32F768Cortex-M7, до 216 МГц2 МБ384 КБWLCSP180USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DSI, DMA2D, RNG, LPTIM
STM32F769Cortex-M7, до 216 МГц1 МБ – 2 МБ384 КБLQFP176, LQFP208, TFBGA216, WLCSP180USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DSI, DMA2D, RNG, LPTIM
STM32F777Cortex-M7, до 216 МГц2 МБ384 КБLQFP100, LQFP144, LQFP176, LQFP208, TFBGA100, TFBGA216, UFBGA176USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DMA2D, CRYP, HASH, RNG, LPTIM
STM32F778Cortex-M7, до 216 МГц2 МБ384 КБWLCSP180USB OTG FS, USB OTG HS, CAN, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DSI, DMA2D, CRYP, HASH, RNG, LPTIM
STM32F779Cortex-M7, до 216 МГц2 МБ384 КБLQFP176, LQFP208, TFBGA216, WLCSP180USB OTG FS, USB OTG HS, CAN, Ethernet, FMC, QUADSPI, DAC, I²S, SAI, SPDIF-RX, HDMI-CEC, DFSDM, DCMI, LTDC, DSI, DMA2D, CRYP, HASH, RNG, LPTIM

Семейство описывают три reference manual: RM0431 — STM32F72x и F73x, RM0385 — STM32F74x и F75x, RM0410 — STM32F76x и F77x. По ним и по данным ST:

  • STM32F72x/F73x — до 512 КБ флеш-памяти и 256 КБ ОЗУ, без Ethernet и LTDC; у STM32F7x3 — встроенный физический уровень USB High Speed, которым управляет блок USBPHYC (RM0431, разд. 33).
  • STM32F74x/F75x — до 1 МБ флеш-памяти и 320 КБ ОЗУ, Ethernet; контроллер TFT-дисплея LTDC — у F746 и F756.
  • STM32F76x/F77x — до 2 МБ флеш-памяти, которую можно разделить на два банка (RM0410, раздел FLASH), и 512 КБ ОЗУ; у STM32F768A, F769, F778A и F779 — хост MIPI DSI для дисплеев.
  • STM32F730 и STM32F750 — Value line с 64 КБ флеш-памяти: программу держат во внешней памяти на QUADSPI или FMC.

Память: TCM и кеши

Ядро Cortex-M7 подключает часть ОЗУ напрямую, минуя шинную матрицу (RM0385, 2.3):

ПамятьSTM32F72x/F73xSTM32F74x/F75xSTM32F76x/F77x
Системная SRAM, всегодо 256 КБдо 320 КБдо 512 КБ
в том числе DTCM-RAM (0x2000 0000)64 КБ64 КБ128 КБ
ITCM-RAM (0x0000 0000)16 КБ16 КБ16 КБ
Резервная SRAM4 КБ4 КБ4 КБ

В записях базы ST, а значит и в таблицах раздела, объём ОЗУ у STM32F72x/F73x и F76x/F77x указан без DTCM (192 и 384 КБ), а у STM32F74x/F75x — вместе с ней (320 КБ).

DTCM и ITCM работают на частоте ядра без тактов ожидания: в DTCM обычно кладут стек и данные, к которым часто обращается программа, в ITCM — критичные по времени обработчики. Флеш-память доступна по двум адресам: через интерфейс ITCM (0x0020 0000) с ускорителем ART и через шину AXI (0x0800 0000) с кешами L1 ядра. При работе DMA с обычной SRAM, которая попадает в кеш данных, нужно следить за его согласованностью — чистить или отключать кеширование для буферов.

Тактирование и питание

После сброса STM32F7 работает от внутреннего генератора HSI на 16 МГц. Напряжение ядра от встроенного стабилизатора можно понижать (масштабы Scale 1–3) ради экономии; без режима over-drive стабилизатора частота ядра ограничена 180 МГц, с ним — 216 МГц. Over-drive недоступен при питании от 1,8 до 2,1 В (RM0385, 3.3.2 и 4.1.4). Шина APB2 работает не быстрее 108 МГц, APB1 — не быстрее 54 МГц (RM0385, RCC_CFGR). Питание — от 1,8 до 3,6 В (RM0385, 4.1). Делители таймеров, скорость UART и параметры бита CAN от выбранных частот считают калькулятор таймера, калькулятор UART и калькулятор CAN.

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

У каждой линии порта мультиплексор на шестнадцать функций: номер AF0–AF15 записывают в регистры GPIOx_AFRL (линии 0–7) и GPIOx_AFRH (линии 8–15), режим альтернативной функции включают в GPIOx_MODER (RM0385, раздел GPIO). В данных ST у STM32F7 встречаются номера до AF14.

Вместо пары BOOT0/BOOT1 у STM32F7 один вывод BOOT и два адреса в байтах опций (RM0385, табл. 2):

BOOTАдрес стартаЗаводское значение
0BOOT_ADD0флеш-память на ITCM, 0x0020 0000
1BOOT_ADD1системная память с загрузчиком, 0x0010 0000

В BOOT_ADD0 и BOOT_ADD1 можно записать любой адрес флеш-памяти или ОЗУ — например, чтобы стартовать из ITCM-RAM. Загрузчик программирует флеш-память через USART1 и USART3, I²C1–I²C3, SPI1, SPI2 и SPI4, CAN (CAN1 у F72x/F73x, CAN2 у старших линеек) и USB в режиме DFU (AN2606, табл. 97, 101 и 103).

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

STM32F722 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F722IC, STM32F722IEUFBGA176256 КБ / 512 КБ192 КБ140
STM32F722IC, STM32F722IELQFP176256 КБ / 512 КБ192 КБ140
STM32F722RC, STM32F722RELQFP64256 КБ / 512 КБ192 КБ50
STM32F722VC, STM32F722VELQFP100256 КБ / 512 КБ192 КБ82
STM32F722ZC, STM32F722ZELQFP144256 КБ / 512 КБ192 КБ114

STM32F723 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F723IC, STM32F723IEUFBGA176256 КБ / 512 КБ192 КБ138
STM32F723IC, STM32F723IELQFP176256 КБ / 512 КБ192 КБ138
STM32F723RCVQFPN68256 КБ192 КБ51
STM32F723REVQFPN68512 КБ192 КБ51
STM32F723VC, STM32F723VELQFP100256 КБ / 512 КБ192 КБ79
STM32F723VC, STM32F723VEWLCSP100256 КБ / 512 КБ192 КБ79
STM32F723ZC, STM32F723ZEUFBGA144256 КБ / 512 КБ192 КБ112
STM32F723ZC, STM32F723ZELQFP144256 КБ / 512 КБ192 КБ112

STM32F730 Value Line — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F730I8UFBGA17664 КБ192 КБ138
STM32F730R8LQFP6464 КБ192 КБ50
STM32F730V8LQFP10064 КБ192 КБ82
STM32F730Z8LQFP14464 КБ192 КБ112

STM32F732 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F732IEUFBGA176512 КБ192 КБ140
STM32F732IELQFP176512 КБ192 КБ140
STM32F732RELQFP64512 КБ192 КБ50
STM32F732VELQFP100512 КБ192 КБ82
STM32F732ZELQFP144512 КБ192 КБ114

STM32F733 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F733IEUFBGA176512 КБ192 КБ138
STM32F733IELQFP176512 КБ192 КБ138
STM32F733VELQFP100512 КБ192 КБ79
STM32F733VEWLCSP100512 КБ192 КБ79
STM32F733ZEUFBGA144512 КБ192 КБ112
STM32F733ZELQFP144512 КБ192 КБ112

STM32F745 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F745IE, STM32F745IGUFBGA176512 КБ / 1 МБ320 КБ140
STM32F745IE, STM32F745IGLQFP176512 КБ / 1 МБ320 КБ140
STM32F745VE, STM32F745VGTFBGA100512 КБ / 1 МБ320 КБ82
STM32F745VE, STM32F745VGLQFP100512 КБ / 1 МБ320 КБ82
STM32F745ZE, STM32F745ZGLQFP144512 КБ / 1 МБ320 КБ114

STM32F746 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F746BE, STM32F746BGLQFP208512 КБ / 1 МБ320 КБ168
STM32F746IE, STM32F746IGUFBGA176512 КБ / 1 МБ320 КБ140
STM32F746IELQFP176512 КБ320 КБ140
STM32F746IGLQFP1761 МБ320 КБ140
STM32F746NETFBGA216512 КБ320 КБ168
STM32F746NGTFBGA2161 МБ320 КБ168
STM32F746VE, STM32F746VGTFBGA100512 КБ / 1 МБ320 КБ82
STM32F746VELQFP100512 КБ320 КБ82
STM32F746VGLQFP1001 МБ320 КБ82
STM32F746ZELQFP144512 КБ320 КБ114
STM32F746ZE, STM32F746ZGWLCSP143512 КБ / 1 МБ320 КБ114
STM32F746ZGLQFP1441 МБ320 КБ114

STM32F750 Value Line — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F750N8TFBGA21664 КБ320 КБ168
STM32F750V8LQFP10064 КБ320 КБ82
STM32F750Z8LQFP14464 КБ320 КБ114

STM32F756 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F756BGLQFP2081 МБ320 КБ168
STM32F756IGUFBGA1761 МБ320 КБ140
STM32F756IGLQFP1761 МБ320 КБ140
STM32F756NGTFBGA2161 МБ320 КБ168
STM32F756VGTFBGA1001 МБ320 КБ82
STM32F756VGLQFP1001 МБ320 КБ82
STM32F756ZGLQFP1441 МБ320 КБ114
STM32F756ZGWLCSP1431 МБ320 КБ114

STM32F765 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F765BG, STM32F765BILQFP2081 МБ / 2 МБ384 КБ168
STM32F765IG, STM32F765IIUFBGA1761 МБ / 2 МБ384 КБ140
STM32F765IG, STM32F765IILQFP1761 МБ / 2 МБ384 КБ140
STM32F765NG, STM32F765NITFBGA2161 МБ / 2 МБ384 КБ168
STM32F765VG, STM32F765VITFBGA1001 МБ / 2 МБ384 КБ82
STM32F765VG, STM32F765VILQFP1001 МБ / 2 МБ384 КБ82
STM32F765ZG, STM32F765ZILQFP1441 МБ / 2 МБ384 КБ114

STM32F767 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F767BG, STM32F767BILQFP2081 МБ / 2 МБ384 КБ168
STM32F767IG, STM32F767IIUFBGA1761 МБ / 2 МБ384 КБ140
STM32F767IG, STM32F767IILQFP1761 МБ / 2 МБ384 КБ140
STM32F767NG, STM32F767NITFBGA2161 МБ / 2 МБ384 КБ168
STM32F767VGTFBGA1001 МБ384 КБ82
STM32F767VGLQFP1001 МБ384 КБ82
STM32F767VITFBGA1002 МБ384 КБ82
STM32F767VILQFP1002 МБ384 КБ82
STM32F767ZGLQFP1441 МБ384 КБ114
STM32F767ZILQFP1442 МБ384 КБ114

STM32F768 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F768AIWLCSP1802 МБ384 КБ128

STM32F769 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F769AG, STM32F769AIWLCSP1801 МБ / 2 МБ384 КБ128
STM32F769BG, STM32F769BILQFP2081 МБ / 2 МБ384 КБ159
STM32F769IGLQFP1761 МБ384 КБ131
STM32F769IILQFP1762 МБ384 КБ131
STM32F769NGTFBGA2161 МБ384 КБ159
STM32F769NITFBGA2162 МБ384 КБ159

STM32F777 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F777BILQFP2082 МБ384 КБ168
STM32F777IIUFBGA1762 МБ384 КБ140
STM32F777IILQFP1762 МБ384 КБ140
STM32F777NITFBGA2162 МБ384 КБ168
STM32F777VITFBGA1002 МБ384 КБ82
STM32F777VILQFP1002 МБ384 КБ82
STM32F777ZILQFP1442 МБ384 КБ114

STM32F778 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F778AIWLCSP1802 МБ384 КБ128

STM32F779 — Cortex-M7, до 216 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F779AIWLCSP1802 МБ384 КБ128
STM32F779BILQFP2082 МБ384 КБ159
STM32F779IILQFP1762 МБ384 КБ131
STM32F779NITFBGA2162 МБ384 КБ159

Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах (толерантные к 5 В помечены FT), токи, номиналы конденсаторов VCAP и других внешних компонентов.

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

Чем STM32F7 отличается от STM32F4?

Ядром Cortex-M7 вместо Cortex-M4: у него кеши инструкций и данных и память TCM, которая работает на частоте ядра без тактов ожидания. Частота — до 216 МГц против 180 МГц у старших STM32F4. Мультиплексор альтернативных функций AF0–AF15 и многие периферийные блоки похожи, поэтому выводы во многом совпадают, но часть блоков устроена иначе: например, тайминги I²C у STM32F7 задаёт регистр I2C_TIMINGR (RM0385, раздел I2C).

Что такое DTCM и ITCM у STM32F7?

Память, подключённая к ядру напрямую, минуя шинную матрицу. ITCM-RAM — 16 КБ для кода по адресу 0x0000 0000, DTCM-RAM — 64 КБ у STM32F74x/75x и F72x/73x и 128 КБ у F76x/77x для данных по адресу 0x2000 0000; обе работают на частоте ядра без ожидания (RM0385, RM0410, RM0431, раздел Embedded SRAM). Туда кладут стек, часто используемые данные и критичные по времени обработчики.

Как у STM32F7 получить 216 МГц?

Включить режим over-drive стабилизатора: без него частота ядра ограничена 180 МГц, с ним — 216 МГц. При питании 1,8–2,1 В over-drive недоступен (RM0385, 3.3.2). Шину APB2 при этом делят до 108 МГц, APB1 — до 54 МГц.

Чем STM32F730 и STM32F750 отличаются от остальных?

Это линейки Value line с флеш-памятью всего 64 КБ (у F750 — два сектора по 32 КБ, RM0385, табл. 4). Их рассчитывают на то, что программа хранится во внешней памяти: QUADSPI или FMC, а во внутренней флеш-памяти живёт загрузчик.

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

Подать BOOT = 1 при сбросе: тогда ядро стартует с адреса из байта опций BOOT_ADD1, а заводское значение там — системная память с загрузчиком (RM0385, табл. 2). Загрузчик работает через USART1 и USART3, I²C1–I²C3, SPI1, SPI2, SPI4, CAN и USB в режиме DFU (AN2606, табл. 97–103).