找回密码
 立即注册
查看: 185|回复: 3

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 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

主题

1160

回帖

1031

积分

等待验证会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 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函数设置回调函数时可实现中断模式
   若不设置回调函数则为查询模式(详情请参考范例程序)




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 23:36 , Processed in 0.129531 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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