Микроконтроллер STM32F407: особенности, технические характеристики, проект разработки

В области встраиваемых систем микроконтроллеры, как ключевые компоненты, играют важную роль в таких сценариях, как автоматическое управление, Интернет вещей и промышленные приложения. STM32F407, выпущенный компанией ST, представляет собой высокопроизводительный 32-разрядный микроконтроллер с низким энергопотреблением, который привлек внимание рынка благодаря своим превосходным функциям и простоте использования. В этой статье мы подробно рассмотрим особенности, технические характеристики, области применения и среду разработки STM32F407.

О STM32F407

Серия микросхем STM32F407 — это высокопроизводительные микроконтроллеры, выпущенные компанией STMicroelectronics на базе ядра ARM Cortex™-M4. В них используется 90-нанометровый процесс NVM и технология ART (Adaptive Real-Time Memory Accelerator™).

Особенности STM32F407

STM32F407 основан на ядре ARM Cortex-M4, имеет инструкции DSP и блок с плавающей запятой (FPU), а также тактовую частоту до 168 МГц. Вот его основные характеристики:

  • Высокая производительность

Оснащен 32-разрядным ядром Cortex-M4, которое поддерживает операции с плавающей запятой и низкую задержку тактового цикла, что обеспечивает высокую скорость вычислений.

  • Низкое энергопотребление

Технология динамической регулировки напряжения используется для переключения между различными режимами энергопотребления и снижения энергопотребления системы.

  • Несколько конфигураций памяти

До 1 МБ флэш-памяти и 192 КБ ОЗУ для удовлетворения требований к объему памяти различных приложений.

  • Мощная поддержка периферийных устройств

STM32F407 имеет богатый набор интерфейсов связи, таких как SPI, I2C, UART и т. д.; он поддерживает до 3 12-разрядных АЦП, 2 ЦАП и таймеры высокого разрешения.

  • Безопасность и надежность

Встроенный аппаратный модуль CRC обеспечивает функцию обнаружения ошибок контрольной суммы в режиме реального времени; таймер Watchdog может контролировать состояние работы системы и предотвращать программные тупики.

Технические характеристики STM32F407

SpecificationDetails
MCU ModelSTM32F407ZGT6
Flash Memory1MB
Clock FrequencyUp to 168MHz
ADCThree 12-bit
DACTwo 12-bit
DMATwo DMA controllers
TimersUp to 17 timers
GPIOUp to 120 configurable GPIO pins
InterfacesBuilt-in I2C, SPI, USART, I2S, CAN, and SDIO communication interfaces

Применение STM32F407

Благодаря своей гибкости и простой масштабируемости, STM32F407 широко используется в различных интеллектуальных сценариях, включая, но не ограничиваясь:

  • Устройства Интернета вещей (IoT)

Низкое энергопотребление STM32F407 делает его подходящим в качестве основного процессора для устройств IoT, таких как датчики и контроллеры.

  • Промышленная автоматизация

В таких областях, как станки с ЧПУ и промышленные роботы, STM32F407 может отвечать за управление системой, сбор и обработку данных, а также связь с периферийными устройствами.

  • Потребительская электроника

STM32F407 может использоваться в бытовой электронике, например в умных домах и носимых устройствах, для удовлетворения требований потребителей к производительности и энергопотреблению.

Ресурсы для разработки на базе STM32F407

Для облегчения работы разработчиков ST предоставляет богатый набор ресурсов для разработки и инструментальную поддержку, в том числе:

  • платы для разработки серий Discovery и Nucleo
  • Интегрированные среды разработки (IDE), такие как Keil uVision и IAR
  • JLINK, CMSIS-DAP, ULINK или отладчик STLINK
  • Комплект для разработки программного обеспечения STM32CubeF4 на основе библиотеки HAL/HLL

Эти ресурсы помогают упростить процесс разработки, сократить цикл разработки и позволяют разработчикам получать техническую поддержку, обмениваться опытом и изучать ресурсы.

Библиотека HAL

