• 资料介绍
    • 前言
    • 问题描述 
    • 问题复现与分析
    • 验证
    • 小结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1400 STM32G0执行I2C bootloader Go命令后无法连接问题解析

03/20 09:52
356
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1400 STM32G0执行I2C bootloader Go命令后无法连接问题解析

850.43 KB

前言

在 STM32G0B1 的 FLASH_ACR 寄存器中有个 DBG_SWEN 位,当这个位的值为 0时,设备就禁用调试能力,无法通过调试器连接到设备,反之则启用调试能力。

问题描述 

客户使用的是 STM32G0B1 的 I2C bootloader,bootloader 版本是 0x92,在执行完"Go"命令后使用 STM32CubeProgrammer 在"hot plug"模式下连接设备,但是连接失败,提示无法找到设备。

问题复现与分析

使用 NUCLEO-G0B1RE 板进行测试,bootloader 版本与客户的一致都是 0x92,通过配置选项字节将设备配置为从 system memoery 自举(也就是复位后进入片内bootloader 中执行)。

验证

在下载到设备的应用程序中添加打印 FLASH_ACR 寄存器的 DBG_SWEN 位的操作,用来查看执行完 I2C bootloader 的"Go"命令后的 DBG_SWEN 的状态。

小结

在 STM32G0B1x 的 0x92 版本的 bootloader 中,通过 I2C 接口执行完"Go"命令跳转到应用程序时,会将设备的 DBG_SWEN 位配置为 0,也就是禁用设备的调试能力。如果我们想要恢复调试能力的话,可以在应用程序中添加设置 DBG_SWEN 位为 1 的操作。但是其它型号或者其它版本的 bootloader 执行"Go"命令后,不一定会有这种设置,我们应该具体应用具体分析,详细可以参考 AN2606,AN2606 是 STM32 bootloader 的说明文档。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!