在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

教大家輕松解決RTC意外恢復到初始值問題

意法半導體工業電子 ? 來源:STM32單片機 ? 作者: STM32F4 ? 2021-07-28 16:32 ? 次閱讀

關鍵詞:RTC,tamper

1. 問題描述

客戶反饋在使用STM32F446的產品做上電、掉電測試時,RTC會意外恢復到配置的初始值。

2. 問題分析及解決

通過與客戶郵件溝通,了解到客戶的VBAT引腳上有獨立的電池供電,在代碼中當第一次啟動時會檢查備份寄存器中保留的一個標志,如果是第一次運行,則會設置RTC的初始化,包含年月日時分秒,如果不是,則跳過,后面只讀取RTC內的時間信息,并不再修改。

為了使用統一的參考物,先建議客戶使用Cube庫下的官方示例代碼:STM32Cube_FW_F4_V1.25.0ProjectsSTM32F446ZE-NucleoExamplesRTCRTC_Calendar,此代碼剛好可以針對此問題進行分析。客戶使用此示例代碼測試問題依舊。

查看示例代碼,為了排除HSE與LSE的影響,建議客戶將HSE改為HSI, LSE改為LSI,這樣一來,完全跟板上高速晶振無關,跟32.768K的低速也無關。客戶使用修改后的代碼問題依舊。 查看相關代碼:

15166378-ed32-11eb-a97a-12bb97331649.png

如上面代碼所示,每次上電后會讀取BKP_DR1的值,判斷是否為第一次啟動,如果是,則配置RTC。換句話說,出現問題時,這個判斷肯定出現問題,導致重復配置RTC,也就是備份寄存器的值丟失!是什么原因導致備份寄存器的值丟失呢?

同時我這邊在NUCLEO板上嘗試重現客戶的問題,但無論如何嘗試都無法重現,現在兩邊所使用的測試軟件一模一樣,只是各自的硬件平臺有所差異,看來就是這個硬件上的差異帶來的問題。于是下一步比較客戶的硬件與NUCLEO板有何不同。

首先懷疑是VBAT引腳。要是VBAT再現異常,RTC重新配置就很正常,但客戶的VBAT真的會出現問題么?下面是客戶VBAT引腳的相關電路:

153ce70a-ed32-11eb-a97a-12bb97331649.png

Figure 1 VBAT外圍電路 如上圖所示,客戶VBAT外部接一電池,當VDD有電時,VDD將將電池充電,當VDD掉電時,電池給RTC供電。于是向客戶提出VBAT的在掉電上電測試過程中的波形:

VBAT引腳的波形,在電源掉電上電的過程中并沒有出現掉電的情況,也就是說,RTC擁有穩定的電源供應。為了避免VBAT的影響,要客戶干脆將R8這個電阻去掉再測試,結果問題依舊存在。 接下來繼續查看用戶MCU相關的原理圖,發現Vcap引腳上的電路與ST官方的建議并不一致:

17781738-ed32-11eb-a97a-12bb97331649.png

Figure 3客戶產品的vcap和PDR_ON引腳

如上圖所示,客戶所使用的VCAP引腳對地電容為100nF, 而ST建議的是2.2uF,這個電容涉及到MCU內核的穩定性,有沒有可能是MCU內核不穩導致RTC的問題呢?

經驗證,問題與這兩個電容沒有關系,當客戶修改到2.2uF再次測試時,問題依舊。 同時注意到PDR_ON引腳,聯想到曾經多個客戶栽到這個引腳上,客戶可能PDR_ON引腳接錯,虛焊,懸空將會導致一系列奇怪問題。此引腳涉及到掉電檢測。要客戶仔細檢查此引腳是否已經正常連接,客戶反饋確定正常。于是要客戶去掉R64這個10K上拉,直接短接到VDD再測試下。

結果發現問題依舊。 到目前為止,硬件上該檢查的也差不多檢查了,還是沒有找到問題的關鍵。這個時候,想起此問題是由于備份寄存器的值丟失引起,那么什么時候下會丟失呢?思來想去,無外乎以下幾種情況 :

1》 VDD和VBAT同時掉電

2》 客戶代碼意外修改

3》 檢測到入侵事件

