【STM32F413H Discovery Kit 试用】介绍、工程测试
【STM32F413H Discovery Kit 试用】介绍、工程测试
本文详细介绍了STM32F413H Discovery Kit开发板的硬件配置、功能特性以及软件开发环境的搭建和测试过程。文章内容详实,包含了开发板的硬件框图、原理图、主要组件的功能描述以及具体的代码示例。对于从事嵌入式系统开发的工程师和技术爱好者来说,具有较高的参考价值。
介绍
STM32F413 Discovery套件(32F413HDISCOVERY)可以在基于Arm® Cortex®-M4内核的STM32F4系列高性能微控制器上轻松开发应用程序。
Discovery kit开发套件将STM32F413功能与240×240像素LCD和触摸面板、LED、I2S音频编解码器、MEMS麦克风、USB OTG FS、Quad-SPI NOR闪存和microSD™卡连接器结合。
包括一个嵌入式ST-LINK/V2-1调试器/编程器。专用扩展板可通过Arduino® Uno V3或扩展连接器连接。
包装
开发板
功能
- STM32F413ZHT6微控制器,具有1.5 MB闪存和320 KB SRAM,采用LQFP144封装
- 240×240像素LCD,带并行接口和电容式触摸屏
- 集成Wi-Fi模块(符合802.11 b/g/n)
- USB OTG FS
- I2S音频编解码器
- 立体声数字ST-MEMS麦克风
- 8 Mb 16位宽PSRAM
- 128Mb四通道SPI NOR闪存
- 2个彩色用户LED
- 用户按钮、复位按钮
- 板连接器:microSD™卡带Micro-AB插孔的用户USB,用于带麦克风输入和立体声输出的音频线路扩展连接器,用于嵌入式MEMS麦克风子板,具有5个MEMS麦克风Arduino
- 灵活的电源选项:ST-LINK USB VBUS、用户USB FS连接器或外部电源
- STM32Cube MCU软件包提供全面的免费软件库和示例
- 板载ST-LINK/V2-1调试器/编程器,具有USB重新枚举功能:大容量存储、虚拟COM端口和调试端口
- 支持多种集成开发环境(IDE),包括IAR Embedded Workbench、MDK-ARM和STM32CubeIDE®
硬件框图
原理图
Top
MCU
PSRAM
QSPI
Audio
LCD
USB_OTG_FS
Peripherals外设
Arduino
ST-LINK
Power供电
详见:mb1274-f413zht6-e03_schematic .
麦克风模块
详见:mb1299-microphone .
上电效果
主控
STM32F413ZHT6U带DSP和FPU的高性能基本型系列ARM® Cortex®-M4 MCU,具有1,5 MB Flash、100 MHz CPU、ART加速器和DFSDM
STM32F413xG/H器件基于高性能Arm® Cortex®-M4 32位RISC内核,工作频率高达100 MHz。其Cortex®-M4内核具有浮点单元(FPU)单精度,支持所有Arm单精度数据处理指令和数据类型。它还实现了一整套DSP指令和一个内存保护单元(MPU),以增强应用程序的安全性。
STM32F413xG/H器件属于STM32F4接入产品线(产品结合了能效、性能和集成度),同时增加了称为批量采集模式(BAM)的新创新功能,可在数据批处理期间节省更多功耗。
STM32F413xG/H器件集成了高速嵌入式存储器(高达1.5 MB的闪存、320 KB的SRAM)以及连接到两条APB总线、三条AHB总线和一个32位多AHB总线矩阵的大量增强型I/O和外设。
所有器件均提供一个12位ADC、两个12位DAC、一个低功耗RTC、12个通用16位定时器(包括两个用于电机控制的PWM定时器)、两个通用32位定时器和一个低功耗定时器。
它们还具有标准和高级通信接口。
功能
带eBAM的Dynamic Efficiency Line(增强型批量采集模式)
1.7 V至3.6 V电源
温度范围:-40 °C至85/105/125 °C
内核:带FPU的Arm® 32位Cortex®-M4 CPU、允许从闪存执行零等待状态的自适应实时加速器(ART加速器™)、频率高达100 MHz、内存保护单元、125 DMIPS/1.25 DMIPS/MHz (Dhrystone 2.1)和DSP指令
存储器
高达1.5 MB的闪存
320 KB的SRAM
灵活的外部静态存储控制器,具有高达16位的数据总线:SRAM、PSRAM NOR闪存
双模Quad-SPI接口
LCD并行接口,8080/6800模式
时钟、复位和电源管理
1.7至3.6 V应用电源和I/O
POR、PDR、PVD和BOR
4至26 MHz晶体振荡器
内部16 MHz工厂调整RC
用于RTC的32 kHz振荡器,带校准
带校准的内部32 kHz RC
功耗
运行:112 μA/MHz(外设关闭)
停止(停止模式下闪烁,快速唤醒时间):42 μA典型值;最大80 μA @25 °C
停止(深度掉电模式下闪烁,唤醒时间慢):15 μA典型值;最大46 μA @25 °C
无RTC的待机:1.1 μA典型值;在85 °C时最大14.7 μA
用于RTC的VBAT电源:1 μA @25 °C
2x12位D/A转换器
1×12位、2.4 MSPS ADC:多达16个通道
6个用于Σ Δ调制器的数字滤波器,12个PDM接口,支持立体声麦克风和声源定位
通用DMA:16流DMA
多达18个定时器:多达12个16位定时器、两个高达100 MHz的32位定时器,每个定时器具有多达4个IC/OC/PWM或脉冲计数器和正交(增量)编码器输入、2个看门狗定时器(独立和窗口)、1个SysTick定时器和一个低功耗定时器
调试模式
串行线调试(SWD) & JTAG
Cortex®-M4嵌入式跟踪宏单元™
多达114个I/O端口,具有中断功能
多达109个高达100 MHz的快速I/O
多达114个5 V容限I/O
多达24个通信接口
高达4倍I2C接口(SMBus/PMBus)
多达10个UART:4个USART / 6个UART(2个12.5 Mbit/s、2个6.25 Mbit/s)、ISO 7816接口、LIN、IrDA、调制解调器控制)
多达5个SPI/I2S(高达50 Mbit/s,SPI或I2S音频协议),其中2个多路复用全双工I2S接口
SDIO接口(SD/MMC/eMMC)
高级连接:带PHY的USB 2.0全速设备/主机/OTG控制器
3个CAN(2.0B有源)
1个SAI
真随机数生成器
CRC计算单元
96位唯一ID
RTC:亚秒级精度、硬件日历
所有软件包均ECOPACK®2
软件
固件架构
MCU软件包结构
示例工程
开发环境搭建
下载开发所需的软件工具、SDK、Demo等
所需开发软件IDE,主要包括
- STM32CubeMX(工程快速构建)
- STM32CubeIDE或ARM Keil MDK(项目编译)
- STM32CubeProg(程序烧录、STLINK固件更新)等
或使用Keil MDK-ARM IDE开发。
工程测试
工程导入
打开STM32CubeIDE软件,依次点击
File
- Open Projects from File System...
- Directory
- 选择示例工程所在文件夹
- Finish
- 左侧工程预览栏可见工程目录结构。
代码编辑
工程预览栏展开一级目录 - 展开Example - User - 双击main.c文件
这里以
GPIO_IOToggle
工程为例,该项目位于
STM32Cube_FW_F4_V1.28.0\Projects\STM32F413H-Discovery\Examples\GPIO\GPIO_IOToggle
文件夹下,
由原理图可知
板载两个红色和绿色用户LED,分别与主控芯片的GPIO引脚PE3和PC5相连。
#include "main.h"
static GPIO_InitTypeDef GPIO_InitStruct;
static void SystemClock_Config(void);
int main(void)
{
HAL_Init();
/* Configure the system clock to 100 MHz */
SystemClock_Config();
/* -1- Enable GPIO Clock (to be able to program the configuration registers) */
LED3_GPIO_CLK_ENABLE();
LED4_GPIO_CLK_ENABLE();
/* -2- Configure IO in output push-pull mode to drive external LEDs */
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Pin = LED3_PIN;
HAL_GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LED4_PIN;
HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);
while (1)
{
HAL_GPIO_TogglePin(LED3_GPIO_PORT, LED3_PIN);
HAL_Delay(100);
HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);
HAL_Delay(100);
}
}
static void SystemClock_Config(void)
{
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
HAL_StatusTypeDef ret = HAL_OK;
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 200;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
RCC_OscInitStruct.PLL.PLLR = 2;
ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
if(ret != HAL_OK)
{
while(1) { ; }
}
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3);
if(ret != HAL_OK)
{
while(1) { ; }
}
}
代码中目标GPIO引脚已被重定义为
LED3_GPIO_PORT
,
LED3_PIN
(C5)和
LED4_GPIO_PORT
,
LED4_PIN
(E3),这里在主循环中直接调用即可。
工程实现效果为板载红绿灯闪烁,可调整延时控制闪烁频率。
工程构建
左侧文件结构工具栏,选中目标项目,点击小锤子或右键,选择构建工程
运行与调试
点击Run按钮,首次运行弹出调试器选项,默认本地调试,点击确认后软件扫描设备端口,识别ST-LINK并上传固件,之后自动复位并运行程序,效果如下
总结
本文介绍了STM32F413H DISCOVERY kit开发套件的相关资料,包括软硬件配置、功能特性、原理图等,介绍了开发环境搭,并通过具体案例完成工程测试,为后续的进一步探索打好基础。