summaryrefslogtreecommitdiff
path: root/bsp/stm32/stm32h723-DM-MC02/README.md
blob: 79bbbcfb3865403d472c1180d260a9d92e57a794 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# STM32H723 DM-MC02 开发板 BSP 说明

## 简介

本文档为 `stm32h723-DM-MC02` BSP 的使用说明。

当前 BSP 支持的功能有:

- GPIO 驱动可用
- UART1 控制台可用
- FinSH / MSH 可正常进入
- SPI6 驱动可用,收发支持 轮询 / DMA / BDMA 模式
- 板载WS2812可正常闪烁(需要专门软件包)



## 开发板介绍

DM-MC02 是一块面向电机开发与控制场景的控制板,基于 STM32H7 高性能微控制器设计,集成了多路电机控制、通信、传感与扩展接口资源,可用于电机控制、运动控制以及嵌入式功能验证等场景。

根据板卡说明书,开发板主要硬件参数如下:

- MCU:`STM32H723VGT6`
- 内核:`Arm Cortex-M7`
- 片上 FLASH:`1MB`
- 片上 SRAM:`564KB`
- BSP 默认堆内存区域:AXI SRAM `320KB`(`0x24000000` 起)
- 外部高速时钟:`24MHz HSE`
- 供电电压:`12V ~ 24V`,支持 `6S` 供电
- 板载电源:`5V / 2A`
- 可控电源:每路持续 `5A`
- 尺寸:`56 x 40 mm`
- 重量:约 `19.5g`

开发板外观如下图所示:

![board](figures/board.png)

该开发板常用 **板载资源** 如下:

- 调试串口:`x1`,当前 BSP 默认使用 `UART1` 作为 FinSH 控制台
- SWD:`x1`
- GPIO:芯片片上 GPIO 资源可用
- CANFD:`x3`,最高 `5Mbps`
- RS485:`x2`,最高 `10Mbps`
- 串口:`x3`
- PWM:`x4`
- IMU:`x1`,`BMI088`
- QSPI Flash:`8Mb`,`W25Q64JV`
- 按键:`x2`
- 蜂鸣器:`x1`
- WS2812 灯板:`x1`
- USB:`x1`
- SBUS:`x1`
- LCD 扩展口:`x1`,`SPI + IIC`
- DCMI 接口:`x1`,`24Pin` 无需转换
- 扩展接口:`x1`,提供 `2` 路串口、`1` 路 SPI、`1` 路 IIC
- 可控电源:`x2`,PMOS 输出(XT30 2+2)

当前 BSP 第一阶段已实际启用并验证的资源主要为:

- 调试串口:`UART1`(`PA9/PA10`)
- 调试接口:`SWD`
- GPIO 驱动
- SPI6 驱动(收发支持 轮询 / DMA / BDMA 模式)

## 外设支持

本 BSP 当前对外设的支持情况如下:

| **类别** | **外设** | **支持情况** | **备注** |
| :-- | :-- | :--: | :-- |
| 板载外设 | 调试串口 | 支持 | 使用 `UART1` 作为 FinSH 控制台 |
| 片上外设 | GPIO | 支持 | 已打开 `RT_USING_PIN` |
| 片上外设 | UART | 支持 | 默认启用 `UART1` |
| 片上外设 | SPI | 支持 | `SPI6` 已验证,收发可选 轮询 / DMA / BDMA(BDMA 缓冲须位于 `SRAM4`) |
| 板载外设 | CANFD | 暂不支持 | 板上提供 `3` 路接口,建议第二阶段补充 |
| 板载外设 | RS485 | 暂不支持 | 板上提供 `2` 路接口,建议第二阶段补充 |
| 板载外设 | QSPI Flash | 暂不支持 | 板载 `W25Q64JV` |
| 板载外设 | IMU | 暂不支持 | 板载 `BMI088` |
| 板载外设 | 蜂鸣器 | 暂不支持 | 建议第二阶段补充 |
| 板载外设 | 按键 | 暂不支持 | 板载 `2` 个按键 |
| 板载外设 | WS2812 | 支持 | 由独立软件包提供驱动,BDMA 缓冲区已由 BSP 链接脚本预留 |
| 板载外设 | LCD 扩展口 | 暂不支持 | `SPI + IIC` |
| 板载外设 | DCMI 接口 | 暂不支持 | `24Pin` 接口 |
| 片上外设 | 其他外设 | 暂不支持 | 建议在第二阶段按驱动分别补充 |

## 使用说明

使用说明分为如下两个章节:

- 快速上手
- 进阶使用

### 快速上手

本 BSP 当前提供 `MDK5` 工程,并支持通过 Env 工具重新生成 `IAR` 工程及 `GCC` 构建环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。

**请注意!!!**

在首次编译前,请先在 Env 中执行以下命令更新软件包:

```bash
pkgs --update
```

#### 硬件连接

1. 为开发板提供 `12V ~ 24V` 电源输入,或使用SWD供电
2. 使用 `SWD` 调试器连接开发板。
3. 将 `UART1` 串口连接到 PC。
4. 打开串口终端,参数设置为 `115200-8-1-N`。

#### 编译下载

双击 `project.uvprojx`,打开 MDK5 工程,编译并下载程序到开发板。

> 工程默认使用 `SWD` 方式下载,连接调试器后即可完成程序烧录。

#### 运行结果

下载完成并复位后,串口终端可看到类似输出:

```bash
 \ | /
- RT -     Thread Operating System
 / | \     5.3.0 build xxx xx xxxx xx:xx:xx
 2006 - 2024 Copyright by RT-Thread team
msh >
```

出现 `msh >` 即表示第一阶段 BSP 的串口控制台已正常工作。

### 进阶使用

此 BSP 当前默认只开启了 `GPIO` 和 `UART1`。若需要使用更多板载资源或片上外设,建议通过 Env 工具进行配置,并按第二阶段 BSP 的方式逐项补充,步骤如下:

1. 在 BSP 目录打开 Env。
2. 执行 `menuconfig` 配置工程。
3. 执行 `pkgs --update` 更新软件包。
4. 执行 `scons --target=mdk5` 重新生成 MDK5 工程。
5. 如需 IAR 工程,执行 `scons --target=iar`。
6. 如需验证 GCC,直接执行 `scons` 编译。

如果需要验证发布工程,可额外执行:

```bash
scons --dist
```

随后进入生成的 `dist/project` 目录,再执行一次 `scons` 验证发布工程可正常独立编译。

更多说明可参考:

- [STM32 系列 BSP 制作教程](../docs/STM32系列BSP制作教程.md)
- [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)

## 注意事项

- 本板板载灯为 `WS2812`,不适合作为第一阶段 BSP 的基础运行示例,因此不做LED闪烁循环。
- `WS2812` 驱动以独立软件包形式提供;其 BDMA 缓冲区通过 `.ws2812_bdma` 段放置在 `SRAM4`,该段已在 BSP 的三个链接脚本(`link.lds` / `link.sct` / `link.icf`)中预留。
- 本板支持多种供电方式,可通过type-c,XT30接口,swd等方式供电。具体电源树如下:
![power](figures/power.png)
- 提交前建议至少完成以下验证:
	- `scons`
	- `scons --target=iar`
	- `scons --dist`

## 联络方式

moment-NEW [email protected]