资讯详情

沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置

目录

  • 沁恒CH32V103C8T6(一): 焊接核心板Windows开发环境配置
  • 沁恒CH32V103C8T6(二): Linux RISC-V环境配置的编译和烧录

CH32V103C8T6

CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用二级装配线处理,设置静态分支预测和指令预测机制,支持DMA. 主要参数如下

  • CPU: 32位RISC-V3A, RV32IMAC指令集, 最高80MHz, 典型72MHz
  • RAM: 20KB
  • Flash: 64KB
  • BootLoader: 3.75KB 系统引导程序存储区
  • 供电: 2.7V - 5.5V (兼容3.3V和5V)
  • Timer: 通用3, 高级1, 看门狗2, 系统时钟1
  • ADC: 12bit, 10CH
  • SPI: 2
  • I2C: 2
  • UART: 3
  • USBHD: 1
  • 封装: LQFP48

硬件部分

烧录器 WCH-Link

需要准备一块 WCH-Link 用于烧录沁恒的芯片. 市场上有兼容性 DAP-Link 和 WCH-Link 的烧录器. 请注意烧录器的说明, 加电前可以通过按钮切换其模式. 烧录 CH32V103 时, 必须处于 WCH-Link的状态

开发板 Blue Pill

因为 CH32V103C8T6 引脚布局与 STM32F103C8T6, CH32F103C8T6 完全一致, 硬件设计通用,PIN对PIN兼容, 所以可以直接使用 STM32F103C8T6 核心板(Blue Pill)作为开发板. 手里碰巧有一片 STM32F103C6T6 的开发板, 电路和 STM32F103C8T6 是一样的, 只是芯片型号不同, 于是用热风焊接C6T6吹下来, 把 CH32V103C8T6 换上去.

热风枪温度设置为290度, MCU加上助焊油

STM32F103C6T6 吹掉焊盘

焊上了 CH32V103C8T6, 第一次有点歪 又吹了一遍, 这次小心放正了

测了一遍各PIN脚间电阻, 感觉有些PIN虚焊了, 所以我又用电烙铁拖了一遍

连线

WCH-Link -> Blue Pill 3V3      -> 3V3 GND      -> GND SWD      -> SWIO SCK      -> SWCLK RX       -> PA9  TX       -> PA10 

若不观察串口输出, RX/TX可以不连

软件部分

软件部分其实是 MounRiver Studio, 下载解压后安装. MounRiver Studio 是基于 Eclipse 扩大开发环境, 对于熟悉 Eclipse 人用起来更方便. 安装 MounRiver Studio 的同时, WCH-Link 安装了驱动器, 不需要单独安装.

  • 下载地址 http://mounriver.com/download
  • 使用介绍
    • https://bbs.21ic.com/icview-3037572-1-1.html
    • https://blog.csdn.net/qq_36353650/article/details/108321298
    • https://zhuanlan.zhihu.com/p/413153955

如需观察串口输出, 还需要使用串口工具, 例如 putty.

测试项目

创建项目

下面建一个测试项目, 通过GPIO驱动板子上的PC13 LED

File -> New -> MounRiver Project, 在对话框中

  • 选择芯片型号 WCH -> CH32V103 [RIsC-V] -> CH32V103C8T6
  • 输入Project Name, 例如 Test001
  • 勾选 Use default location, 如果需要放在其他目录中, 这里不能勾选, 自行选择
  • Template Type 选择 NoneOS, 因为这只是一个简单的测试, 只需要while循环即可
  • 点击 Finish

在项目 Project Explorer 目录结构将出现在中间,

编辑代码

用户代码在 User 目录下, 展开 User, 打开 main.c 修改内容

#include "debug.h"   void GPIO_Toggle_INIT(void) { 
             GPIO_InitTypeDef GPIO_InitStructure = { 
        0};      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_Init(GPIOC, &GPIO_InitStructure); }   int main(void)
{ 
        
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    { 
        
        Delay_Ms(500);
        GPIO_WriteBit(GPIOC, GPIO_Pin_13, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
        printf("TEST\r\n");
    }
}

编译项目

编译和烧录的过程, MounRiver 都已经包装得很好, 所以这部分比较简单. 使用图标栏中的编译按钮, 或者按F7编译项目(完整编译使用Shift+F7)

烧录

首先在设备管理器中查看 Ports (COM & LPT), 如果烧录器处于WCH-Link状态并且已经连接电脑, 会出现 WCH-LinkRV SERIAL(COMx) 这样的设备

使用图标栏中的下载按钮(Download), 或者按F8烧录.

如果以上步骤都正常, 应该能看到开发板上的LED每隔半秒切换一次亮灭状态. 串口使用115200波特率连接, 能看到输出的文字"TEST"

参考

  • 硬件和接线 https://blog.51cto.com/u_15127636/4347970
  • MounRiver Studio 烧录
    • https://blog.csdn.net/qq_36353650/article/details/108513094
    • https://blog.csdn.net/weixin_41784968/article/details/123770290
  • https://github.com/weimingtom/wmt_ch32_study

标签: 18pin板对板连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台