打印
[STM32F4]

【STM32F413H Discovery Kit 试用】介绍、工程测试

[复制链接]
794|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

【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 或扩展连接器连接。

包装

package.jpg

开发板

top_view.jpg

bottom_view.jpg

功能

  • 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®

硬件框图

hardware_block_diagram.jpg

原理图

Top

SCH_MCU.jpg

MCU

SCH_MCU_GPIO_IIC.jpg

PSRAM

SCH_PSRAM.jpg

QSPI

SCH_QSPI.jpg

Audio

SCH_codec.jpg

LCD

SCH_frida_LCD.jpg

USB_OTG_FS

SCH_OTG.jpg

Peripherals 外设

SCH_peripherals.jpg

Arduino

SCH_arduino.jpg

ST-LINK

SCH_STLINK.jpg

Power 供电

SCH_PWR.jpg

详见:mb1274-f413zht6-e03_schematic .

麦克风模块

SCH_microphones.jpg

详见:mb1299-microphone .

上电效果

charge_view.jpg

<iframe src="https://player.bilibili.com/player.html?bvid=BV1hUf8YZE5Z&page=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

主控

STM32F413ZHT6U 带DSP和FPU的高性能基本型系列 ARM® Cortex®-M4 MCU,具有1,5 MB Flash、100 MHz CPU、ART 加速器和 DFSDM

MCU.jpg

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

软件

固件架构

firmware_architecture.jpg

MCU 软件包结构

MCU_package_structure.jpg

示例工程

example_overview.jpg

开发环境搭建

下载开发所需的软件工具、SDK、Demo 等

Tool_SDK.jpg

所需开发软件 IDE,主要包括

  • STM32CubeMX(工程快速构建)
  • STM32CubeIDE 或 ARM Keil MDK(项目编译)
  • STM32CubeProg (程序烧录、STLINK 固件更新)等

Software_IDE.jpg

或使用 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 文件夹下,

由原理图可知

SCH_User_LEDs.jpg

板载两个红色和绿色用户 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),这里在主循环中直接调用即可。

工程实现效果为板载红绿灯闪烁,可调整延时控制闪烁频率。

工程构建

左侧文件结构工具栏,选中目标项目,点击小锤子或右键,选择构建工程

build_project.jpg

运行与调试

点击 Run 按钮,首次运行弹出调试器选项,默认本地调试,点击确认后软件扫描设备端口,识别 ST-LINK 并上传固件,之后自动复位并运行程序,效果如下

Blink.gif

总结

本文介绍了 STM32F413H DISCOVERY kit 开发套件的相关资料,包括软硬件配置、功能特性、原理图等,介绍了开发环境搭,并通过具体案例完成工程测试,为后续的进一步探索打好基础。

使用特权

评论回复
沙发
SophiaOP| | 2025-1-22 20:34 | 只看该作者
这个小屏幕真不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

38

帖子

0

粉丝