对于GD32VF103一些想法
1.定位是什么?
2.编程模型是什么?
3.目前有哪些软件生态可以使用?
4.可以怎么玩?
1.定位是什么?GD32VF103是兆易创新推出的基于Nuclei Bumblebee处理器的32位控制器。
从内核特性上来说,主要采用了 RISC -V的处理器。
从系统架构图上来看
条目特性
最大主频108MHz
JTAG支持
小号 RAM 32KB
闪存128KB
UART 5路
I2C 2路
S PI 3路
CAN 2路
ADC 2路
DAC 1路
WWDGT1路
FWDGT1路
GPIOA.BCDE
TI MER6路
从这些外设的特性上来看,和stm32f103定位差不多,都是属于微控制器的范畴。
如果做物联网应用,那么需要接很多外设和传感器。
2.编程模型是什么?这里不谈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 和 PLL1、关闭 1.2V 电源域的供电
2、关闭 IRC8M、HXTAL 和PLL
LDO 状态开启开启、低功耗模式关闭
配置SLEEPDEEP = 0SLEEPDEEP = 1
STBMOD = 0SLEEPDEEP = 1
STBMOD = 1, WURST=1
进入指令WFI 或 WFEWFI 或 WFEWFI 或 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也提供了类似的库。
通过将函数的封装,是的上层应用可以直接操作相关的接口,不用关注底层寄存器的实际的具体位的意义,降低了嵌入式开发的门槛。
这一点还是做的不错的。相比于寄存器操作的开发方式,这种出错的概率更加的低了,而且可以更加专注于上层业务逻辑的开发。
3.目前有哪些软件生态可以使用?这一点也是做应用比较关注的,生态是一个片子是否成熟,是否可以稳定使用的一个评估标准。
当前我所了解到的,GD32VF103的生态确实没有非常火热,但是一些基础软件已经有实现了。
比如芯来科技推出的IDE里面对这款片子的支持已经完成一些裸机,中断、定时器等等功能。
也支持了freertos,rtthread,ucosii等等常用的rtos的功能。这些对做业务逻辑的设计非常有好处。
但是比较遗憾的是上层软件生态并不繁荣,也没有一些有趣的应用运行在这个板子上有设计。
4.可以怎么玩?从上面的芯片资源上来看,该芯片的设计定位的是采集、微控制、以及逻辑简单的设备端。所以我个人觉得,在一些物联网设备端可以使用一些,也可以做做设备控制,状态采集等等。另外随着生态的完善,作为ST的替代也未尝不可。主要还是需要有人一起推进其生态的完善。
个人感觉,这个板子设计的还行,就是GD基本上不怎么宣传,也不做生态,导致很多人不知道或者不敢用。虽然这只是一款简单的MCU,随着RISCV发展,也说不定会成为一个不错的学习RISCV的平台。