Библиотека HAL (Hardware Abstraction Layer) — это пакет драйверов периферийных устройств для STM32F407. Файл с кодом находится по пути:\Drivers\STM32F4xx_HAL_Driver.

An Example of STM32F4xx HAL Library
An Example of STM32F4xx HAL Library

CMSIS

CMSIS (Cortex Microcontroller Software Interface Standard) — это пакет драйверов, официально разработанный компанией ARM. Блок-схема выглядит следующим образом:

Overview
Структура CMSIS (Изображение предоставлено Keil)

С помощью этого пакета программного обеспечения CMSIS компания ARM планирует унифицировать периферийные драйверы, цифровую обработку сигналов DSP, загрузчики и API различных основных RTOS от разных производителей микросхем.

STM32CubeMX — это графическое программное обеспечение для разработки, выпущенное компанией ST в 2014 году, чтобы облегчить пользователям настройку тактовых генераторов, периферийных устройств, выводов, RTOS и различного промежуточного программного обеспечения. Блок-схема выглядит следующим образом:

Open the STM32CubeMX

С помощью этого графического программного обеспечения вы можете легко генерировать инженерный код и поддерживать компиляторы, такие как MDK, IAR и TrueSTUDIO.

Проект платы разработчика STM32F407

В этом эксперименте по разработке мы используем библиотеку HAL для зажигания светодиода или создания светодиодной подсветки.

Шаг 1: Откройте STM32CubeMX, найдите вывод, соответствующий светодиоду, и настройте его как вывод GPIO.

Configure LED's pin as GPIO output in STM32CubeMX
Configure LED's pin as GPIO output in STM32CubeMX

Шаг 2: Выберите Serial Wire в SYS. Только если он выбран, последующие проекты могут быть нормально записаны с помощью st-link.

Select Serial Wire Debug in SYS Mode and Configuration
Select Serial Wire Debug in SYS Mode and Configuration

Шаг 3: Включите внешний тактовый генератор и настройте его на максимальную частоту 407 168 МГц.

Select High Speed Clock (HSE) in RCC Mode and Configuration
Select High Speed Clock (HSE) in RCC Mode and Configuration

Шаг 4: Сгенерируйте инженерный код.

Generate Code for STM32F407 Project in STM32CubeMX
Generate Code for STM32F407 Project in STM32CubeMX

Сгенерированный код показан ниже, а конфигурации выводов и тактовых генераторов настроены.

				
					void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct= {0}:

/*GPIO Ports Clock Enable */
_ _HAL_RCC_GPIOF_CLK_ENABLE():
_ _HAL_RCC GPIOH_CLK_ENABLE():
_ _HAL RCC GPIOA CLK_ENABLE():

/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET):
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET):

/*Configure GPIO pins:PF9 PF10 */
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10:
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP:
GPIO_InitStruct.Pul1 =GPIO_NOPULL:
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW:
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct):

/*EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0):
HAL NVIC_EnableIRQ(EXTI2_IRQn):
HAL_NVIC_SetPriority(EXTI3_IRQn, 0, 0):
HAL_NVIC_EnableIRQ(EXTI3_IRQn):
HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0):
HAL_NVIC_EnableIRQ(EXTI4_IRQn):

}
				
			

Затем напишите программу для управления светодиодной лампой в while(1) основной функции.

				
					while (1)
{
/* USER CODE END WHILE */

//Light up the LED
//HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10|GPIO_PIN_9, GPIO_PIN_RESET);

{
//LED flashes
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10);
HAL_Delay(1000);
}
/* USER CODE BEGIN 3 */
}
				
			

STM32F407 integration checklist (STM32F407 integration checklist)

