你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【问题解决】不能连接上 STM32H7 芯片

[复制链接]
STMCU-管管 发布时间:2022-4-2 14:52
【问题解决】不能连接上 STM32H7 芯片
引言
在重新编程烧录了 STM32H7 目标芯片后,我就无法连接到该设备。选择 “Connect under reset”连接也没有帮助。为什么 ?

原因分析
通过日常客户的技术支持整理,有两种可能的根本原因可以导致这个问题。第一种可能性更大,与电源配置错误有关。其次是与 Option Bytes 选项字节中的内核启动配置相关。下面我们来具体的看一看。

可能原因一(电源配置错误)
这条原因适用于所有具有可配置内部 SMPS 降压转换器的 STM32H7 芯片。采用嵌入式降压转换器的 STM32H7 器件提供了不同的电源方案。代码中供电电源的所选配置取决于外部电源电路组件的连接。此配置只能在上电复位后设置一次。选择错误的配置会导致 MCU锁定,也即是说 STM32H7 软件代码配置的供电模式与外部硬件供电电路不匹配的时候,会导致该芯片被 锁定【lock-up 】。


软件代码中关于电源模式的配置可以通过 HAL 库中的以下代码行完成(通常放在SystemClock_Config 函数中) :
13.png
大多数的电路原理图设计都会选择 SMPS 作为 MCU VDD 的直接供电方式(如果该SMPS 模块在 MCU 中可用),这里就需要使用 PWR_DIRECT_SMPS_SUPPLY 参数替代PWR_LDO_SUPPLY 调用上述函数。但是在早期的 STM32CubeMX 生成的项目在默认情况下可能是 PWR_LDO_SUPPLY 电源选项。所以这儿导致了不一致。而在 CubeMX 5.4.0 及更高版本中提供了 PWR_DIRECT_SMPS_SUPPLY 电源做为默认选项。所以要注意配置的一致性。由于配置只能在上电重置后更改一次,因此问题可能会在下一次电源复位后出现。
14.png


下面是参考手册中的图表,显示了电源的不同硬件配置:
15.png
MCU 内含保护机制,可防止将更高的电压从内部 SMPS 导入到 VCORE(1.8 或 2.5V)。这样可以防止由于配置错误而损坏 MCU。
由于电源通常在复位后立即配置,因此很难连接。
解决方案 1 是:
1、将复位按钮保持在低位(通常为 NRST 引脚),然后接通将电路板电源,
2、保持复位按钮低电位,通过 STM32CubeProgrammer 连接。当程序开始连接时,松开复位按钮。
3、如果连接不上继续执行上述步骤,如果连接上则执行批量擦除。
4、确保已修复项目中的电源配置,重新下载。



解决方案 2 是:
1、强制将 BOOT0 引脚保持高位,然后上电复位目标板。这需要将 BOOT_CM7_ADD1 设置为系统内存。
2、保持 BOOT0 引脚电平为高,通过 STM32CubeProgrammer 连接。系统引导加载程序 System bootloader 不会使用自己用户的电源配置。
3、执行批量擦除。
4、确保已修复项目中的电源配置,重新下载。

可能原因二(Cortex-M7 启动已禁用)
这适用于所有具有双核功能的 STM32H7 设备。有时我们调整选项字节的配置使得只有 Cortex-M4 在复位后才启动(BOOT_CM7/BCM7=0,BOOT_CM4/BCM4=1)。此时你需要将调试器连接到访问端口 AP=3(CortexM4),而不是访问端口 AP=0(Cortex-M7)。


顺便提醒下,使用 STM32CubeProgrammer 进行连接时,注意保持 STM32CubeProgrammer 为最新版本。


对于开发,建议保持两个内核启动配置,否则有些 IDE 工具可能无法与设备一起工作。

2 收藏 评论1 发布时间:2022-4-2 14:52

举报

1个回答
Xa__ 回答时间:3 小时前

如果我不使用SMPS,那么我的这几个引脚电压应该如何配置,SMPS在H7系列里面是默认打开的还是?

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版