前言
某天我在浏览嵌入式技术相关内容时,偶然刷到了IC-Easy的推广,看见的可以申请样品,本来是想为我正为复刻开源硬件项目筹备物料,一直纠结于部分元器件成本问题,能免费申请样品来做,对我这种“小项目开发者”来说无疑是个实用的机会,最初的想法也很直接:就是想借着这个渠道,申请些适合开源项目的元器件。
可抱着“试试看”的心态点进IC-Easy平台深入了解后,原来,远不止是个“能申请样品、能下单订货”的普通电子商城,IC-Easy不是单纯的电子商城,用来申请样品,进行订货的地方。它还悄悄搭建了开发者交流板块,甚至能看到一些针对学生、入门者的技术科普内容。发现这不是简单的推广,他们有着更远大的志向。
这种对行业生态的关注,比单纯的“样品福利”更让我有好感。也正是因为这份超出预期的认知,我在平台上众多可选的样品中,最终选定了GD32VW553-IOT-V2开发板。一方面,这款开发板在物联网、嵌入式领域的适配性极强,用它做实践,学到的技能能直接对接实际工作需求;另一方面,我一直计划未来深耕嵌入式电子领域,其实也是为自己将来入行做的必要铺垫——选它,既是选样品,也是选“入门教材”,也是为了将来进入这个行业的必要学习吧。
在搜寻一番发现,有适合小白快速上手的,但是还没有系列性的教程,同样作为头大的小白,或许我可以试着补补这个小缺口?但是我的能力有限,对自己也有清醒的认知——自己不是工程师,对嵌入式技术的理解还在“爬坡期”,肯定没法做出体系完整的专业教程。所以最终决定:不贪多,就把自己的学习过程老老实实地整理成“小白学习笔记”。内容不会追求高深,基本是“学到哪、记录到哪”。
我都会把步骤拆得很细,把自己踩过的坑、能简化的技巧都写进去。
如果这些零散的记录,能让同样无从下手的“有缘人”少走点弯路——哪怕只是帮他搞懂了一点一点,或者让他第一次成功点亮了开发板上的灯,对我来说,就已经是意料之外的收获了。
既然要想出一个系列的学习笔记,先列一个学习大纲(挖坑)吧——毕竟“想到哪写到哪”虽然随性,却容易让后续的学习记录变成零散的碎片,别说帮到其他小白,说不定过阵子我自己回头看,都得花半天时间回忆当时的操作逻辑。
先搭好一个清晰的框架,就像给搭建房子先立起承重骨架,后续再慢慢填充细节,也能让整个学习过程更有方向感。
以项目为目标,把整个学习过程拆成一步步能落地的具体内容。这样既不会偏离方向,也能让每篇笔记都有明确的“学习目标”。
- 开发板基本介绍,认识硬件
- 开发环境搭建,软件的下载以及安装
- 数字输出1-学用LED,按键,控制LED
- 逻辑控制1-LED数码管
- 阶段性项目-智慧交通信号灯项目
- 模式输出-PWM应用
- 模拟输入-旋钮开关
- 阶段性项目-沿街发光字项目
- 无线通讯-物联网应用
- ……(随学随更新吧)
我在学校学的是安卓开发,现在想入坑硬件,刷到了好多人自己做的东西,简直太酷了。
IC-Easy的样品也是到货了,既然到货了,咱就好好研究研究这个开发板吧。
那么就开始第一天的内容的吧!
【第一节】开发板的基本介绍,认识硬件
开发板作为硬件学习的“启蒙工具”,必须得先了解自己学习的这块板子能干什么。GD32VW553-IOT-V2开发板,是萤火工场基于兆易创新(GD)推出的开发板。

这块开发板采用的主控是GD32VW553HMQ7,支持WIFI6和BluetoothLE5.2无线连接,拥有4MB的Flash及320KB SRAM,最高160MHz主频。

