找回密码
 立即注册
查看: 73|回复: 5

请教一下 《89-USB CDC转双串口-做自动停电上电烧录器》

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:44
  • 最近打卡:2025-09-18 08:05:37

6

主题

77

回帖

364

积分

中级会员

积分
364
发表于 6 天前 | 显示全部楼层 |阅读模式

STC32G12K128 用 《89-USB CDC转双串口-做自动停电上电烧录器 》例子没有看到效果。

1. 硬件连接方式:
截图202509120734216838.jpg

2. 查看例子说明:
截图202509120744413113.jpg


3. 对照原理图:
截图202509120800207154.jpg

4. 验证结果:
截图202509120805215367.jpg



为什么这个例子不行呢?
另外说一下我用AiCube生成的工程却可以,那这个《89-USB CDC转双串口-做自动停电上电烧录器》需要修改哪里呢?
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&pid=185954&ptid=20068



回复

使用道具 举报 送花

3

主题

1967

回帖

782

积分

等待验证会员

积分
782
发表于 6 天前 | 显示全部楼层
您好,关于您提到的《89-USB CDC转双串口-做自动停电上电烧录器》例程在使用 STC32G12K128 时未达到预期效果的问题,结合您提供的硬件连接、示例说明、原理图以及验证结果,我们从以下几个方面进行分析与排查:

一、问题现象总结

1. 使用官方例程《89-USB CDC转双串口-做自动停电上电烧录器》无法实现预期功能;
2. 使用 AiCube 生成的工程可以正常工作;
3. 硬件连接方式、示例说明、原理图均已提供,但功能未生效;
4. 验证结果中未观察到预期的自动断电上电烧录行为。

二、可能原因分析

1. 目标芯片型号适配问题
该例程最初可能是为特定型号的 STC 芯片设计(如 STC32G 系列早期型号或其他子系列),而 STC32G12K128 虽然同属 STC32G 系列,但其寄存器配置、引脚定义、时钟系统或 USB 模块可能存在差异。

建议核对以下内容:
是否启用了正确的 USB 模块(如 USB CDC 模式);
是否配置了正确的中断向量与中断服务函数;
是否启用了正确的系统时钟源(如内部高速时钟或外部晶振);
是否使用了芯片特有的寄存器(如特殊功能寄存器 SFR)。

2. USB CDC 配置不一致
在 USB CDC 虚拟串口通信中,主机(PC)与设备(MCU)之间的通信依赖于:
正确的 USB 描述符配置;
正确的端点配置(IN/OUT);
正确的数据收发逻辑。

如果例程中未适配 STC32G12K128 的 USB 描述符或端点处理逻辑,可能导致无法枚举为虚拟串口,从而无法触发自动烧录流程。

3. 自动断电/上电控制逻辑未生效
该例程的核心功能是通过 USB CDC 控制一个 GPIO 引脚来控制目标芯片的电源或复位信号,从而实现自动烧录。若以下部分配置错误,可能导致无法触发:
GPIO 控制逻辑是否正确;
控制时序是否符合目标芯片烧录器要求;
是否存在硬件驱动能力不足(如使用了不合适的 GPIO 驱动模式);
是否存在电源控制电路设计问题(如MOS管选型、电平匹配等);

4. 工程配置与编译环境不一致
使用 AiCube 生成的工程可以正常运行,说明生成工具可能根据芯片型号自动修正了以下内容:
启动文件(startup file);
系统初始化配置(如系统时钟、中断优先级);
USB 模块初始化代码;
编译器优化选项或链接脚本配置差异。

建议对比 AiCube 生成的代码与原始例程之间的差异,尤其是:
系统初始化函数(SystemInit);
USB 初始化函数(USBInit);
中断处理函数(如 USB 中断服务函数);
GPIO 配置函数(如控制复位/断电的 GPIO 配置);

三、建议排查与修改方向

1. 确认 USB 枚举状态
在 PC 端查看设备管理器,确认是否成功枚举为“USB Serial Port”;
若未枚举成功,检查 USB 描述符、端点配置、USB 中断处理是否正确;
使用 USB 抓包工具(如 Wireshark 或 USBlyzer)分析 USB 枚举过程是否存在错误。

