为什么使用了USB STOP功耗降不下去?
本帖最后由 Peixu 于 2025-1-2 11:08 编辑使用APM32F107在初始化了 USB 之后进入STOP的时候,就算配置了所有的io和时钟的处理,功耗还是没办法降下去。 比正常的STOP高一点多毫安。
查看手册 USB外设是有1.75mA的功耗, 说明USB没有完全关闭。
解决方案:
需要在加入 USB_DeviceReset();
如果是OTG系列,除了上面那个函数,也是要把USB外设复位(OTGFSRST = 1),同时关闭时钟(OTGFSEN = 0)
USB接口未完全关闭 外设时钟未关闭 硬件故障,如USB接口损坏或电源管理单元故障 软件或固件中可能存在错误或不当的配置, 时钟没降频? 关注 手册还是很重要的 没用的IO怎么处理的。 即使进入 USB STOP 模式,若外部仍有 USB 设备处于连接状态且未完全停止工作,会持续消耗电量。 USB 控制器芯片或其他相关芯片的引脚可能存在漏电问题。 如果USB被配置为唤醒源,在STOP模式下,USB模块需要保持对外部唤醒信号的检测,这会导致额外的功耗。 USB主机或集线器可能没有正确地发送SUSPEND信号,或者信号被外部干扰所影响。 确认没有硬件错误,比如错误的电源连接或短路。 操作系统的电源管理设置可能没有正确配置。例如,某些系统服务或进程可能被设置为在任何情况下都保持运行,即使进入 USB STOP 模式也不会停止。 PCB设计不合理,存在漏电或短路,导致功耗增加 有的芯片在开启USB功能后,无论是否进入STOP模式,都会有一定的功耗 通过优化代码和配置,减少STOP模式下的电流消耗。例如,可以将除键盘矩阵外的其余所有IO配置成输入上拉模式(针对某些特定的应用场景),以进一步降低功耗。 部分微控制器中,即使进入STOP模式,USB的某些功能可能仍未完全关闭,仍会消耗一定的电流。 谢谢分享经验,学习了。