这就意味着这块开发板无线连接能力强,存储和算力足够支撑中小型物联网场景,尤其适合需要“低功耗蓝牙+高速WIFI”双模连接、且对算力/存储要求不极端的开发需求。打个比方,常见的环境监测类的项目,引申为智能家居,智能教室等环境健康监测类;再例如小车类项目,引申为室内智能巡检小车、校园自主配送小车、家庭服务机器人等场景,这类项目同样能充分发挥开发板优势,还有双模无线与适中性能的加持,这可太棒了。
另外再说一点,C51/c8t6这些老家伙才几十K内存,你功力一上来,随随便便写点功能就能把内存打爆了,可见板载主控4MB的Flash的可玩性,甚至还有预留的flash焊接位,虽然没有焊接,但是现阶段的我也是足够用的。而且他也可以节省一点成本。
预留的flash焊盘位在这里,PCB板的背面

【第二节】分析原理图
第一小节:供电部分&串口部分

接口采用了16引脚的TypeC接口,通过原理图可以看到,这个接口支持供电(VBUS)、接口协商(CC1/CC2)以及数据传输(DP/DN)。没有高速传输,且作为扩展功能接口的SBU被悬空,当然,在这块开发板中,这些功能也不需要,也没必要设计。作为开发板的Type-C接口,它已经充分的完成了自己任务。
- CC引脚:CC1和CC2引接
5.1KΩ的下拉电阻,这表示这块设备属于受电端。当电源端会检测CC引脚,如果检测到下拉电阻时,就会识别到受电端的存在,让后给受电端供电。

- 数据传输引脚:在16pin的Type-C接口中,DP引脚和DN引脚主要用于USB2.0数据传输。
DP等价于D+(数据正信号),DN等价于D-(数据负信号)。而且还在上面安排了TVS,作为静电和浪涌保护。这个设计很重要,不过很多人会忽视掉,甚至包含卖串口工具的商家。

这是接口的实物图

- 供电引脚:这块开发板设计的电源有这几种:
VBUS,VCC,3V3以及VIN
我将其分为三种类型。这个0Ω的隔离设计也是很用心的表现,常见的开发板是没有分隔的,因为外围电路和MCU的供电均属于数字电路,一般的电路隔离是用来隔离数字电路和模拟电路的。这个隔离的设计是为了保证MCU的供电的稳定,以及噪声优化,毕竟涉及着无线开发,噪声优化非常有必要。
可明确划分为:系统输入电源,非核心外围电路电源和核心专用电源。 - 输入电源
VBUS和VIN:VBUS是直接从Type-C取的电源,而VIN是整流后的VBUS,属于同一种;这两种,开发板都给引出来了,作为对外的供电接口。

二极管在这个地方

- 非核心外围电路电源
VCC:是DC-DC输出的电源,负责给整套系统供电,为一种;开发板也给作为邮票孔接口引出来了。
通过查阅SY8201ABC的手册,可以得知,这块开发版是输出3.3V的设计。
围绕SY8201ABC的电路就是为了调节这颗降压型DC-DC电源芯片的输出电压。
计算公式是Vout=0.6*(1+R1/R2),输出电流是1A。
这是手册参考电路


也按照惯例设置了LED指示灯

在实物中的供电LED指示灯在这个位置

- 核心MCU专用电源
3V3:是对VCC进行隔离的供电,单独开发板的MCU供应,为一种;可以看的出来,做个隔离是为了优先保障核心MCU供电稳定性的专门设计,而且开发版没有引出接口来。

第二小节:BOOT部分

实物在这里

这里使用了一个拨码开关进行档位调节,可能有人觉得这个太小了,可我觉得比跳线帽好用多了,还节省PCB空间。如若未来需要自己设计开发板,这个设计给非常值得参考。
BOOT1和BOOT2从MCU引出来是直接接入下拉电阻的,通过拨码开关接入上拉状态。使用这个方式给BOOT进行了置0和置1的操作。让我们看看官方手册是怎么解释的这一段内容吧:

我没有找到中文的手册,但是这段非常重要,我简单的解释一下
- 若
BOOT0=0,启动地址由EFUSE_CTL0的EFSB位决定,支持从SIP Flash(0x08000000)或secure boot 区域(0x0BF46000)启动; - 若
BOOT0=1: - 当
EFBOOTLK=0时,需结合BOOT1值:BOOT1=0从Bootloader/ROM(0x0BF40000)启动,BOOT1=1从SRAM0(0x0A000000)启动; - 当
EFBOOTLK=1时,固定从Bootloader/ROM(0x0BF40000)启动。
简单来说就是,需要烧录程序需要将拨码开关1调到off档位,再按一下复位按键,才能烧录程序
第三小节:MCU部分
1. 滤波电容
原理图单独的清晰的绘制了各个引脚的滤波电容,而不是图省事,凭借经验一条3V3并联数个电容的画法。这部分增加的工作量,对于理解而言,更加易懂,仅此而已。但是对于画板会省不少工作,还会使得出错率大幅降低,我个人是喜欢这种画法。
这里是他的滤波电容原理图部分

实际上,萤火工场还设计了供电的10uF滤波,以及一个空着的位置。10uF滤波通常是为了低频滤波,空着的位置猜测是为了高频滤波用的。

2. 复位电路
复位电路是通过外部下拉实现的,GD32VW553的复位引脚内部是默认上拉至高电平的,只需要使用一颗按键和电阻接地,完成下拉,就可以实现复位功能。按下时将NRST引脚拉至低电平,主动触发芯片复位;松开后,电路恢复至上电复位的稳定状态。
但是萤火工场多做了一些细节设计。
一个是:外部额外增加上拉电阻,增强引脚的驱动能力和抗干扰性,确保按键未按下时复位引脚稳定为高电平的复位释放状态。
另一个是:并联电容,滤除高频干扰的同时,还可以实现上电复位的延时控制,因为电容的存在,电压不能突变。

预留了RC滤波电路,但是“NC”没有焊接

这一部分,有一处不明白的地方,也希望有懂的读者朋友指点一下,在这里虚心请教了。主控芯片的7号引脚标记着PU,不知道是不是Pull-UP的意思。虽然不懂的是什么意识,但是萤火工场细心的用英文标记了需要进行上拉处理。
而且这个PU是跟着复位引脚一起出现的,应该是有特殊的功能吧,但是我读数据手册的时候也没有搞明白这个的含义。

3. 外部晶振

这个是为GD32VW553提供时钟的无源晶振电路,核心作用是给芯片输入稳定的40MHz时钟信号,负载电容没有焊接安装。

第四小节:天线部分

可以看到的,这里使用了两个π型电路,上面也贴心用英文标识了,左边是低通滤波的π型电路,右边地天线匹配的π型电路。
结合电路可以看到,这里正好匹配上了,C5,C6也是预留状态,实物中也是没有焊接安装。让后另一半部分就是预留了同轴天线座,使用一颗0Ω电阻进行切换。萤火工场在设计PCB的时候使用了一个很巧妙的设计,就是将R2,R3一个一个焊盘合并了,板载天线和外接天线有且只能选一种。

第五小节:Flash预留位

预留的Flash焊接位没有标记引脚,在焊接前要最好是确认一下。

第六小节:开关和指示灯



开发板为我们准备了一颗“用户”指示灯D5,一个“用户”按键K2,可以快速上手,点亮开发板,写下这块开发板的“Hello World!”。
【第三节】其他问题
原理图上有17个NC“预留但没有焊接”的元器件,去掉Flash焊接位,还有16个NC位置,但是实物中非常贴心的给我们焊接上了,这样做一定有他独道的深意吧。




这块开发板硬件部分的介绍就到这里,下一期介绍开发环境的搭建,以及开发的第一步。

