这是一款小巧数控电源,支持输出2.5V ~ 36V,0~10A连续可调,可带载200W,带主动散热,尺寸仅有82×60×39mm。也是本喵的第一个作品~
零、一些告知:
- V6.2,也就是本版本,应该不会再继续更新,但根据目前的复刻状况来看,确实还有一些BUG,但本人确实没有精力继续维护本版本,在这里说声抱歉。但你遇到任何问题,可以进群咨询,我或者群友看到都会尽量解答的!
- 目前的精力都放在最新的V7版本,当前(26/1/8)已经近乎完成硬件设计,可以着手写代码了;我尽量这个寒假完成项目,然后就潜水了。(
谁家好人下一个学期10门课程的?!) - 然后预告一下V7的信息:
- V7是一个4 in 1的工具,目前暂命名为『XM Power Kit』;他有如下功能:
- 数控电源:5 ~ 32V输入,2 ~ 36V @ 10A 输出,最大300W,极限360W。
- 示波器:1M带宽,7.2MSPS采样率,可以实现简单的触发。
- 波形发生器:1Msps采样率,支持输出-5V ~ +5V内,任意振幅,频率,偏置,最大50KHz的各种波形
- 万用表:支持测量 ± 36V max电压;± 2A电流;0 ~ 1MΩ 电阻;0 ~ 1F 电容。精度都是3位半。
- V7将使用rtos、lvgl等技术,会漂亮很多。
- V7是一个4 in 1的工具,目前暂命名为『XM Power Kit』;他有如下功能:
- 最后要说的是,V7的焊接难度会高很多,请你务必准备好足够的工具,必备烙铁和热风枪!且非常建议你开钢网。好了,尽情期待吧~ 可以进群获取最新消息~(群号在末尾)
一、项目基础信息
1.1 项目简介
这是一款基于 STM32F103CBT6 + SC8701 的小型高带载可调电源,通过 PID 算法实现恒压恒流功能,核心特点如下:
- 输入方式:支持 PD 诱骗输入、DC 电源输入(⚠️ 输入请勿高于 35V);
- 输出接口:支持香蕉头输出、USB-A 接口输出;
- 显示配置:2.4 英寸 320×240 彩屏,实时显示电压、电流、功率等参数;
- 通信调试:配备蓝牙模块/CH340 转串口,方便连接上位机或调试;
- 规格参数:输入范围 5-32V(强烈建议输入 12V 以上),输出范围 2.5-36V 连续可调,最大电流可达 10A。
1.2 项目背景
作为一名数学系大学新牲,居然还要上晚自习?怎会如此!我决定搞点比赛来申请免去晚自习,刚好缺个数控电源,本着学习新东西的想法,Xuemeng V6诞生了~
1.3 核心参数
| 类别 | 型号/规格 | 说明 |
|---|---|---|
| 主控 MCU | STM32F103CBT6 (V6.2更换) | Arm Cortex-M3 核心,128K Flash,20K RAM,主频 72MHz |
| 电源控制芯片 | SC8701QEDR | 同步 4 功率管 Buck-Boost 控制器 |
| 电流检测 | INA226(2 颗) | IIC 通信,检测输入/输出电压、电流、功率 |
| PD 诱骗芯片 | CH224K/CH224A | 自动诱骗充电头最大输出电压 |
| 显示屏 | 2.4 英寸 TFT(ILI9341) | 分辨率 320×240,18P插接款(座子买上接抽屉!) |
| 人机交互 | 1 颗拨轮开关 | 用于参数调节与功能选择 |
| 调试接口 | CH340N(串口转 USB)/SWD/蓝牙 | 支持串口下载调试、SWD 调试、蓝牙通信调试 |
| PCB 规格 | 76×54mm,1.6mm 板厚,4 层板 | 绝大部分采用0603封装,少部分0402,方便焊接 |
| 成品尺寸 | 82×60×39mm(长宽高) | 含 3D 打印外壳 |
1.4 开源协议
本工程依据CC-BY-NC-SA 4.0知识共享许可协议,请勿用于商用,转载时请标明出处。
开源代码地址:“待更新”
二、更新日志
- 2025/9/04:1.完成简单的上位机程序,允许对pid参数,回差,死区等等数据进行调整。2.优化短路保护,掉压保护的逻辑。
- 2025/8/30: 完成 Ver6.2-rebuilt 设计与验证,主要改进PCB布局,修复了由于未割地导致的“地弹”致使输出电流6A以上时mcu死机的问题,目前已通过10A电流半小时测试。
- 2025/8/22: 完成 Ver6.1 设计,将LM74610换成MX16171D,解决输入/出电压抖动问题;优化INA226的IIC走线,预解决当输出电流>7A时因IIC总线报错而导致的死机问题。放宽输入最大16A,输出到10A;删除部分无用电路简化BOM,修改mos频率为400Khz,电感改为6.8uh。
三、项目待完成目标
- [x]
实现输出短路保护 和 输入欠压保护(2025/8/31) - [x]
开发简易上位机程序(2025/9/4) - [ ] 开发上位机电压/电流/电功率曲线图显示功能 (鸽了,V7搞)
四、硬件设计
4.1 硬件整体简介
PCB板采用4层板设计,阻容 95% 为0603封装。主控采用常见的STM32F103CBT6;提供type-C(PD诱骗)、DC 2.5mm两种方式输入,使用CH224K自动诱骗最高功率输入;可调电源控制芯片为SC8701QEDR,这是一颗全桥buck-boost芯片,能实现升降压输出;设备支持5V – 32V输入,2.5V – 36V 10A输出(建议输入9V以上)。

