萤火工场 GD32VW553-IOT样片外观及GPIO测评【新人向】【入门友好】
分享作者:Chiando
评测品牌:萤火工场
评测型号:GD32VW553-IOT
发布时间:2025-05-14 11:04:10
7
前言
萤火工场新发布的GD32VW553-IOT的外观具有十分轻量化的设计,使用的是兆易创新在23年底发布的GD32VW553HMQ7芯片,本文将重点介绍其使用体验以及为其所做的扩展。
开源口碑分享内容

一、外观及其基本配置

当我拿到这款GD32VW553-IOT的样片时,第一反应是这外观太惊艳了!0.8mm的板厚,沉金焊盘工艺,元器件整齐划一的排布,跟其他普通的开发板相比太可爱了,完美诠释了什么叫上流。拿在手上的时候生怕一不小心把板子给掰开了!板子上引出了30个排针接口,以及8个测试点(其中正面7个,背面1个),用于电源供给、输入输出等。

板载SY8201 DC-DC芯片、PCB天线和IPEX天线座(通过跳线电阻切换),预留了flash接口,可以兼容市面上各厂商的SOP-8封装的flash芯片。电源部分,使用了Type-C接口作为供电(为6pinType-C,不能用于数据传输),用二极管防止反接和倒灌,同时DC-DC芯片保证了能量的高利用率。电源处还并联了一个指示灯;美中不足的是,整块板只有一个指示灯,点灯操作需要自己外加LED。引出的GPIO口基本可以完成绝大多数的工作,但是PA13、PA14未引出,也就意味着其使用JTAG下载的难度会有点高。

图为官方给出的板卡引脚对应图

图为重绘版

BOOT0和BOOT1的电平选择使用了1.27mm间距的排针,操作比较不方便,并且板上没有标明BOOT0和BOOT1引脚,容易搞混。需要注意的是,板上R4、R5两个电阻并没有焊接,如果需要使用的话,需要自己短接R4处两焊盘或者焊接上1K上拉电阻

背面是比较浪费的,仅仅印制了一个LOGO以及天线的测试点。在实际使用的过程中,深刻感受到什么叫做空有一副好皮囊,特别希望如果可以的话,正式的产品会在背面印制上各个引脚的丝印,正面可以加上BOOT的丝印,虽然板子的美观性可能会有所影响,但是实用性才是决定产品广布与否的重要因素。

二、芯片功能

芯片的外设如下:

上图为芯片手册上的引脚复用功能表

为了方便查看该开发板各个引脚的复用功能,不至于自己一个个对着芯片手册翻,我重绘了一版开发板引脚示意图(如封面),该图片有淡淡的水印,后续如果反响不错的话我会考虑把没有水印的版本放出来的。当然,这个版本完全是一个人手搓的,如果有一些出错的话欢迎大家指正,更新V2.0版本!