STM32F407 integration checklist 锌芯屑芯谐邪械褌 褋胁褟蟹邪褌褜 STM32F407 specs 褋 锌褉邪泻褌懈褔械褋泻懈屑懈 褉械褕械薪懈褟屑懈 锌芯 bring-up 械褖械 写芯 胁褘锌褍褋泻邪 褋褏械屑褘. 袩褉懈 锌褉芯胁械褉泻械 ARM STM32F407 胁邪卸薪芯 蟹邪褉邪薪械械 锌芯写褌胁械褉写懈褌褜 clock tree, 斜褞写卸械褌 Flash 懈 SRAM, 锌谢邪薪 ADC channels, 懈褋锌芯谢褜蟹芯胁邪薪懈械 timers, DMA routing 懈 debug header, 褔褌芯斜褘 泻谢褞褔械胁褘械 STM32F407 features 褋芯褏褉邪薪懈谢懈褋褜 锌芯褋谢械 layout.

Design review checkpoints

  • 袩褉芯胁械褉褜褌械 package pinout, boot pins, 写芯褋褌褍锌 SWD 懈 power domains 写芯 薪邪褔邪谢邪 PCB routing.
  • 袟邪谢芯卸懈褌械 胁褉械屑械薪薪芯泄 蟹邪锌邪褋 写谢褟 USB, CAN, SPI 懈 high-speed timers, 泻芯褌芯褉褘械 写械谢褟褌 褉械褋褍褉褋褘 MCU.
  • 校斜械写懈褌械褋褜, 褔褌芯 SRAM, external memory 懈 interrupt latency 褋芯芯褌胁械褌褋褌胁褍褞褌 薪械 褌芯谢褜泻芯 锌械褉胁芯泄 demo board, 薪芯 懈 写邪谢褜薪械泄褕械屑褍 firmware roadmap.

袣芯谐写邪 STM32F407 specs 胁谢懈褟褞褌 薪邪 胁褘斜芯褉 锌谢邪褌褘

STM32F407 specs 芯褋芯斜械薪薪芯 胁邪卸薪褘 锌褉懈 褋褉邪胁薪械薪懈懈 胁邪褉懈邪薪褌芯胁 泻芯褉锌褍褋邪, 泻芯谢懈褔械褋褌胁邪 analog channels, motor-control timers, 锌芯写写械褉卸泻懈 Ethernet 懈谢懈 USB 懈 芯卸懈写邪械屑芯泄 薪邪谐褉褍蟹泻懈 褉械邪谢褜薪芯谐芯 胁褉械屑械薪懈 薪邪 ARM Cortex-M4. 协褌褍 锌褉芯胁械褉泻褍 谢褍褔褕械 胁褘锌芯谢薪懈褌褜 写芯 褎懈薪邪谢褜薪芯谐芯 褉邪蟹屑械褖械薪懈褟 褉邪蟹褗械屑芯胁 懈 锌褉芯胁械褉泻懈 power tree.

FAQ

袣邪泻 褔懈褌邪褌褜 STM32F407 specs 锌褉懈 胁褘斜芯褉械 屑懈泻褉芯泻芯薪褌褉芯谢谢械褉邪? 袧邪褔薪懈褌械 褋 core frequency, Flash, SRAM, ADC resolution, timers, interfaces 懈 pin count, 邪 蟹邪褌械屑 锌褉芯胁械褉褜褌械, 泻邪泻懈械 锌械褉懈褎械褉懈泄薪褘械 斜谢芯泻懈 屑芯谐褍褌 褉邪斜芯褌邪褌褜 芯写薪芯胁褉械屑械薪薪芯 斜械蟹 泻芯薪褎谢懈泻褌芯胁.

袣邪泻懈械 STM32F407 features 褋懈谢褜薪械械 胁褋械谐芯 胁谢懈褟褞褌 薪邪 锌械褉胁芯械 debug? Clock configuration, SWD access, reset behavior, DMA mapping 懈 胁褘斜褉邪薪薪褘械 timer 懈谢懈 communication peripherals 褔邪褖械 胁褋械谐芯 芯锌褉械写械谢褟褞褌, 锌褉芯泄写械褌 谢懈 bring-up 斜褘褋褌褉芯.

Поделиться:

Прокрутить вверх

Мгновенный расчет

Instant Quote