STM32U5 周期性異常復位問題分析

關鍵字: Option Bytes, IDWG

1. 問題背景

客戶反饋使用 NUCLEO_STM32U575 進行評估時,發現板子燒錄完程序后,能看到指示程序運行的 LED 燈正常點亮,但是程序跑不起來。仔細觀察 LED 指示燈,并不是常亮而是出現周期性的閃爍。擦除固件后,再次測量,發現 MCU 在空片狀態下,還是周期性的復位。客戶將板子寄到 ST 分析。

2. 問題分析

測試使用的工具版本:

STM32CubeMXVersion : 6.12.0
STM32CubeProgrammer Version :2.18.0

2.1. 硬件原理圖及接線檢查

GPIO 部分的原理圖如下:

圖1. NUCLEO-U575 原理圖

2.2. 燒錄固件測試

通過 STM32cubeMX 生成基本的代碼框架,添加測試代碼如下:

重新燒錄控制 PC7 輸出高電平的固件后,測量 PC7 波形如下:

圖2. PC7 波形(紅色指示 VDD,綠色指示 PC7 波形)

PC7 應該恒為高電平,不應該出現周期性的脈沖波形。

隨著分析的推進,GPIO 似乎拉到 3V3 后,會周期性的拉低。監控 NRST 引腳后發現 MCU 出現周期性的復位。測試波形如下:

圖3. 紅色指示 VDD,綠色指示 PC7,藍色指示 NRST 管腳

將內部燒錄的固件全片擦除后,測試波形如下:

圖4. 紅色指示 VDD,綠色指示 PC7,藍色指示 NRST 管腳

MCU 在沒有任何固件的情況下出現周期性的復位,和客戶描述的現象一致。

2.3. 分析異常

事出反常必有妖,既然是復位導致的問題,我們下一步需要找出復位源。

對于 STM32,通常可以通過查看 RCC_CSR 寄存器來判斷復位源。使用STM32CubeProgrammer 在 hot plug 的狀態下連接板子。讀取 RCC_CSR 的寄存器狀態。如下圖:

圖5. RCC_CSR 寄存器

比較奇怪的是 IWDGRSTF 這個位置位了,也就是說發生了看門狗復位。

圖6. RCC_CSR @ IWDGRSTF

進一步分析發現,MCU Option bytes 中配置了 IWDG 硬件模式。使用
STM32CubeProgrammer 讀取 option bytes 的狀態,此時的 IWDG_SW 并未置 1,也就
是說使能了 IWDG,由于沒有喂狗操作,進而引發 IWDG 復位。

圖7. U5 的 IWDG 的功能特點

2.4. 彩蛋

新版本的 STM32CubeProgrammer 增加了一項比較有用的功能。那就是可以一鍵將
Option bytes 恢復為出廠設置,具體操作如下圖:

圖8. 一鍵恢復 OB 功能

3. 小結

芯片無固件周期性復位問題由 Option bytes 中 IWDG 被意外使能引起。
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92206.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92206.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92206.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RedisBloom使用

安裝RedisBloom模塊,從git獲取對應的原碼,make生成.so文件,掛載.so文件,啟動redis docker run --name test-redis -v /iothub/test-redis/data:/data -v /iothub/test-redis/modules:/modules -p 6378:6379 -d redis:4.0.10 redis…

ADC、Flash、SPI、watchdog

ADCADC(Analog-to-Digital Converter), 即模擬信號 - 數字信號轉換器在STM32F103C8T6中, 同樣具有ADC功能.以我們的芯片為例, 也存在2個片上外設ADC, 即ADC1和ADC2, 這兩個ADC片上外設都掛載在APB2總線上.我們的ADC片上外設, 是一種具有12位逐次逼近型ADC,ADC轉換的本質是不斷的…

冷庫設備遠程監控物聯網+省電節能解決方案

隨著生鮮電商、醫藥冷鏈、跨境物流等行業的爆發式增長,我國冷庫容量激增,但傳統冷庫管理模式正面臨嚴峻挑戰。據統計,國內冷鏈運輸損耗率高達12%-15%,其中因溫度失控導致的貨損占比超60%。在某醫藥企業冷庫事故中,因制…

如何開發一個運行在windows系統服務器上的服務

第一步:vs2022創建一個windows服務項目第二步:從工具箱拖拽出一個timer第三步:按下圖所示進入,開始編輯業務邏輯下面給個例子using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; …

本地組策略編輯器無法打開(gpedit.msc命令異常)

