GD开发板 实践开发分享

[复制链接]
2717|38
手机看帖
扫描二维码
随时随地手机跟帖
dingbo95|  楼主 | 2018-2-28 16:12 | 显示全部楼层 |阅读模式
本帖最后由 dingbo95 于 2018-2-28 16:13 编辑

作为一款面向初学者的入门级开发板,Colibri 开发板在功能上设计做的尽量简洁,主
要包括 LED、Key、Uart,同时又通过兼容现在非常流行的 Arduino 接口来灵活的支持更多
的外设。另外便于初学者使用,板载了正版 GDLINK 仿真器。 1.png
dingbo95|  楼主 | 2018-2-28 16:15 | 显示全部楼层
Colibri 开发板硬件详情
1.png
1.png

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 16:15 | 显示全部楼层
GD32F207  的地址映射
Cortex-M3 有 32 根地址线,寻址空间大小为 4GB。ARM 公司设计时,预先把这 4GB 的
寻址空间大致地分配好了。它把地址从 0x4000 0000 至 0x5FFF FFFF( 512MB )的地址分配给片
上外设。通过把片上外设的寄存器映射到这个地址区,就可以简单地以访问内存的方式,访
问这些外设的寄存器,从而控制外设的工作。

使用特权

评论回复
magicoctoy| | 2018-2-28 16:53 | 显示全部楼层
这个开发板上次没有申请到,有点遗憾。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:24 | 显示全部楼层
M3 存储器映射见图  所示
1.png



使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:25 | 显示全部楼层
Cortex-M3 分配给片上外设的地址范围是 0x4000 0000 至 0x5FFF FFFF,共 512MB 空间,
0x40000000 称为外设基地址。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:25 | 显示全部楼层
ARM®Cortex ™ -M3 处理器采用哈佛结构,可以使用相互独立的总线来读取指令和加载/存储
数据。指令代码和数据都位于相同的存储器地址空间,但在不同的地址范围。程序存储器,数据
存储器,寄存器和 I / O 端口都在同一个线性的 4 GB 的地址空间之内。这是 Cortex ™- M3 的最大
地址范围,因为它的地址总线宽度是 32 位。此外,为了降低不同客户在相同应用时的软件复杂
度,存储映射是按 Cortex ™ -M3 处理器提供的规则预先定义的。ARM ®Cortex™-M3 的自带的系统
外设也占用了一些地址空间。下图显示了 GD32F207系列设备的存储映射,包括指令代码,SRAM ,
外设和其他预先定义的区域。为了简化了外设的地址译码,每个外设分配的地址空间都是 1KB 。
APB1 外设都位于从 0x4000 0000 到 0x4000 FFFF 的地址空间,而 APB2 外设都位于从 0x4001 0000
到0x40017FFF的地址区域。从0x4002 0000到0x4002 FFFF的地址区域被AHB1外围设备所使用,
从 0x48000000 到 0x4800FFFF 的地址区域被 AHB2 外围设备所使用。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:26 | 显示全部楼层
基于 AMBA 3.0 AHB-LITE 的多层总线互联矩阵
使得系统中的多个主机和从机之间的并行通信成为可能。在总线矩阵有四个主机,包括 ICODE 总
线,DCode 总线,Cortex™-M3 内核系统总线和 DMA 的系统总线。ICODE 总线是指令总线,用于
将代码区域(为 0x00000000〜0x1FFF 的 FFFF)的向量取到 Cortex™-M3 内核。DCode 总线用于数据
加载和存储,也用于代码区的调试访问。系统总线用于系统区域的访问,包括取指令,数据加载
和存储,以及调试访问。系统区域包括内部 SRAM 区域和外设区域。总线矩阵包含 5 个从机,
包括闪存控制器的 ICODE 和 DCode 接口,内部 SRAM,AHB1 和 AHB2。AHB2 与 GPIO 端口相连。
AHB1 与 AHB 外设相连。诸多 AHB 外设之中有两个 AHB 到 APB 的桥提供了 AHB1 和两条 APB 总
线之间的完全同步连接。这两条 APB 总线连接所有的 APB 外设。两条 APB 总线都能够按最高频
率 72 MHz 工作。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:27 | 显示全部楼层
GD32F207 互联型产品系统框图
1.png

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:28 | 显示全部楼层
GD32F207 时钟系统
1.png

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:29 | 显示全部楼层
从时钟频率来说,时钟源分为高速时钟和低速时钟,高速时钟是提供给芯片主体的主时
钟,而低速时钟只是提供给芯片中的 RTC(实时时钟)及独立看门狗使用。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:29 | 显示全部楼层
从芯片角度来说,时钟源分为内部时钟与外部时钟源,内部时钟是在芯片内部 RC 振荡
器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟
信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软
件配置,转而采用外部时钟信号。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:29 | 显示全部楼层
GD32F207 有以下 4 个时钟源:
(1) 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为 4~16MHz,我们一
般采用 8MHz 的晶振。
(2) 高速内部时钟(HSI):由内部 RC 振荡器产生,频率为 8MHz,但不如外部时钟稳定。
(3) 低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采
用 32.768KHz。
(4) 低速内部时钟(LSI):由内部 RC 振荡器产生,也主要提供给实时时钟模块,频率大约
为 40KHz。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:30 | 显示全部楼层
从时钟树可以看到,经过一系列的倍频、分频后得到了几个与我们开发密切相关的时钟。
SYSCLK:系统时钟,GD32F207 大部分器件的时钟来源。主要由 AHB 预分频器分配
到各个部件。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:31 | 显示全部楼层
HCLK:由 AHB 预分频器直接输出得到,它是高速总线 AHB 的时钟信号,提供给存储
器,DMA 及 cortex 内核,是 cortex 内核运行的时钟,cpu 主频就是这个信号,它的大
小与 GD32F207 运算速度,数据存取速度密切相关。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:31 | 显示全部楼层
FCLK:同样由 AHB 预分频器输出得到,它不来自时钟 HCLK,因此在 HCLK 时钟停
止时 FCLK 也继续运行。它可以保证在处理器休眠时,也能够采样和到中断和跟踪休
眠事件,它与 HCLK 互相同步。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:32 | 显示全部楼层
PCLK1:外设时钟,由 APB1 预分频器输出得到,最大频率为 36MHz,提供给挂载在APB1 总线上的外设。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:37 | 显示全部楼层
PCLK2:外设时钟,由 APB2 预分频器输出得到,最大频率可为 72MHz,提供给挂载
在 APB2 总线上的外设。

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:43 | 显示全部楼层
GD32F207  的中断和异常
Cortex 内核具有强大的异常响应系统,它把打断当前代码执行流程的事件分为异常
(exception)和中断(interrupt),编号 0~15 的称为内核异常,而 16 以上的则称为外部中断。CM3
的所有中断机制都由 NVIC 实现

使用特权

评论回复
dingbo95|  楼主 | 2018-2-28 17:44 | 显示全部楼层
1.png

使用特权

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

本版积分规则

52

主题

1197

帖子

5

粉丝