2. 验证 GPIO 控制逻辑
使用示波器或逻辑分析仪测量控制复位/断电的 GPIO 引脚是否有预期的高低电平变化;
检查是否设置了正确的 GPIO 模式(如推挽输出、开漏输出等);
检查是否启用了 GPIO 时钟;
检查是否与原理图中的控制引脚一致(如是否误用了复用功能引脚)。

3. 检查电源控制电路
确认控制电路(如 NMOS、PMOS 或继电器)是否能够可靠地断开与接通目标芯片电源;
检查是否因电容放电时间过短导致复位不彻底;
检查是否因电平不匹配导致控制信号无效。

4. 对比 AiCube 生成代码与原例程
逐项比对系统初始化、USB 初始化、GPIO 初始化等关键函数;
检查是否有未启用的模块(如电源控制模块、USB 模块);
检查是否缺少必要的库函数或头文件支持。

5. 查看串口通信逻辑
确认是否接收到 PC 端发送的控制指令;
检查串口接收中断是否启用;
检查是否对接收到的数据进行正确解析与响应。

四、结论与建议

综上所述,《89-USB CDC转双串口-做自动停电上电烧录器》例程在 STC32G12K128 上未正常工作的原因,可能为以下几点:

1. 芯片适配问题:原例程未适配 STC32G12K128 的 USB 模块或系统初始化配置;
2. GPIO 控制逻辑未生效:控制断电/复位的引脚配置或时序不正确;
3. USB 枚举失败:导致 PC 无法识别虚拟串口,进而无法发送控制指令;
4. 工程配置不一致:AiCube 自动生成的工程可能修正了原始例程中的某些配置错误。

五、后续操作建议

1. 使用 AiCube 生成的工程作为参考,对比分析差异;
2. 逐步调试 USB 枚举过程与 GPIO 控制流程;
3. 使用调试工具(如 STC-ISP、逻辑分析仪)辅助定位问题;
4. 如需进一步协助,建议提供 AiCube 生成工程与原例程的代码差异截图或关键代码片段。

若您方便,可将 AiCube 生成的工程中 USB 初始化、GPIO 控制、系统时钟配置等关键部分代码贴出,我们可以进一步分析并指导如何修改原例程以适配 STC32G12K128。

祝调试顺利!

国芯人工智能 敬上

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:302
  • 最近打卡:2025-09-18 08:50:50
已绑定手机

82

主题

3126

回帖

6929

积分

荣誉版主

无情的代码机器

积分
6929
发表于 6 天前 | 显示全部楼层
对功能理解有误。
这个例程是“作下载器”用,不是自身的不停电下载,是通过此芯片给另一个MCU下载.


可以全局搜索“@STCISP#”,这个例程都没处理此命令,对吧。


三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:517
  • 最近打卡:2025-09-18 12:36:09
已绑定手机

45

主题

2228

回帖

7828

积分

论坛元老

积分
7828
发表于 6 天前 | 显示全部楼层
你说的这个例子可以做USB转双串口的烧录器,用它给其他单片机进行烧录时,会自动对目标单片机进行断电-上电操作。
这个例子没对自身进行不停电下载的功能。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:44
  • 最近打卡:2025-09-18 08:05:37

6

主题

77

回帖

364

积分

中级会员

积分
364
发表于 6 天前 | 显示全部楼层
erci*** 发表于 2025-9-12 09:02
对功能理解有误。
这个例程是“作下载器”用,不是自身的不停电下载,是通过此芯片给另一个MCU下载.

学了个稀里糊涂。。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:44
  • 最近打卡:2025-09-18 08:05:37

6

主题

77

回帖

364

积分

中级会员

积分
364
发表于 6 天前 | 显示全部楼层
乘风*** 发表于 2025-9-12 09:04
你说的这个例子可以做USB转双串口的烧录器,用它给其他单片机进行烧录时,会自动对目标单片机进行断电-上电 ...

原来如此,
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-18 16:44 , Processed in 0.116313 second(s), 73 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表