一、本地組策略編輯器打開方式1、直接搜索打開(1)在搜索欄中直接輸入以下內容進行搜索本地組策略編輯器(2)搜索到后直接點擊打開即可(但是一部分同志無法搜索到,搜索到的內容基本都是網頁信息而非本地系統的…

kafka部署集群模式

Kafka部署(3.7) 生產環境推薦的kafka部署方式為operator方式部署,Strimzi是目前最主流的operator方案。集群數據量較小的話,可以采用NFS共享存儲,數據量較大的話可使用local pv存儲 部署operator operator部署方式為he…

C語言中級_動態內存分配、指針和常量、各種指針類型、指針和數組、函數指針

0、前言: 動態內存分配是一個重要概念,要和靜態數組對比著學習;指針和數組搭配在一起,讓指針理解的難度上了一個臺階,尤其是二維數組搭配指針,要獲取數組的值,什么時候“取地址”,什…

單變量單步時序預測:CNN-GRU卷積神經網絡結合門控循環單元

目錄預測效果1. **CNN-GRU的基本原理**2. **應用場景**3. **模型結構與實現**4. **優勢與挑戰**5. **相關研究與實現**6. **未來發展方向**結論代碼設計預測效果 CNN-GRU卷積神經網絡結合門控循環單元是一種結合了卷積神經網絡(CNN)和門控循環單元&#…

MonoFusion 與 Genie 3

卡內基梅隆大學的研究者發明了一種叫 MonoFusion 的新技術,它能用很少的普通相機(比如4個),就能拍出像電影特效一樣細膩流暢的動態3D場景(4D重建),比如彈鋼琴、修自行車這種復雜動作&#xff0c…

kubernets命令行創建Token并附加權限給dashboard控制臺登錄

1、創建登錄token kubectl create token default -n graph-node-test dgjeojrgopejgeropjgpsdjgerjglsdjfsjogjeojgeorjgortlfhj4yu493460uwperg3wef;lsj2y3r934tnrhifrlfe9t4h5tlhobdrmlgw485tw4yp653ut9ogogjerolj4w9erjgotj3fgjletyj49yr20o359truyo5u6908430jt5grjsdtgj49…

什么是SpringBoot

題目詳細答案Spring Boot 是由 Pivotal 團隊提供的一個基于 Spring 框架的項目,它旨在簡化 Spring 應用的開發和部署。Spring Boot 通過提供一系列的約定和開箱即用的功能,使得開發者可以更快地構建獨立的、生產級的 Spring 應用程序,而無需進…

從零開始設計一個分布式KV存儲:基于Raft的協程化實現

從零開始設計一個分布式KV存儲:基于Raft的協程化實現 本文將以一個最小可運行的分布式KV系統為例,帶你拆解如何用C、Raft算法和協程模型構建高可用的Key-Value存儲。 一、為什么需要分布式KV? 單機KV(如Redis)存在單點…

虛擬機或docker的ubuntu無界面安裝完成后鏡像源設置

ubuntu系統源 在裝好虛擬機或者docker鏡像后,直接使用apt update && apt upgrade是無法完更新的。 此時系統中也沒有vim工具,我們可以在清華源的網站中找到幫助文檔。mirrors.tuna.tsinghua.edu.cn/help/ubuntu/為了避免沖突,我們使用…

串口通信02 溫度傳感DS18B20 01 day49

九:串口通信 通信:無線和有線 ? 單工 半雙工 全雙工 并行:多個數據線 串行:一根數據線 同步:通信雙方使用同一個時鐘,SPI信息幀,有CLK引腳 異步:通信雙方使用不同時鐘,雙…

【FreeRTOS 】任務通知

FreeRTOS 任務通知任務通知簡介一 、發送通知1.1 xTaskNotify()1.2 xTaskNotifyFromISR()1.3 xTaskNotifyGive()1.4 xTaskNotifyAndQuery()1.5 xTaskNotifyAndQueryFromISR()二、接收通知2.1 ulTaskNotifyTake()2.2 xTaskNotifyWait()三、清除通知狀態和值3.1 xTaskNotifyState…

Android視圖狀態以及重繪

一、視圖狀態(View States)1. 五種核心狀態狀態作用修改方法特點enabled視圖是否響應交互setEnabled(boolean)禁用狀態下不響應onTouch事件focused視圖是否獲得焦點requestFocus()需同時滿足focusable和focusableInTouchModewindow_focused視圖所在窗口是…

vue3接收SSE流數據進行實時渲染日志

后端使用的是 Spring Boot WebFlux(響應式編程框架),并且返回的是 Server-Sent Events (SSE) 流式數據,那么在 Vue3 中,需要使用 EventSource API 或 fetch 流式讀取 來正確獲取響應內容。方案 1:使用 Eve…

每日五個pyecharts可視化圖表-bars(6)

探索pyecharts庫中條形圖的高級用法與定制技巧 在數據可視化中,條形圖是最常用的圖表類型之一,它能夠清晰地展示不同類別之間的數量對比。今天,我們將繼續學習如何使用pyecharts創建5種不同風格的條形圖。pyecahts源碼 圖表1:帶…

【C語言】文件操作全解析

文章目錄一、為什么需要文件操作?二、認識文件:不止是磁盤上的存儲2.1 程序文件2.2 數據文件2.3 文件名的構成三、文本文件與二進制文件:數據的兩種形態3.1 存儲方式差異3.2 實例對比:整數10000的存儲3.3 二進制文件操作示例四、文…

C結構體的幾種定義形式 + typedef結合使用的好處

struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下: struct tag { member-list member-list member-list ... } variable-…