4.2 硬件框架

4.3 外壳设计
外壳采用“前后壳 + 顶板”方案,方便安装,目前仅提供 3D 打印模型,尺寸 82×60×39mm(长宽高)。
- 散热:预留了 12V 规格(5cm×5cm×1cm)风扇槽位,通过粘胶固定;
- 电池:预留 30mm×10mm×20mm 规格的锂电池槽位;
- 顶板方案:
- 切割亚克力板并打孔,通过 4 颗螺丝配合支柱固定。
- 使用嘉立创面板打印,直接粘贴在中框上;效果如图~

- 材料购买(tb 金超官方旗舰店)
- M2*5 尼龙圆头螺丝 *8
- M2*25 尼龙螺柱 * 4
- 当然也可以买金属的,但要注意绝缘,金属部分是接地的。
4.4 硬件原理详细解析
> 前言:原理图少部分参考学习了黑马小乌龟、flyn 等大佬的开源设计(在此致谢),绝大部分电路都是自主设计;若有错误/建议/疑问,欢迎在评论区交流!
4.4.1 供电输入部分
项目提供两种输入方式:Type-C PD 输入、DC 输入,核心设计如下:
(1)PD 诱骗设计

- 芯片选择:CH224K(支持“电阻法”“电平法”两种配置方式,此处选电阻法);
- 电压配置:悬空CFG2和CFG3,通过 CFG1 引脚外接电阻阻值设定最大诱骗电压,R279默认不焊接(诱骗 20V),电阻法配置表如下:
| CFG1 外接电阻 | 请求电压 |
|---|---|
| 6.8KΩ | 9V |
| 24KΩ | 12V |
| 56KΩ | 15V |
| NC(不焊接) | 20V |
- 若需要PD3.1支持(28V 5A)可以直接将芯片换成CH224A,同时,将R277和R278改为0Ω,R279改为210KΩ即可支持28V诱骗。CH224K和CH224A的芯片引脚定义是通用的。
(2)双输入保护
- 电路:使用两套MX16171D理想二极管控制器搭配Nmos组成理想二极管,实现双电源输入保护

- 这个芯片本质就是配合NMOS模拟一个几乎无压降的理想二极管,将两个组合到一起就能实现双输入的保护。
- 不同于LM74610,它可以控制mos全程开启,故不再有电压波动问题(2025/8/22更新)
- 再者,它能支持最第1V的输入而不需要外置电源,很适合本项目。
- MX16171D100不能直接用于本项目,引脚定义不同!且需要单独供电!!!已有小伙伴掉坑!
旧电路设计(LM74610SS)
- 电路:使用两套“理想二极管控制器 + N-MOS”构成(型号 LM74610SS,可替换为 MX74610SS 降低成本,二者硬件兼容);

