GD32F30x系列基础篇(芯片架构详解)
目录
一.概要
单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU内核、随机存储器SRAM、存储器FLASH、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
GD32F303CCT6单片机主要特性
内核:ARM Cortex-M4(含浮点运算单元FPU)
主频:GD32F303CCT6运行频率为120MHz。
RAM:48K(SRAM)
ROM:256K(Flash)
供电:2.0~3.6V(标准3.3V)
二、GD32F303系统架构

如图所示,左上角为内核(ARM Cortex-M4),I-Code和D-Code主要连接Flash闪存。
FLASH闪存:
我们编写好的程序经过Keil5编译之后都是一条条指令,存放在FLASH中。内核(ARM Cortex-M4)通过I-Code总线来取里边的指令,所以FLASH主要是用来存程序,但也开放一部分空间可以存数据。
SRAM存储器:存放程序运行时的变量数据。
I-Code指令总线:
内核(ARM Cortex-M4)要从FLASH中读取指令来执行程序就必须通过ICode总线,它几乎每时每刻都需要被使用,它是专门用来取指的,所以叫它指令总线。
D-Code数据总线:
我们在写程序的时候,数据有常量也有变量,常量就是固定不变的,用C语言中的const关键字修饰,是放在FLASH,变量是可变的,是放在SRAM,所以内核(ARM Cortex-M4)可以通过D-code总线访问FLASH和SRAM读取数据,所以叫它数据总线。
APB2,APB1系统总线:
用于挂载外设(GPIO、USART、I2C、SPI等这些外设)(APB2一般和AHB同频率最高可以到120MHz,APB1最高只能到60MHz)。
System总线主要是用来访问外设寄存器,我们通常说的寄存器编程,即读写寄存器都是通过System总线来完成的。
DMA总线:可以用来传输数据,这个数据可以是某个外设的数据寄存器,也可以是SRAM或者FLASH中的数据。
三.GD32单片机启动流程
通过单片机BOOT0引脚与BOOT1引脚的电平高低组合,配置单片机启动模式
我们一般都用下拉电阻配置BOOT0引脚为低电平,单片机的SWD下载口用下载器下载完代码,程序就能直接运行,这是最常用的启动模式。
GD32F103C8T6单片机从FLASH的启动流程:
当芯片上电后采样到 BOOT0 引脚为低电平时,0x00000000 和 0x00000004 地址被映射到内部 FLASH 的首地址 0x08000000 和 0x0800 0004。因此,内核离开复位状态后,读取内部 FLASH 的 0x08000000 地址空间存储的内容,赋值给栈指针 MSP,作为栈顶地址,再读取内部 FLASH 的 0x08000004 地址空间存储的内容,赋值给程序指针 PC,作为将要执行的第一条指令所在的地址。完成这两个操作后,内核就可以开始从 PC 指向的地址中读取指令执行了,0x0800 0004是中断向量表的起始地址,这就是复位程序的入口地址,接着跳转到复位程序入口处,初始向量表,然后设置时钟,设置堆栈,最后跳转到main函数,即进入用户程序。
四、GD32F303x单片机主要外设资源
这里以GD32F103C8T6为例,单片机集成了丰富的外设,比如GPIO,定时器,SPI,USART,CAN,USB,ADC等外设,这些丰富的外设能驱动很多各种接口的传感器,很多时候编程的工作也是对这些外设进行驱动编程。
红色圈出来的就是GD32F103C8T6单片机存储外设资源:
开发过程中通常会查看规格书/手册的,下面举例说明。
1、资源外设
编程的时候会了解是否存在这个外设,外设数量是否正确,FLASH的大小,RAM的大小,空间是否会超,需要查看确认。

2、总线框架图
有时候需要知道某个外设是挂在哪个总线(APB1还是APB2)下面,最高主频多少,是否存在这个外设等信息,需要查看这个单片机框图。
3、芯片引脚
在代码的调试过程中,有时候需要确认硬件是否连接正确,就需要知道单片机相应引脚的定义。

4、引脚映射
在写代码过程中,需要知道这个引脚的基本功能,是否5V容忍(可以输入5V高电平),可以复用配置成哪个外设,是否需要重映射等功能,需要查看这表格。


5、使用场景低功耗
在某些低功耗项目场景,需要知道配置成哪个低功耗模式更省电,不同主频功耗能符合功耗要求,需要查看这表格。

6、Flash擦鞋次数
在FLASH的存储操作中,需要知道编程时间,保证数据能正确写入,需要知道擦写次数,保证芯片不会因为擦写过多而损坏。

7、IO特性
在I/O读取操作时,有些电压采集到的不是高电平或者低电平,需要查这表格确认读到的电压符合单片机读到的高低电平电压要求。
单片机的I/O都可以配置内部上拉下拉,上拉电阻,下拉电阻多大,一般都是40K,可以在这表格里查出来。

8、外设速率
还有一些外设的最大速度,比如SPI,IIC口的最快速度也都能在芯片手册中找到。



9、IO供电要求
GD32单片机一般都是3.3V供电,电压是否符合要求,要看芯片手册供电范围。

更多推荐



所有评论(0)