2026 Make Blocks #1阶段2 - 基于STM32G484的核心板设计
该项目使用了KiCAD,实现了STM32G484CEU6的MCU核心板的设计,它的主要功能为:将全部的引脚均进行了引出,支持USB-TypeC, UART, CAN等多种通讯方式;同时动态切换D+/D-信号路径,实现正接使用MCU内部USB模块、反接使用CH340串口的功能。。
标签
嵌入式系统
STM32
开发板
Cynixs
更新2026-05-22
157
KiCad文件
全屏

所选任务、所画模块的硬件和功能介绍

项目使用了KiCAD作为设计工具,实现了STM32G484CEU6MCU核心板的设计。

DigikeySTM32G484CEU6链接STM32G484CEU6 STMicroelectronics | 集成电路(IC) | DigiKey

STM32G4系列MCU基于170 MHz的ARM Cortex-M4内核,配备了高分辨率定时器(HRTIM),以及16位高级电机控制定时器,且具备丰富的ADC、DAC、运放、比较器与等模拟外设资源,专为需要强大计算能力和丰富模拟/数字外设的工业控制、数字电源和电机驱动等应用而设计。

本项目设计的核心板供电方便,接口丰富,可方便对MCU进行软件开发,以及进行性能评估。


核心板实物图如下:

fa4375048d1593f07ff3727e31b9a865.jpg

模块设计思路、选型介绍

整体架构与设计思路

  • 最小系统为核心:以STM32G484CEU6微控制器为中心,配置了基础支撑电路。包括由Reset模块构成的上电与手动复位电路,由 XOSC(8MHz & 32.768kHz)构成的高低速外部时钟源,以及SWD调试接口,确保了芯片的正常运行与便捷的软件烧录调试。
  • 双模通信接口设计一方面通过 CH340芯片桥接 UARTUSB,同时通过Type-C接口双面可插拔的特点,连接到了MCU内部的USB模块引脚,极大地方便了开发过程中的日志打印与数据透传。
  • 标准化供电方案:采用主流的USB Type-C接口作为系统5V电源输入,内部通过LDO为主控及数字外设所需的稳定3.3V工作电压,布局紧凑且通用性强。

关键器件选型介绍

  • 主控MCU STM32G484CEU6基于Cortex-M4内核,主频170 MHz。其UFQFPN48封装在提供丰富外设同时,兼顾了较小的PCB占用面积,能够使该核心板项目的面积进一步降低,结构更紧凑。
  • USB 转串口CH340将主控的串口信号转换为电脑可识别的标准 USB 信号,方便开发与调试。

系统框图如下:

image.png

模块原理图、PCB简单介绍+突出特色介绍

模块设计特点:

  • 最小系统:以STM32G484CEU6为核心,集成了高速8MHz主时钟,与低速32.768kHz RTC时钟电路;配备了手动复位电路,以及标准的SWD)调试接口,保障芯片的稳定运行与程序烧录。
  • 可扩展性:2x20 Pin的GPIO排针几乎引出了主控的所有可用引脚(如SPI、TIM、I2C等),相当于一块万能接口卡,可作为系统的控制核心灵活嵌入到各种大型项目中。
  • 开发体验:采用主流的Type-C​供电与调试接口,在提供稳定3.3V/5V输出的同时,提升了调试便捷性。集成了 LED1/LED2状态指示灯与 SW1/SW2用户按键,便于基础功能测试。

原理图如下:

image.png

PCB图如下:

image.png

模块调通的功能展示图

上电后呼吸灯闪烁,以及可通过按键控制LED

image.png

MCU通过Type-C接口分别使用USB协议以及CH340串口通讯:

  1. 当Type-C接口正向接入上位机时,识别到CH340 USB串口:

image.png

此时上位机通过MobaXterm串口通讯工具接收到通过UART发送的信息:

image.png

  1. Type-C接口反向接入上位机时,识别到USB设备:

image.png

此时上位机通过MobaXterm串口通讯工具接收到通过USB发送的信息:

image.png

RT-Thread系统测试

此外,还通过CumeMX添加了RT-Thread操作系统中间件,配置通过UART串口与上位机交互。例如可以通过CH340运行RT-Thread控制台的msh信息:

image.png

通过ps命令查看运行的各个线程任务状态

image.png

调试软件介绍、关键代码片段及说明

初始化通讯模块,并配置LED闪烁和通讯任务:

  MX_GPIO_Init();
  MX_USART3_UART_Init();
  MX_USB_Device_Init();
  /* USER CODE BEGIN 2 */
  rt_thread_init(&led_thread,
                 "led_task",
                 led_thread_entry,
                 RT_NULL,
                 &led_thread_stack[0],
                 sizeof(led_thread_stack),
                 20, 10);
  rt_thread_startup(&led_thread);


  rt_thread_init(&comm_thread,
                 "comm_task",
                 comm_thread_entry,
                 RT_NULL,
                 &comm_thread_stack[0],
                 sizeof(comm_thread_stack),
                 15, 10);
  rt_thread_startup(&comm_thread);

其中LED线程入口函数

/**
 * @brief LED线程入口函数
 */
void led_thread_entry(void *parameter)
{
    while (1)
    {
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14);
        rt_thread_mdelay(500);
    }
}

通讯线程入口函数

void comm_thread_entry(void *parameter)
{
    while (1)
    {
        /* 通过 UART 发送 (使用 RT-Thread 标准打印) */
        rt_kprintf("hello world from UART\n");


        /* 通过 USB CDC 发送 */
        CDC_Transmit_FS((uint8_t*)"hello world from USB\r\n", 22);


        rt_thread_mdelay(5000);
    }
}

心得体会

这个核心板项目让我体会到了从能用到好用的跨越,往往藏在细节里。通过集成CH340和Type-C接口,省去了外接转接板的麻烦。高度集成的模块化设计极大地缩短了硬件调试周期,让我能将更多精力集中在核心代码的开发上。

这次设计彻底告别了传统USB的“盲插焦虑”,Type-C接口配合CH340的转换电路,真正实现了无论正插还是反插都能被PC瞬间识别,分别调用不同的模块实现通讯,调试体验非常顺滑。

软硬件
电路图
附件下载
STM32G484_Project.zip
核心板可执行工程代码
STM32G484_Project.zip
核心板原理图和PCB文件
团队介绍
个人电子爱好者
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号