2025 Make Blocks阶段2 - 基于STM32G474的核心板设计
该项目使用了KiCad软件和stm32g474,实现了一个核心板的设计,它的主要功能为:板载STlink_v2.1,RS485,CANFD,以及38pin的拓展io接口,可以实现各种控制及通讯功能。
标签
STM32
CAN
RS485
ST_LINK_V2.1
空耳-
更新2025-08-13
14
KiCad文件
全屏

任务介绍

任务一: 用于简易示波器/频谱仪/信号发生器的核心板,这里将原本的STM32G031微控制器换为了STM32G474微控制器,并且板载STLink_V2.1和常用的485,CANFD等通讯接口。

模块介绍

本次设计的核心板模块主要基于STM32G474进行设计,它拥有5.4GHz的高精度定时器和三路CANFD,可以适用与绝大部分应用场景。本次的设计主要考虑的是其扩展性,尽可能多的将引脚引出来,保证实现功能的情况下,还特意引出了一路CANFD,一路RS485,一路USART,一路USB,同时板载了STLink_V2.1下载器。电源方面支持3.3-38v供电,满足绝大部分使用场景。

选型介绍

器件型号

类型

关键特性

应用场景

STM32G474CEU6

32位微控制器

- Arm Cortex-M4内核 @170MHz - 512KB Flash/128KB RAM - 丰富外设(ADC/DAC/PWM) - CAN/USART/SPI/I²C接口 - QFN48封装

主控制器,负责系统调度

SIT3088ETK

RS-485收发器

- 3.0~5.5V供电 - 支持20Mbps高速通信 - ±15kV ESD保护 - SOP8封装

工业总线通信

RY8411

电源管理IC

- 4.5-40V宽输入范围 - 最大1A输出电流 - 过压/过流保护 - SOT223封装

供电稳压(24V→5V)

TJA1051TK/3/1

CAN总线收发器

- 兼容ISO11898标准 - 最高1Mbps速率 - 总线容错±40V - SOIC8封装

汽车/工业CAN通信

XC6210B332MR

LDO稳压器

输入电压范围:2.0V~6.0V 输出电压:3.3V(固定) 输出电流:最大300mA 封装:SOT-25 低功耗,高精度(±1%)

供电稳压(5V→3.3V)

STM32F103CBU6

ST-Link V2.1

72MHz主频 128KB Flash, 20KB RAM 支持USB 2.0全速接口 常用作调试器固件(如ST-Link V2)

调试器

设计框图

deepseek_mermaid_20250810_601733.png

原理图介绍

  • 主控部分
    采用STM32G474CEU6作为主控

image-20250810233916707.png

  • 电源部分
    • 24V->5V采用RY8411,它具有4.5-40V宽输入范围 - 最大1A输出电流 - 过压/过流保护

image-20250810234201295.png

    • 5V->3.3V采用XC6210B332MR

image-20250810234312353.png

  • ST_LINK_V2.1
    采用stm32f103cbu6为主控

image-20250810234530829.png

  • CANFD
    采用NXP的TJA1051TK/3/1收发器

image-20250810234628146.png

  • RS485
    采用SIT3088ETK

image-20250810234722681.png

  • 拓展IO

image-20250811002520924.png

PCB介绍

pcb采用四成板设计,两个typec,一个作为usb,一个作为下载调试口,大部分器件都采用qfn封装,非常nice

image-20250810234957503.png

软件介绍

软件部分必须注意一点,这块核心板为了将资源最大化,我将bootf脚复用为了CANFD_RX,导致这个芯片无法正常调试,必须采用软件boot的方式才可以正常调试使用。

有三个办法可以实现把BOOT0设置为软件BOOT0,这样PB8-BOOT0引脚就可以当作通用GPIO或者CANFD或者其他用途来使用了。

  • 在程序中对Option Byte选项字的相关位进行编程,设置BOOT0为软件BOOT0,我看到HAL库中有相关操作,但是操作起来比较麻烦。
  • 使用STM32CubeProgrammer来操作,这个软件可以通过STLINK\UART\USB\OTA来连接目标板来实现修改的功能。
  • 使用STM32 ST-LINK Utility来操作,这个只能通过STLINK来连接目标板,连接上之后,点击Target,然后点击Option Bytes之后,按照下图修改即可实现目的:

这里演示第三种

image-20250811000133781.png

我这里通过串口功能,来验证板子的正常

核心代码

int main(void)
{

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
printf("hello world \n");
HAL_Delay(1000);
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

功能展示图

将usb连接到debug口,既可以作为下载口,也可以作为串口

image-20250811000856046.png

image-20250811000829865.png

心得体会

通过本次 Make Blocks 活动,我深刻体验了从原理图设计→PCB布局→打板生产→焊接组装→调试纠错的完整闭环。其中最珍贵的收获,就是亲手将代码与铜箔熔铸成会呼吸的智能硬件——这种从虚拟到现实的创造魔力,远超任何仿真软件带来的成就感。


软硬件
元器件
SIT3088ETK
DFN封装小外形,14Mbps高速,3.0V~5.5V供电,高静电半双工RS485/RS422芯片
XC6210B332MR
XC6210B332MR, 600MA, 10UA, HIGT PSRR VOLTAGE REAULATOR,SOT-23-5,package
STM32F103CBU6
主流高性能系列Arm Cortex-M3 MCU,配有128 KB Flash存储器,72 MHz CPU,电机控制,USB和CAN
STM32G474CEU6
带DSP和FPU的170MHz主流ARM Cortex-M4 MCU,具有512 KB Flash存储器、数学加速器、高分辨率定时器和高模拟电平集成
TJA1051TK/3/1J
高速CAN收发器
电路图
附件下载
1_P1.kicad_sch
2_STLINK_V2.1.kicad_sch
ProPrj_stm32g474_2025-06-29.kicad_pcb
00_USART.zip
STLinkV2.J28.M18.bin
团队介绍
kone
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号