- 这个芯片本质就是配合NMOS模拟一个几乎无压降的理想二极管,将两个组合到一起就能实现双输入的保护。
- 需要注意的是,芯片控制的Vgs应为5~6V,你可以直接测2.2UF电容的电压来判断芯片是否正常。
- 再者,这个芯片是通过nmos的寄生二极管两端电压差来给芯片充电,它工作时时这样的:
- 1.当最初通电时,负载电流流过 MOSFET 的体二极管,并产生压降(Vf)。MOSFET体二极管两端的正向压降(Vf)用于为电荷泵电容Vcap充电。在此期间,电荷泵电容器Vcap充电至6.3V;
- 2.当Vcap达到6.3V,电荷泵被禁用,Vcap存储的能量用于驱动mos栅极;
- 3.当Vcap下降到5.15V时,mos关闭,启动电荷泵进行充电。如此在2,3间循环往复
因此,mos整个周期有98%导通,剩余2%用于电容充电。
- 还是推荐更低成本的MX74610SS,二者功能/引脚一致。
- 缺陷:[已解决]由于mos会有2%的时间关闭,因此输入电压会阶段性的降低0.7V左右,这就会导致输出会有瞬时跳变,甚至会导致低电压输出震荡。解决办法是降低cap的容值,我从2.2uf降低到了47nf,目前只要输入高于9V,就基本不会影响后级的输出。下面是cap=47nf的输入波形:

- 可以看到,输入电压越高,这个波动造成的影响越小,因此建议至少9V的输入电压(5V也能用,但纹波没那么好看~)。
(3)输入电压电流检测
- 芯片选择:INA226AIDGSR
这是一颗功能强大的芯片,它能通过测量总线电压、检流电阻电压来计算出电压、电流、电功率信息,并通过IIC来与MCU通信。 - 硬件上: 你只需要通过A0,A1引脚的电平配置好设备地址,剩下部分都很简单,记得IIC要上拉即可

- (2025/8/22) 优化IIC布线,修复输出电流超7.5A因EMI导致的iic总线报错死机。
4.4.2 Buck-Boost 电路(核心)
这一部分是整个电路的核心,也是困扰我最久的地方,下面我来进行讲解:
(1)芯片选型
- 型号:SC8701QEDR,这是一颗同步 4 功率管 Buck-Boost 控制器;
- 参数:输入 2.7-36V,输出 2-36V,可以通过 PWM 调整输出电压/电流;
- 不足之处:根据数据手册,有
VOUT = VOUT_SET×(1/6 + 5/6×D)(D 为 UPWM 占空比),意思是最小输出电压为最大设定电压的 1/6,也就是说如想输出 3.3V,最大输出仅为3.3V * 6 = 19.8V 左右。
这大大限制了电压调节的范围。那么有办法解决么?有的兄弟!有的!我们可以换个角度,来往下看~
(2)电压范围拓展
根据 SC8701 数据手册,输出电压完整公式为:Vout = (VFB_REF×(1+Rup/Rdown)) × (1/6 + 5/6×D)(VFB_REF = 1.22V);既然“(1/6+5/6×D)”部分动不了,那我们干脆直接令D=100%最大输出,转向“(VFB_REF×(1+Rup/Rdown))”部分,我们可以通过改变 FB 引脚下的 Rup 与 Rdown 的电阻网络关系,来对输出电压进行调节,这种方式就没有什么限制了。来~随我看图:
- 具体实现:我们来看如下等效图:

- PS:此处电阻等效为V7的配置,V6可以自己带进去算一算~
根据基尔霍夫电流定律,我们有:- 1. i1 = i2 + i3
- 2. i2 = Vref / Rd1
- 3. i3 = (Vref – Vdac) / Rd2
- 4. i1 * Rup = Vout – Vref 经过简单的代换得到:
Vout = Vref * (1+ Rup / Rd1) + (Vref - Vdac) * (Rup / Rd2)带入已知值,式子化为:Vout = 39.345 - 15.625 * Vdac
因此我们就可以知道,当Vdac输出0V时,Vout理论输出39V左右;Vdac输出2.44V时,Vout理论输出1.2V。(实际受到电阻误差、8701硬件限制、dac误差等等原因,导致实际输出与理论有偏差)
- 由公式可知,我们就通过DAC实现了sc8701输出电压的线性调节,并且成功拓宽了电压输出范围~
2025/8/23:修改R259为65K(频率400Khz),SW4改为6.8uh
4.4.3 输出部分
- 核心功能:MX16171D配合NMOS构成理想二极管 防倒灌 + 多颗电容滤波;
- 输出接口:提供4mm香蕉头、USB-A 母口,都是常用的接口,满足日常需求~
- 当然,最重要的还是这颗输出INA226,它为整个pid系统提供电压、电流等数据。
五、软件设计
5.0 前言
- 在此感谢B站UP主”keysking”,感谢他带我领略STM32单片机的魅力❤
5.1 软件简介
软件部分就是我自己写的了,我从头编写了LCD屏的ILI9341驱动、Flash、INA226、mcp4725等等驱动,我都考虑了移植性,尤其是LCD屏幕的驱动,欢迎大家来移植与使用,样例我会放在附件~
- 开发环境:STM32CubeIDE + STM32CubeMX + CLion
- 架构:裸机,并没有使用LVGL和RTOS系统,我感觉没必要(
其实懒得学) - 核心逻辑:定时器中断置位标志位,主循环检测标志位并执行对应任务;
- 代码获取:您可前往 雪萌の小窝 下载完整工程,后续整理后会上传至 Gitee/GitHub。
5.2 代码浅谈
说实话,我的代码写的着实不咋地,很多地方还很死板粗糙,我会慢慢打磨的,有问题/建议/想要的功能都可以提出,我会尽力改进的!(ง •_•)ง
(1)定时器中断调度
主要通过 TIM4(10ms 周期)、TIM1(100ms 周期)实现任务定时,中断回调函数如下:
//定时器1中断回调处理(100ms):屏幕刷新
uint8_t fan_counter = 0;
char screen_show_str[20];
void Tim1_Process(void) {
DashBord_Refresh(); // 数据界面刷写
LCD_refresh = 0; // 清除标志位
fan_counter++;
if (fan_counter >= 10) {// 1s一次风扇更新与转速调节
//风扇更新
float temperature = GetTemperature();
uint8_t persent = Fan_AutoControl(temperature);
char screen_str[40];
//温度更新
numberToString_4bit(temperature, "℃", screen_str);
LCD_PrintString(160,4,screen_str,&font16x16,WHITE,GRAY,1);
sprintf(screen_show_str,"%03d%%",persent);
LCD_PrintString(282,4,screen_show_str,&font16x16,WHITE,GRAY,1);
fan_counter = 0;
}
}
//定时器4中断回调处理(10ms):PID
void Tim4_Process(void) {
// 电源状态保护,防止因未知错误导致电源状态异常
if (power_state == HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11)) {
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_11);
}
PID_SundivisionCotrol(&pid_dev,current_OutputVoltage); // 积分随误差大小限幅
if (power_state) {
if ((PID_Buffer_mode == 1) && (Pid_buffer <= Pid_Buffer_max)) { // 缓冲模式控制
Pid_buffer++;
} else {
PID_Exit_Buffer(&pid_dev);
}
// 计算PID调节量
int16_t ΔDAC_Value = PID_Calculate(&pid_dev, current_OutputVoltage, current_OutputCurrent);
// DAC限幅
DAC_Value = (uint16_t)fmax(HARDWARE_DAC_MAX,fmin(HARDWARE_DAC_MIN,(int32_t)DAC_Value + (int32_t)ΔDAC_Value));
// 写入DAC
MCP4725_WriteFast(&hi2c2, DAC_Value, MCP4725_MODE_NORMAL);
pid_refresh = 0;
}
}
然后在主循环里检测对应标志位,并运行相应代码,就能实现定时操作了:
while (1)
{
HAL_IWDG_Refresh(&hiwdg); //喂狗
KeyEventTypeDef event = Key_GetEvent();
if (event != KEY_EVENT_NONE) {Key_EventHandle(event);} //按键处理
if (pid_refresh) { //pid
current_OutputVoltage = INA226_ReadBusVoltage(&OutputData); // 获取当前输出电压
current_OutputCurrent = fabs(INA226_ReadCurrent(&OutputData) - // 获取当前输出电流
current_OutputVoltage / flash_param_read(PARAM_DISCHARGE_RESISTOR));
current_InputVoltage = INA226_ReadBusVoltage(&InputData); // 获取当前输入电压
current_InputCurrent = INA226_ReadCurrent(&InputData); // 获取当前输入电流
// current_OutputPower = INA226_ReadPower(&OutputData); // 获取当前输出功率
current_OutputPower = current_OutputCurrent * current_OutputVoltage;
Low_Voltage_Check();
Short_Circuit_Check(&short_short_circuit_count); // 短路检查
Tim4_Process();
}
if (LCD_refresh) {Tim1_Process();} // 屏幕刷新
对于初始化部分,为了方便小伙伴们快速检查哪些硬件出现了问题,我编写了如下初始化代码:
uint8_t Users_Init(void) {
uint8_t error_reg = 0; // 0000 0000 从0~7位表示W25Q,MCP4725,4725_defult,226_IN,226_OUT,
LCD_Init();
Key_Init();
if (W25Q256_Init()) {set_bit(&error_reg,0);set_bit(&error_reg,7);}
if (MCP4725_InitAndReport(&hi2c2) != HAL_OK){set_bit(&error_reg,1);set_bit(&error_reg,7);}
if (MCP4725_WriteEEPROM(&hi2c2, DAC_Value, MCP4725_MODE_NORMAL) != HAL_OK){set_bit(&error_reg,2);set_bit(&error_reg,7);}
float max_current_IN = 16.0f;
float max_current_OUT = 12.0f;
if (INA226_Init(&InputData,&hi2c1,INPUT_ADDR ,max_current_IN, g_flash_param_default.input_shunt_resistor)) {
set_bit(&error_reg,3);
set_bit(&error_reg,7);
}
if (INA226_Init(&OutputData,&hi2c1,OUTPUT_ADDR ,max_current_OUT, g_flash_param_default.output_shunt_resistor)) {
set_bit(&error_reg,4);
set_bit(&error_reg,7);
}
DisCharge_resistor = flash_param_read(PARAM_DISCHARGE_RESISTOR);
if (fabs(DisCharge_resistor) < 0.001f) DisCharge_resistor = g_flash_param_default.discharge_resistor;
PID_Init(
&pid_dev,
Default_Voltage, // 目标电压
flash_param_read(PARAM_VOLT_LOOP_KP), // 电压环Kp_cv(从Flash读取)
flash_param_read(PARAM_VOLT_LOOP_KI), // 电压环Ki_cv(从Flash读取)
flash_param_read(PARAM_VOLT_LOOP_KD), // 电压环Kd_cv(从Flash读取)
0.0f, // 线路电阻
flash_param_read(PARAM_VOLT_REG_DEADBAND), // 电压环调节死区(从Flash读取)
0.3f, // 电压环积分上限
-0.3f, // 电压环积分下限
Default_Current, // 目标电流
flash_param_read(PARAM_CURR_LOOP_KP), // 电流环Kp_cc(从Flash读取)
flash_param_read(PARAM_CURR_LOOP_KI), // 电流环Ki_cc(从Flash读取)
flash_param_read(PARAM_CURR_LOOP_KD), // 电流环Kd_cc(从Flash读取)
10.0f, // 软件最大电流
2.0f, // 电流环积分上限
-2.0f, // 电流环积分下限
2.0f, // 最小电压
37.0f, // 最大电压
flash_param_read(PARAM_CURR_HYSTERESIS) // 电流回差(从Flash读取)
); //上述参数都将在接下来允许用户自定义,参数存储在flash中
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); //启动IPWM
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); //启动FAN_PWM
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); //启动蜂鸣器
HAL_TIM_Base_Start_IT(&htim4); //启动pid时钟
HAL_TIM_Base_Start_IT(&htim1); //启动屏幕刷新/计时时钟
HAL_ADCEx_Calibration_Start(&hadc1); //ADC自动校准
HAL_ADC_Start(&hadc1); //启动ADC转换
MX_IWDG_Init();
return error_reg;
}
- 若没有任何错误,LCD屏将会先显示初始化,随后进入数据界面。
- 若出现错误,蜂鸣器会快速的蜂鸣,提示出现问题,此时你可以前往波特律动串口助手连接蓝牙,并按下RESET按键,蓝牙会输出当前有问题的硬件。
六、程序下载
本作品提供了两种下载方式:
| 方法 | 特点 |
|---|---|
| ST-LINK | 比较复杂,需要配置SIM32CubeIde/CLion环境 |
| 串口下载 | 简单,一根数据线即可,想快速使用的推荐 |
为了方便,这里仅仅展示通过串口进行下载:
6.1 串口下载
- 1. 首先你需要一条数据线,typeC接口的能传数据的就行(你平时的手机充电线即可)
- 2. 下载附件中的FlyMCU软件和最新的.hex文件以及CH340的驱动
- 3. 先安装驱动,随后用数据线连接电脑与设备中间的typeC接口
- 4. 打开FlyMCU,按照下图进行配置:

- 5. 设备长按boot0的同时,单击Reset按钮,随后过一会再松开Boot0,若程序显示下图,则成功进入刷写:

- 6. 进度条走完后,单击一下reset按钮,就正常进入程序了,恭喜你完成了程序写入ヽ(✿゚▽゚)ノ
七、性能
很抱歉手头上没有设备进行纹波测试(我都不是学电子这块的的,大学实验室都不让我进哈哈设备都借不到),不过可以看看演示视频看看效果,希望对你有帮助~
- 有大佬能帮我测一下是最好了,得到数据后我就可以进行改进了~ 😘
(2025/8/30)下面为我的大致测试,不是很准~
| 输入电压 | 输出电压 | 输出电流 | 纹波 |
|---|---|---|---|
| 24V | 12V | 0A | 60mV |
八、上位机
我花了几个小时写了个简单的上位机,通过数据线连接设备后,可以通过附件里的上位机对众多参数进行调节,参数修改即刻生效(虽然可以,但不建议边输出边调节)。
- 建议使用Windows10及以上系统!使用Win7可能因缺动态链接库导致无法打开软件
- 已有小伙伴踩坑。上位机使用python编写,pyinstaller打包,upx压缩,win11环境。
当前可调节参数如图:
还是挺简陋的,将来会更新更多的可调数据,如风扇之类的,也会支持读取设备数据并绘制实时曲线等功能~
九、其他
- 1.程序还在编写整理中,整理好就上传geeit/github
- 2.您可以加984946310进行讨论,欢迎您! (答案:雪萌)
- 3.程序仅完成了主体,
C8T6的FLASH就快满了,后续可能会升级为CBT6,但都是以后的事了以替换为CBT6 - 4.这是我的个人博客,
里面将会对这个项目进行了详细的细节分析,仅对接下来的V7进行详细分析,欢迎前往雪萌の小窝! - 5.最后,祝你玩的开心,能学到些新知识~
十、元件采购建议与提醒
我采购的时候遇到了超级多问题,不是st-link是坏的,就是假INA226能把24V测成18V的离谱玩意,因此,我在此建议部分元器件的淘宝店家,希望对你有帮助,避免踩坑ヽ(✿゚▽゚)ノ。
- PS:群文件里有我整理的BOM表,表内的表1为建议立创商城购买,可直接上传此文件;表二2为剩余物料推荐购买点。
显示表格
| 元件型号 | 淘宝店名 | 单价 |
|---|---|---|
| INA226AIDGSR | 优信电子 | 2.5元/个 |
| REF3030AIDBZR | 优信电子 | 1.1元/个 |
| 5020无源蜂鸣器 | 优信电子 | 1.2元/个 |
| ME3116AM6G | 优信电子 | 0.8元/个 |
| 3*4轻触开关 | 优信电子 | 0.9元/10个 |
| LMV321IDBVR | 优信电子 | 0.28元/个 |
| 1265一体电感6.8uh | 优信电子 | 1.6元/个 |
| STM32F103CBT6 | 新纶电子 | 1.95元/个 |
| SC8701QEDR | 新纶电子 | 1.41元/个 |
| W25Q256JVEIQ | 新纶电子 | 1.29元/个 |
| MCP4725A0T-E_CH | 新纶电子 | 0.9元/个 |
| MX16171D | 立创商城 | 2.99元/个 |
| AGM6014A | 芯恒盛电子 | 1元/个 |
| VGA6328A | 佳信达通电子 | 4.58元/个 |
| 拨轮开关3脚 | telesky旗舰店 | 1.46/个 |
| 2.4寸显示屏ILI9341插接款无触摸 | 耀元鸿科技 | 16元/个 |
| 470uf 35V 8*10.5 | CAICOS旗舰店 | 5元/10个 |
| 50V 100uf 8*10.5 | CAICOS旗舰店 | 4元/10个 |
| 50V 100uf 8*12 | 楷信电子 | 0.55/个 |
| 50V 47uf 6.3*8 | 楷信电子 | 0.37/个 |
| 5cm风扇12V A1接口 | (拼多多)连环马散热 | 1.48元/个 |
| 铝散热片9x9x5mm | 无 | 无 |
| 铝散热片22x22x10mm | 无 | 无 |
| M2*8塑料尼龙螺钉 | 金超官方旗舰店 | 2.49元/50个 |
| M2*25尼龙柱平头六角双通 | 金超官方旗舰店 | 2.81元/20个 |
小PS:
目前已经可以试着复刻了,硬件上已经没有什么大问题,接下来也不会做太大的改动,软件会继续更新,接下来都是通用的。
十一、注意事项
已有一些小伙伴进行复刻,但出现了许多问题,在此总结一下,希望能帮到你~~
- 一. 理想二极管MX16171D不能替换为MX16171D100,二者不兼容。已有小伙伴中招导致奇妙故障。
- 二. 成功开机后,设置低电压输出震荡:可以使用上位机调小PID参数以抑制震荡
- 三. 焊接问题。其一:SC8701为QFN封装,焊接难度大,建议焊好拿手机微距看看,没焊好可能会炸mos和8701!!(此芯片有底部焊盘,有线路连接,需要使用风枪!)
- 四. 焊接问题。其二:复刻需要一定的动手能力以及工具,至少要一把烙铁(有一些0402,不好焊),
- 五. 焊接方法:推荐(作者使用):烙铁+风枪+加热台+钢网。
- 1.先上MCU面锡膏,放好元件,上加热台铁板烧(方便焊接flash,波轮开关,mcu以及排线插口)
- 2.焊好mcu面先测一下3.3V和12V的电感有没有短路,再测测dcdc芯片的FB引脚有没有对地短路(作者踩过FB的坑,3.3V输出9V芯片一套带走😢)
- 3.没问题可以试着上电(swd接口上3.3V或者dc口上个5V)
- 4.功率面上锡膏,贴好元件,用风枪吹,最后再去焊所有大号电容
- 5.焊好一定要检查8701(拿手机微距看),万用表测一下输入输出有没有哪里短路
- 6.确认没问题了可以上电,正常会输出14~15V!没问题了再去刷程序!
- 对于8701的焊接,建议上锡膏后再加点焊油,用风枪先吹到位,然后给8701四周加上足量焊油,烙铁用马蹄头,温度稍微开高一点,沿着芯片四周慢慢同一方向脱一两遍,一般就焊好了。
- 五. 对于上位机:建议使用win10以上系统,不然可能打不开(win7提示缺少动态链接库,小伙伴踩坑)
十二、关于下一版Xuemeng V7
- Xuemeng V7会进行一次较大的改进,下面为更新日志,不定时更新V7开发进度
XuemengV7更新日志 :
V7ES_p2p01(2025/10/15):
- 更新电压/流采样方式,以提升PID速率
- 新增示波器功能,7MSPS,1Mhz
- 新增信号发生器,输出±5V,15Khz
- 新增拓展接口,支持外挂拓展
- typeC调试口支持USB与串口切换;USB下支持读取外挂flash、链接上位机;串口下支持串口调试与程序刷写
- 新增简易的快充协议检测功能
- 屏幕升级为2.8寸,且由fsmc驱动,可达100fps
- 交互逻辑为旋转编码器+4个独立按键,二者其一都可完成交互
- 将适配全新外壳,更加美观
更多日志
V7ES_p2p02(2025/11/11):
- 修复示波器运放电源接反问题
- 修复调试口串口模式下无法刷写程序问题
- 修复buck-boost芯片引脚漏接线路问题
- 优化短路逻辑,更加可控
- 优化信号发生器电路,成本更低,功能更强大
- 优化丝印布局,进行焊接引导
- 优化mcu DAC输出削波问题
- 优化示波器电路,成本更低,干扰更小
V7ES_p2p02(2025/11/12):
- 优化波形发生器电路,设计:能输出±4V,偏置可调,50Khz max的正弦波,以及三角波等常见波形
- 优化了示波器后级抗混叠电路,显著提升使用体验
- 更改DCDC_3V3配置电阻,优化输出
V7ES_p2p02(2025/11/13):
1.优化了bom表,尽量使用重复元件,节约成本
2.优化了少了布线以及过孔
还有很多小地方上的改进,就等V7再详细说明吧,V7预计会在明年3月初发布~
十三、一些事项
还请不用私信我,大二学习太忙了,没有太多精力搞开源设计,所以一般私信不会回复,在此表示抱歉!
有事情可以进群984946310交流!(答案:雪萌)一般群里的消息我才有时间看并回复,谢谢!