很希望这个图片能够被大家使用斯哈斯哈~如果可以的话请小窗我,我立马连源文件一起发过去ヽ( ̄ω ̄( ̄ω ̄〃)ゝ

当然我也做了简单版的~

三、开发环境

1.官方开发环境以及下载工具的下载

来到兆易创新的资料下载网页

找到GD32 Embedded Builder(集成开发环境)、GD32 All-In-One Programmer(下载软件)、GD32VW55x Firmware Library(芯片标准库)并下载

下载下来得到两个软件,其中GD32 Embedded Builder为我们写代码的开发环境,GD32 All-In-One Programmer用于将编译好的二进制或者十六进制文件下载到开发板上(没有图标),我自己制作了一个简陋的图标,有需要的同学到B站私信我获取(小易附件不能上传.ico)

下载到的标准固件库GD32VW55x_Firmware_Library_V1.2.0里有使用指南文档GD32VW55x_Firmware_Library_V1.2.0\Docs\User Guide,文档中有各标准库函数的详细说明,可以给开发带来很大的便利。


这个固件库的例程是GD基于他们自家开发板写的,但并不妨碍我们用来学习。里面包含了各种外设的驱动例程,具体函数可以根据指南文档学习;需要注意的是,该例程不能直接用Embedded Builder打开,需要下载SEGGER Embedded Studio,或者在Embedded Builder中新建文件并把例程中的main函数复制过去也可以。

2.SEGGER Embedded Studio的下载(非必选)

点击链接跳转到下载页面,点击第一行链接申请到软件的许可证(填写相应的信息即可,激活码会发送到邮箱),点击第二行链接下载软件(需要先注册账号,填写完个人信息后在邮件中激活账号方可登陆下载)。

本文将利用GD32 Embedded Builder进行最基础的点灯测评,SEGGER Embedded Studio的使用可以关注其他大佬的测评文章或者视频。

四、点灯

打开GD32 Embedded Builder,点击Browse选择一个文件夹作为工作区,完成后点击Launch;

打开后在左上角选择File-New-Project,打开新建文件界面;

选择自己熟悉的编程语言,点击Next;

填写项目名字,选择Risc-V的C语言编译环境(GD32VW553HMQ7是RISC-V内核的芯片),点击Next;

选择对应芯片,点击Finish;

然后我们就可以看到在窗口左边有如图所示的结构,点击src文件夹,可以看到里面包含了几个源文件,双击main.c,可以看见里面已经预置好了一初始代码,是基于GD32VW553H_EVAL开发板的点灯例程,我们同样可以把代码用到GD32VW553-IOT的开发板测试上;

led_spark()函数内可以看到定义了静态变量timingdelaylocal用于控制灯的闪烁,以及调用了几个函数和参数,分别是gd_eval_led_on(led_typedef_enum lednum); gd_eval_led_off(led_typedef_enum lednum);

以及LED1LED2LED3三个常量,

那么怎么看到他们具体指代什么GPIO口呢?

我们可以按住Ctrl,将鼠标移动到函数或者常量上,单击后会跳转到定义他们的源文件,一层一层追溯下去,可以看到在gd32vw553h_eval.h头文件中定义了LED1PA4LED2PA5LED3PA6

通过led_spark()函数的逻辑我们不难发现,循环中静态变量timingdelaylocal的自减控制了LED2LED3的闪烁。当timingdelaylocal<500时,LED2LED3置高电平;反之大于500时置低电平;当等于0时置为1000。

该函数在哪里被调用呢?有人可能会想是在main()函数中,但是翻箱倒柜并没有找到;其实在官方的注释中就可见一斑了:

每500ms翻转一次?!怎么做到的,必然是通过定时器中断了。还记得src文件夹里还有另一个文件:

gd32ve55x_it.c,该文件即为中断配置文件,在该文件里面的eclic_mtip_handler(void)函数即为中断函数,在该函数里,首先清零中断标志位,然后调用led_spark()更新timingdelaylocal的值,最后如果有调用到delay()函数的话,把剩下的计数值消耗掉。关于定时器和中断的部分后面可以深入学习一下。


接下来看主函数,进行了滴答计时器systick的配置、对各个端口的初始化,并设置了USART0进行串口通信。

按键KEY_TAMPER_WAKEUP的初始化我们也可以在宏定义中找到,它定义了PA0作为按键的端口,当检测到按键为低电平(RESET)时,延时50ms,若检测到按键为高电平(SET)时,改变LED1的状态。SET和RESET的值我们也可以在gd32vw55x.h头文件中找到。

为了方便点灯,我也是自己设计了两套彩色丝印板子,主打一个可以不好用,但是绝对不能不好看,好看的板子应该配上好看的扩展板(其中小板已经被吐槽说扩展功能太少了),已经开源到开源平台,有需要的大佬可以拿去改一改。

五、程序下载

点击Project-Build All编译程序,编译后可以在左边目录里看到一个新文件夹GD RISC-V MCU Debug,里面有一个 你的文件名.bin文件,为二进制程序文件。

                       

右键找到最下面的Properties,点开可以看到文件的路径,记住它的路径,要考。

你可以直接复制地址,也可以点击右边按钮在系统文件管理器中打开。

然后打开All-In-One Programmer,将开发板连接到串口工具上,连接方式见下图:(注意工具上电压应该是3.3V,或者通过type-C口供电),即需要PA6接RXD,PA7接TXD,共地,可不共电源。

连接后在你的电脑可以识别出COM口,这时候不要着急点击Connect,不然你的电脑将会告诉你识别不到COM口。

先将开发板上BOOT0的跳线帽拔下来接到1,再按一下旁边的RESET按钮重启芯片。

当然你也可以把跳线帽都拔掉,用镊子轻轻短接他俩再重启就好了()这时候再点Connect就可以成功连上了

芯片型号一般会自动检测,如果检测不到多半是没接好线;接下来点击Browse,粘贴刚刚复制下来的.bin文件路径,点击Download,等待下载进度条完成后,记得把跳线帽放回原位,再按一下RESET按键,一切就大功告成啦!恭喜你,你已经能够成为点灯大师了!

最后吐槽一下这个下载软件能不能做个自动适应窗口的功能啊,或者边缘让它可以拉动也可以,太不方便了

当然,一定要用到串口下载的话也可以像我一样把BOOT以及RESET按键引出来,可以省去很多功夫。



全部评论
暂无评论
0/144