首先排除前面兩種原因,客戶的VBAT不會掉電,第一種情況排除。客戶使用的是ST官方提供的示例代碼,應該不存在意外修改的情況,那么第三種…可是示例代碼中也沒有使能入侵檢測啊? 于是想到errata sheet, 打開并發現如下內容 :

17bc53a8-ed32-11eb-a97a-12bb97331649.png

如上所述,即使沒有開啟入侵檢測,當tamper引腳出現高電平的情況下也有可能會導致入侵檢測誤判。于是查看客戶的入侵檢測引腳:

從客戶的原理圖可以看出,入侵引腳PC13用戶外部按鍵輸入,有外部10K上拉電阻 :

18292e92-ed32-11eb-a97a-12bb97331649.png

對照STM32F443-EVAL的相關電路 ,在評估板上,PC13用作tamper檢測但外部下拉 :

18deb172-ed32-11eb-a97a-12bb97331649.png

Figure 5評估板上的PC13

同時評估板上的ST-Link部分的STM32F103的RTC_PC13也是外部10K下拉 :

18e9d714-ed32-11eb-a97a-12bb97331649.png

Figure 6 STM32F103上的PC13外部下拉 看來PC13是有講究的。于是請客戶將PC13引腳拉地再測試,結果問題不再出現。看來此問題確實由PC13引腳引起。 為了重現客戶的現象,我在STM32F446-EVAL評估板上嘗試重現,但是,始終沒有重現,但好在客戶修改PC13引腳后確實問題得到解決,所以此問題也就到此為止。

3. 后記

