『壹』 工程師筆記|不能連接上 STM32H7 晶元
無法連接到 STM32H7 晶元的可能原因及解決方案
一、可能原因一:電源配置錯誤
問題描述:STM32H7 晶元具有可配置的內部 SMps 降壓轉換器,其電源配置取決於外部電源電路組件的連接。如果軟體代碼中配置的供電模式與外部硬體供電連接的模式不一致,會導致晶元被鎖定,從而無法連接。
解決方案:
通過復位和 STM32CubeProgrammer 連接:
將復位按鈕(通常為 NRST 引腳)保持在低位。
接通電路板電源。
保持復位按鈕低。
通過 STM32CubeProgrammer 連接,並在程序開始連接時松開復位按鈕。
如果連接不上,重復上述步驟;如果連接上,則執行批量擦除。
確保已修復項目中的電源配置,並重新下載。
通過強制 BOOT0 引腳高位連接:
強制將 BOOT0 引腳保持高位,然後上電復位目標板(這需要將 BOOT_CM7_ADD1 設置為系統內存)。
保持 BOOT0 引腳電平為高。
通過 STM32CubeProgrammer 連接。系統引導載入程序不會使用用戶的電源配置。
執行批量擦除。
確保已修復項目中的電源配置,並重新下載。
注意事項:
在 STM32CubeMX 中,確保電源配置與硬體連接一致。在 CubeMX 5.4.0 及更高版本中,PWR_DIRECT_SMPS_SUPPLY 電源是默認選項,而在早期版本中可能是 PWR_LDO_SUPPLY。
由於電源配置只能在上電復位後更改一次,因此問題可能會在下一次電源復位後出現。
二、可能原因二:Cortex-M7 啟動已禁用
問題描述:對於具有雙核功能的 STM32H7 設備,如果選項位元組的配置使得只有 Cortex-M4 在復位後才啟動(BOOT_CM7/BCM7=0,BOOT_CM4/BCM4=1),則調試器需要連接到訪問埠 AP=3(Cortex-M4),而不是訪問埠 AP=0(Cortex-M7)。
解決方案:
確保調試器連接到正確的訪問埠(AP=3)。
使用 STM32CubeProgrammer 進行連接時,保持其為最新版本。
建議保持兩個內核啟動配置,否則某些 IDE 工具可能無法與設備一起工作。
三、總結
無法連接到 STM32H7 晶元的問題通常與電源配置錯誤或 Cortex-M7 啟動已禁用有關。通過仔細檢查和調整電源配置,以及確保調試器連接到正確的訪問埠,可以解決這些問題。在解決過程中,使用 STM32CubeProgrammer 進行連接和批量擦除是非常有用的工具。同時,保持 STM32CubeMX 和 STM32CubeProgrammer 的最新版本也是避免此類問題的重要措施。
以上圖片展示了電源配置的相關代碼和硬體配置圖表,有助於進一步理解和解決電源配置錯誤的問題。
