找回密码
 立即注册
查看: 1814|回复: 10

外部供电时USB下载方案-下载快速、不怕死机、不断电下载调试方便

[复制链接]
已绑定手机
已实名认证

147

主题

4045

回帖

1万

积分

超级版主

积分
10681
发表于 2025-3-21 15:15:34 | 显示全部楼层 |阅读模式
一般的项目都是由外部电源/电池给MCU供电的,单纯使用TypeC给整个系统供电的情况并不是很多

(这里不讨论使用TyepC给单片机供电的情况)


那么,总结一下平时进行USB下载时的几个较为麻烦的点
1.需要同时按下电源按键和P32两个按键,且有顺序要求,不够简便
2.虽然可以使用USB不断电下载,但是遇到单片机内部中断卡死、逻辑卡死等情况就没法下载
3.存在外部器件推挽输出时MCU断电不彻底无法正常冷启动


所以,基于以上痛点,这里推荐一种适合外部供电的USB下载方案
(使用TypeC供电的情况,直接按住P32插拔usb口就能进入下载模式了,新的固件都支持这个操作,这里不讨论)
1.P32固定接地,只要插着TypeC线上电就能进入USB下载模式
2.TyepC接口不接+5V线,只连接D+/D-和GND,防止电源冲突
3.不插USB线上电,默认正常运行,因为进入USB下载前会判断P30/P31电平
4.程序内加入USB库实现不断电下载,这样平常情况就不用动电源开关了
5.如果遇到程序卡死导致无法不断电下载,只需要将总电源断电再上电,可以进入USB下载模式
6.因为是总电源断电,所以不会出现外部设备从I/O口供电导致的无法冷启动问题
(单片机上,只需要将P32直接接地,记得给Ucap接一个电容到地(USB部分需使用))
截图202503211552389284.jpg
使用如上的USB口接线即可


回复

使用道具 举报 送花

3

主题

2842

回帖

1444

积分

等待验证会员

积分
1444
发表于 2025-3-21 15:18:00 | 显示全部楼层
针对外部供电时的USB下载调试痛点,推荐一种高效、稳定的解决方案。首先,采用独立电源管理模块,确保MCU与外部器件在下载过程中稳定供电,避免因断电不彻底导致的冷启动问题。其次,优化下载协议,实现单按键触发下载,简化操作流程,无需同时按下多个按键。此外,引入硬件复位机制,当检测到MCU内部中断或逻辑卡死时,自动触发复位,确保下载过程不受影响。最后,通过软件优化,实现断点续传功能,即使在下载过程中出现异常,也能从中断处继续,提高调试效率。该方案适用于大多数外部供电场景,显著提升USB下载的便捷性和可靠性。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

已绑定手机
已实名认证

147

主题

4045

回帖

1万

积分

超级版主

积分
10681
 楼主| 发表于 2025-3-21 15:49:21 | 显示全部楼层
新更新的USB只需要一句usb_init()就能用啦
只需要添加usb的lib库、引入“ai_usb.h”头文件、设定调用usb_init()并打开中断就可以使用了

建议:将usb_init放到程序最开头,并且马上使用EA=1打开总中断
这样就算后面卡死,也可以正常使用usb的不断电下载了

不断电下载的ISP设置部分

使用USB-CDC库:
截图202503211555465124.jpg
截图202503211554588559.jpg
使用USB-HID库:
截图202503211556126275.jpg
截图202503211557131196.jpg

USB库更新说明:
1、使用此压缩包中的新USB库函数,用户程序中不需要再对
   USER_DEVICEDESC,USER_PRODUCTDESC,USER_STCISPCMD进行定义
   如已定义,请删除。
2、USB库默认的不停电下载命令为“@STCISP#”
3、新USB库函数不再区分查询库和中断库,已统一为同一个库
   使用set_usb_OUT_callback函数设置回调函数时可实现中断模式
   若不设置回调函数则为查询模式(详情请参考范例程序)




回复

使用道具 举报 送花

已绑定手机

161

主题

1985

回帖

2184

积分

金牌会员

积分
2184
发表于 2025-3-27 00:29:04 | 显示全部楼层
我断开VCC直接D+D- GND 不能通电。
意思是VCC接外部电池吗
抽空我试下
回复

使用道具 举报 送花

已绑定手机

10

主题

27

回帖

214

积分

中级会员

积分
214
发表于 2025-6-12 21:31:47 | 显示全部楼层
王工,你好!
P32直接接地除了占用1个IO口以外,有没有其它影响?

点评

没有其他影响,如果USB接口不连接电脑上电时,就直接运行程序 连接了USB接口上电时,则会进入USB下载程序  详情 回复 发表于 2025-6-13 09:53
回复

使用道具 举报 送花

已绑定手机
已实名认证

147

主题

4045

回帖

1万

积分

超级版主

积分
10681
 楼主| 发表于 2025-6-13 09:53:17 | 显示全部楼层
yf8*** 发表于 2025-6-12 21:31
王工,你好!
P32直接接地除了占用1个IO口以外,有没有其它影响?

没有其他影响,如果USB接口不连接电脑上电时,就直接运行程序
连接了USB接口上电时,则会进入USB下载程序
回复

使用道具 举报 送花

已绑定手机

10

主题

27

回帖

214

积分

中级会员

积分
214
发表于 2025-6-23 20:14:24 | 显示全部楼层
王*** 发表于 2025-6-13 09:53
没有其他影响,如果USB接口不连接电脑上电时,就直接运行程序
连接了USB接口上电时,则会进入USB下载程序 ...

试过,确实是这样,除了占用一个IO口,其它都一样!
回复

使用道具 举报 送花

已绑定手机

0

主题

15

回帖

96

积分

注册会员

积分
96
发表于 昨天 22:59 | 显示全部楼层
王工,你好!产品有电池供电,已经灌环氧树脂胶,也可以用这种方式下载吗?

点评

不行的,电池供电的话,建议引出 rst 引脚,然后程序内和 isp 下载的时候都设置 rst 引脚为复位功能 这样也可以实现不断电下载  详情 回复 发表于 6 小时前
回复

使用道具 举报 送花

已绑定手机
已实名认证

147

主题

4045

回帖

1万

积分

超级版主

积分
10681
 楼主| 发表于 6 小时前 | 显示全部楼层
Huntk*** 发表于 2026-9-22 22:59
王工,你好!产品有电池供电,已经灌环氧树脂胶,也可以用这种方式下载吗?
...

不行的,电池供电的话,建议引出 rst 引脚,然后程序内和 isp 下载的时候都设置 rst 引脚为复位功能
这样也可以实现不断电下载
回复

使用道具 举报 送花

已绑定手机

0

主题

15

回帖

96

积分

注册会员

积分
96
发表于 5 小时前 | 显示全部楼层
王*** 发表于 2026-9-23 09:24
不行的,电池供电的话,建议引出 rst 引脚,然后程序内和 isp 下载的时候都设置 rst 引脚为复位功能
这样 ...

有相应的操作步骤吗?发个论坛链接看下,谢谢

点评

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=695&highlight=nrst&page=1&extra=#pid3903 rst复位等同冷启动复位,所以都可以进入下载  详情 回复 发表于 4 小时前
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-23 16:14 , Processed in 0.082729 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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