GD32VF103是兆易创新推出的基于Nuclei Bumblebee处理器的32位控制器。
从内核特性上来说,主要采用了RISC-V的处理器。
从系统架构图上来看
条目 | 特性 |
---|---|
最大主频 | 108MHz |
JTAG | 支持 |
SRAM | 32KB |
FLASH | 128KB |
UART | 5路 |
I2C | 2路 |
SPI | 3路 |
CAN | 2路 |
ADC | 2路 |
DAC | 1路 |
WWDGT | 1路 |
FWDGT | 1路 |
GPIO | A.B.C.D.E |
TIMER | 6路 |
从这些外设的特性上来看,和stm32f103定位差不多,都是属于微控制器的范畴。
如果做物联网应用,那么需要接很多外设和传感器。
这里不谈riscv架构的编程模型,只看看GD32VF103的外设的编程模型。
https://www.rvmcu.com/index.php?app=quickstart&ac=doc&u=pdf&id=11
通过GD32VF103的用户手册来看,其设计思想基本和stm32差不多。
比如该CPU的省电模式也分为三种。
模式 | 睡眠 | 深度睡眠 | 待机 |
---|---|---|---|
描述 | 仅关闭 CPU 时钟 | 1、关闭 1.2V 电源域的所有 时钟2、关闭 IRC8M、HXTAL 和 PLL | 1、关闭 1.2V 电源域的供电2、关闭 IRC8M、HXTAL 和PLL |
LDO 状态 | 开启 | 开启、低功耗模式 | 关闭 |
配置 | SLEEPDEEP = 0 | SLEEPDEEP = 1 STBMOD = 0 | SLEEPDEEP = 1 STBMOD = 1, WURST=1 |
进入指令 | WFI 或 WFE | WFI 或 WFE | WFI 或 WFE |
唤醒 | 若通过 WFI 进入,则任 何中断均可唤醒; 若通过 WFE 进入,则 任何事件均可唤醒 | 若通过 WFI 进入,来自 EXTI 的任何中断可唤醒;若通过 WFE 进入,来自 EXTI 的任 何事件可唤醒 | 1、NRST 引脚 2、WKUP 引脚 3、FWDGT 复位 4、RTC |
唤醒延迟 | 无 | IRC8M 唤醒时间 如果 LDO 处于低功耗模式, 需增加 LDO 唤醒时间 | 上电序列 |
另外该MCU也有84字节的BKP RAM可以作为程序备份寄存器。
类似于stm32的库函数操作和HAL等等,GD32VF103也提供了类似的库。
通过将函数的封装,是的上层应用可以直接操作相关的接口,不用关注底层寄存器的实际的具体位的意义,降低了嵌入式开发的门槛。
这一点还是做的不错的。相比于寄存器操作的开发方式,这种出错的概率更加的低了,而且可以更加专注于上层业务逻辑的开发。
这一点也是做应用比较关注的,生态是一个片子是否成熟,是否可以稳定使用的一个评估标准。
当前我所了解到的,GD32VF103的生态确实没有非常火热,但是一些基础软件已经有实现了。
比如芯来科技推出的IDE里面对这款片子的支持已经完成一些裸机,中断、定时器等等功能。
也支持了freertos,rtthread,ucosii等等常用的rtos的功能。这些对做业务逻辑的设计非常有好处。
但是比较遗憾的是上层软件生态并不繁荣,也没有一些有趣的应用运行在这个板子上有设计。
从上面的芯片资源上来看,该芯片的设计定位的是采集、微控制、以及逻辑简单的设备端。所以我个人觉得,在一些物联网设备端可以使用一些,也可以做做设备控制,状态采集等等。另外随着生态的完善,作为ST的替代也未尝不可。主要还是需要有人一起推进其生态的完善。
个人感觉,这个板子设计的还行,就是GD基本上不怎么宣传,也不做生态,导致很多人不知道或者不敢用。虽然这只是一款简单的MCU,随着RISCV发展,也说不定会成为一个不错的学习RISCV的平台。