很多時候當對問題無從下手的時候,解決問題的關鍵是首先找到一個可以參考的參照物,比如軟件是有ST提供的官方示例代碼,硬件是有ST提供的NUCELO板,找到這個關鍵的參考物后接下來逐漸比較客戶的軟硬件與參照物的差異,不斷縮小范圍,這個不失為一種常規比較有效的方法,希望讀者能充分利用。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RTC
    RTC
    +關注

    關注

    2

    文章

    612

    瀏覽量

    68372
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    對IIS3DWBTR發送復位命令后,是不是所有寄存器都會恢復默認呢?

    對IIS3DWBTR發送復位命令后,是不是所有寄存器都會恢復默認?如果不是全部恢復,哪些寄存器不會恢復
    發表于 03-10 08:03

    ADS1298 CONFIG2讀取初始值不正常是什么原因引起的?

    你好,我從貴公司申請了幾片ADS1298的芯片,使用后發現以下問題:1。芯片ID,CONFIG2讀取初始值不正常2。前四個通道控制寄存器讀寫正常,后四個通道寄存器無法讀寫,請問是否出現過類似情況,望盡快回復,謝謝
    發表于 02-13 08:02

    TLC5615芯片輸出的初始值是不是為0?

    TLC5615芯片輸出的初始值是不是為0,還有為什么我的5615芯片我給了數據進入要么就是輸出的0V要么就是輸出的4.8或者5V
    發表于 01-20 09:25

    網絡恢復比災難恢復更加復雜

    技術已然成為維持企業運營的重要動力。對于大多數企業來說,IT服務中斷直接影響運營目標的實現。關注業務連續性的IT策略非常重要。雖然許多企業已經制定了完善的傳統災難恢復計劃,但它們往往無法應對當今數據意外事件的復雜性。企業亟需制
    的頭像 發表于 01-17 15:49 ?425次閱讀

    解析愛普生RTC芯片選型的五大關鍵

    當你的電子設備突然斷電重新開機后,時間又變回了初始值;鬧鐘沒響重要事件記錄不見了,甚至還得重新設置備忘提醒。那么,怎么解決這個問題呢?讓你不再為時間的飛逝而困擾!EPSON將向你介紹RTC芯片選型
    的頭像 發表于 01-06 15:42 ?382次閱讀
    解析愛普生<b class='flag-5'>RTC</b>芯片選型的五大關鍵

    ads1232重復上電AD初始值相差很大怎么解決?

    傳感器,AD也成線性變化,測量沒有問題,只是初始AD變大了。請問這是什么情況,怎么解決,在網上有看到遇到類似問題的,但是沒看到解決辦法。初始化有進行偏移校準,偏移校準去掉也是一樣的,包括PWDN拉高前延時1ms也沒效果。
    發表于 12-17 06:39

    ads124s08把AIN0端口接入的采集電壓斷開或者接通,芯片的寄存器所有配置都變成默認的初始值了,為什么?

    題是我把AIN0端口接入的采集電壓斷開或者接通,芯片的寄存器所有配置都變成默認的初始值了,整個芯片進行復位。我不知道這個是原因。下面是我的連接圖。
    發表于 12-13 07:06

    RTC技術在實時通信中的應用 RTC與VoIP的區別

    在數字化時代,實時通信(RTC)技術已經成為我們日常生活和工作中不可或缺的一部分。從視頻會議在線教育,從遠程醫療社交網絡,RTC技術都在發揮著重要作用。 一、
    的頭像 發表于 12-11 15:38 ?1669次閱讀

    AFE4404沒有接外部時鐘,4404寄存器的為初始值,能夠通過IIC修改寄存器嗎?

    1、首先AFE4404寄存器默認使用外部時鐘,CLK引腳是否必須要先接一個時鐘,通過修改寄存器的改為內部時鐘,然后再停止外部時鐘?? 2、假如沒有接外部時鐘,4404寄存器的為初始值,能夠通過IIC修改寄存器? 3、通過I
    發表于 12-06 06:35

    RTC時鐘使用指南:簡單步驟,實用成果

    今天展示的是RTC時鐘使用指南,輕松學習,完美成果。
    的頭像 發表于 11-08 11:40 ?932次閱讀
    <b class='flag-5'>RTC</b>時鐘使用指南:簡單步驟,實用成果

    提升效率:RTC時鐘實用設置

    今天來給大家講解的是RTC時鐘實用性,提升絕對的效率。
    的頭像 發表于 11-04 16:35 ?1245次閱讀
    提升效率:<b class='flag-5'>RTC</b>時鐘實用設置

    TC377如何將其恢復初始狀態?

    大家好!在調試 TC377 閃存時,我擦除了從 0xAF000000 0xAF0007D0 的一個區域,這可能導致 UDE 設備無法連接到 TC377 芯片。如何將其恢復
    發表于 09-09 07:51

    SinaPos的輸入接口

    輸入接口包括 19 個不同數據格式的輸入。 功能塊的初始配置期間,這些輸入均設置有初始值。輸入接口一覽如下:
    發表于 09-02 14:41 ?0次下載

    什么是RTC模塊?

    什么是“RTC”?“RTC”是實時時鐘的縮寫,它是一種測量時間的電子設備。什么是“RTC模塊”?“RTC模塊”是一個集成了RTCIC、振蕩器電路和主時鐘的單封裝模塊。無需自行設計振蕩器
    的頭像 發表于 07-24 14:14 ?841次閱讀
    什么是<b class='flag-5'>RTC</b>模塊?

    copy table中存放的是否為初始值不為0的data段所在PFlash的地址信息?

    1. copy table中存放的是否為初始值不為0的data段所在PFlash的地址信息?(比如:int a = 10; 變量a被存放到了PFlash的0x8030001c處,copy table
    發表于 07-02 07:51
    主站蜘蛛池模板: 91极品女神嫩模在线播放 | 久久国产免费观看 | 欧洲性开放大片免费观看视频 | 色播久久| 天天干狠狠操 | 色偷偷91综合久久噜噜噜男男 | 中文网丁香综合网 | 亚洲成人免费 | 午夜影视啪啪免费体验区入口 | 国产美女在线精品观看 | 五月婷婷欧美 | 一区二区视频网 | 亚洲成人激情片 | 都市激情综合 | 亚洲a成人| 久久精品综合网 | 国产午夜精品理论片久久影视 | 欧美二级黄色片 | 成人国产永久福利看片 | 中国农村一级片 | 亚洲天堂成人网 | 欧美 变态 另类 人妖班 | 色婷婷色婷婷 | 成人永久免费视频 | 俄罗斯小屁孩cao大人免费 | 狼人久草| 天堂免费观看 | 色婷婷久久综合中文久久蜜桃 | 午夜毛片福利 | 国产伦精品一区二区三区高清 | 免费午夜影片在线观看影院 | 亚洲午夜久久久久久噜噜噜 | 中文一区 | 亚洲一区欧美日韩 | 国产一卡2卡3卡四卡精品网站 | 狠狠色噜噜狠狠狠狠2021天天 | 啪啪大片 | 狠狠色成色综合网 | 下农村女人一级毛片 | 天堂网2021天堂手机版 | 欧美色图中文字幕 |