一、硬件介绍
1.概述
中电港萤火工场推出基于兆易创新(GigaDevice)GD32VW553是一款 RISC-V 内核的 32位 MCU 的开源硬件GD32VW553-IOT。
(中间空出的位置为:预留外置Flash、上方为BOOT选择)
GD32VW55x 系列器件是基于 Nuclei N307 处理器的 32 位通用微控制器, 其中 N307 处理器是基于 RSIC-V 架构指令集开发而来,以下简称 RISC-V 处理器。
RISC-V 处理器包括两条 AHB总线分别称为 I-Cache 总线和系统总线。 RISC-V 处理器的所有存储访问, 根据不同的目的和目标存储空间,都会在 AHB 总线上执行。存储器的组织采用了哈佛结构,预先定义的存储器映射和高达4 GB 的存储空间,充分保证了系统的灵活性和可扩展性。
2.系统资源(GD32VW553HMQ7)
功能 | 参数 |
---|---|
FLASH(KB) | 4096 |
SRAM(KB) | 320 |
时钟 | |
General Timer(16-bit) | 2 |
General Timer(32-bit) | 2 |
Advanced Timer(16-bit) | 1 |
Basic Timer(16-bit) | 1 |
SysTick(64-bit) | 1 |
Watchdog | 2 |
RTC | 1 |
接口 | |
USART | 1 |
UART | 2 |
I2C | 2 |
SPI | 1 |
QSPI | 1 |
Wi-Fi | 1 |
BLE5.2 | 1 |
ADC | |
Units | 1 |
Channels | 9 |
3.接口定义
脚标 | 信号 | 脚标 | 信号 |
---|---|---|---|
1 | PA8 | 30 | VIN |
2 | PB0 | 29 | GND |
3 | NRST | 28 | PB1 |
4 | GND | 27 | VUSB |
5 | PA15 | 26 | PA0 |
6 | PB15 | 25 | PA1 |
7 | PB13 | 24 | PA2 |
8 | PB12 | 23 | PA3 |
9 | PB11 | 22 | PA4 |
10 | PB2 | 21 | PA5 |
11 | PB4 | 20 | PA6 |
12 | PB3 | 19 | PA7 |
13 | PA12 | 18 | PC8 |
14 | PA9 | 17 | VCC |
15 | PA10 | 16 | PA11 |
4.板卡布局
5.原理图
二、开发环境搭建
1、IDE软件下载(支持GD32MCU系列芯片)
2、芯片SDK等安装包下载及配置
3、IDE相关配置
1、打开下载好的Embedded Builder.exe
2、根据图示进行相关配置,最后点击Finish即可
3、导入工程项目
三、代码编写(串口打印相关信息)
板载只有一个电源LED,因此通过串口输出相关打印信息实现代码的编写。
在刚创建的工程模板中,打开main.c,并修改如下,完成后点击上方的 Project ->Build All,进行编译,
生成的bin文件在【IDE项目配置】所创建的文件夹目录中
#include "gd32vw55x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "gd32vw553h_eval.h"
void com_usart_init(void);
/*!
\brief main function
\param[in] none
\param[out] none
\retval none
*/
int main(void)
{
/* initialize the COM */
com_usart_init();
while(1){
printf("usart transmit test Sucess!\r\n"); //输出到串口
}
}
void com_usart_init(void)
{
/* enable COM GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOB);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART0);
/* connect port to USART TX */
gpio_af_set(GPIOB, GPIO_AF_8, GPIO_PIN_15);
/* connect port to USART RX */
gpio_af_set(GPIOA, GPIO_AF_2, GPIO_PIN_8);
/* configure USART Tx as alternate function push-pull */
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_15);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_15);
/* configure USART Rx as alternate function push-pull */
gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_8);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_8);
/* USART configuration */
usart_deinit(USART0);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_baudrate_set(USART0, 115200U);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_enable(USART0);
}
四、程序烧录
一、程序烧录方法
1、使用SW / JTAG 烧录、调试方法
开发板引出了相关的触点(TP1~TP8)、其中TP7、TP8分别对应芯片的PA13、PA14引脚,其中PA14对应的J_TCK(SWCLK)、PA13对应的J_TMS(SWDIO)。
只需引出TP7、TP8即可。
2、使用串口烧录方法
板载三个串口分别为USART0、UART1/2。
其中USART0的PB15、PA8为排针引脚
UART1的PA4、PA5为排针引脚
UART2的PA6、PA7 为排针引脚 对应TP3、TP4触点
根据图示Type-C口向下,利用跳线帽将BOOT0接VCC (向下),BOOT1接GND (向上) 【 左侧为BOOT1,右侧为BOOT0 】
以USART2为例,连接USB 转 TTL 工具,RX->PA6,TX->PA7 并通过Typec给开发板供电
打开下载的串口烧录工具GD32 All In One Programmer ,根据图示,设置相关参数
烧录完成后,将BOOT0连接GND(向上),然后连接到USART0 (RX->PB15 、TX->PA8) ,然后复位开发板
打开串口助手,串口输出相关数据 usart transmit test Sucess!