日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內(nèi)不再提示

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

意法半導體工業(yè)電子 ? 來源:STM32單片機 ? 作者: STM32F4 ? 2021-07-28 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關鍵詞:RTC,tamper

1. 問題描述

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

2. 問題分析及解決

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

為了使用統(tǒng)一的參考物,先建議客戶使用Cube庫下的官方示例代碼:STM32Cube_FW_F4_V1.25.0ProjectsSTM32F446ZE-NucleoExamplesRTCRTC_Calendar,此代碼剛好可以針對此問題進行分析??蛻羰褂么耸纠a測試問題依舊。

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

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

如上面代碼所示,每次上電后會讀取BKP_DR1的值,判斷是否為第一次啟動,如果是,則配置RTC。換句話說,出現(xiàn)問題時,這個判斷肯定出現(xiàn)問題,導致重復配置RTC,也就是備份寄存器的值丟失!是什么原因?qū)е聜浞菁拇嫫鞯闹祦G失呢?

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

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

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

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

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

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

Figure 3客戶產(chǎn)品的vcap和PDR_ON引腳

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

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

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

1》 VDD和VBAT同時掉電

2》 客戶代碼意外修改

3》 檢測到入侵事件

首先排除前面兩種原因,客戶的VBAT不會掉電,第一種情況排除??蛻羰褂玫氖荢T官方提供的示例代碼,應該不存在意外修改的情況,那么第三種…可是示例代碼中也沒有使能入侵檢測??? 于是想到errata sheet, 打開并發(fā)現(xiàn)如下內(nèi)容 :

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

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

從客戶的原理圖可以看出,入侵引腳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引腳拉地再測試,結果問題不再出現(xiàn)??磥泶藛栴}確實由PC13引腳引起。 為了重現(xiàn)客戶的現(xiàn)象,我在STM32F446-EVAL評估板上嘗試重現(xiàn),但是,始終沒有重現(xiàn),但好在客戶修改PC13引腳后確實問題得到解決,所以此問題也就到此為止。

3. 后記

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

編輯:jq

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

    關注

    2

    文章

    667

    瀏覽量

    72248
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    服務器數(shù)據(jù)恢復—斷電致虛擬機不可用,LVM損壞數(shù)據(jù)庫碎片重組恢復案例

    北亞數(shù)據(jù)恢復中心最近接到很多服務器數(shù)據(jù)恢復的案子,這些案子有:服務器斷電數(shù)據(jù)丟失、意外斷電導致服務器無法啟動、服務器可以啟動但是虛擬機丟失、服務器斷電后多塊硬盤出現(xiàn)故障離線.....。下面通過其中一例服務器斷電導致數(shù)據(jù)丟失的案例
    的頭像 發(fā)表于 03-17 14:40 ?164次閱讀
    服務器數(shù)據(jù)<b class='flag-5'>恢復</b>—斷電致虛擬機不可用,LVM損壞數(shù)據(jù)庫碎片重組<b class='flag-5'>恢復</b>案例

    實時時鐘(RTC

    永不丟失。這種獨立性使其成為嵌入式系統(tǒng)、物聯(lián)網(wǎng)設備及消費電子的核心組件,為數(shù)據(jù)記錄、事件同步和低功耗設計提供可靠基石。一、RTC的工作原理:從振蕩計時的精密協(xié)作
    的頭像 發(fā)表于 03-12 08:21 ?255次閱讀
    實時時鐘(<b class='flag-5'>RTC</b>)

    如何從掛起恢復內(nèi)存?

    我使用 202303 的 Debian。 我可以使用以下命令暫停 VisionFive2。 echo mem > /sys/power/state 并使用以下命令從 RTC 事件喚醒
    發(fā)表于 03-11 06:35

    【服務器數(shù)據(jù)恢復意外斷電導致RAID信息丟失與數(shù)據(jù)恢復全過程

    本次為大家分享一則典型的服務器RAID數(shù)據(jù)恢復實戰(zhàn)案例,故障原因為RAID配置信息丟失。 故障服務器為某品牌DL380系列機型,由6塊73GB SAS硬盤組建RAID5磁盤陣列,上層運行
    的頭像 發(fā)表于 02-26 13:47 ?238次閱讀

    RTC無法工作怎么解決?

    我正在嘗試編寫一些裸機代碼,當我嘗試讀取 rtc 設備的寄存器時,我發(fā)現(xiàn)讀取和寫入的都是 0。我嘗試在 uboot 中查看對應地址的,但我寫不出來,也讀不出來。 如寄存器手冊中所
    發(fā)表于 02-25 06:20

    關聯(lián)使能VP時為何改變VP默認初始值?控件關聯(lián)了使能VP變量,為何默認不是0?

    關聯(lián)使能VP時為何改變VP默認初始值?控件關聯(lián)了使能VP變量,為何默認不是0?
    發(fā)表于 02-03 14:19

    智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認該如何設置?

    智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認該如何設置?
    發(fā)表于 12-11 09:54

    智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認該如何設置?

    智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認該如何設置?
    發(fā)表于 12-06 10:20

    RTC工作原理

    經(jīng)過校準后成為時鐘信號RTCCLK,再通過預分頻器得到1Hz的時鐘信號ck_spre? ?3、實時時鐘和日歷數(shù)據(jù)?:RTC內(nèi)部有三個影子寄存器,分別對應亞秒數(shù)據(jù)、時間和日期。系統(tǒng)會定期將當前的日歷賦值
    發(fā)表于 11-28 07:14

    服務器數(shù)據(jù)恢復意外斷電!Linux服務器數(shù)據(jù)恢復大揭秘

    某品牌服務器+存儲,安裝的linux操作系統(tǒng)。 機房意外斷電導致服務器操作系統(tǒng)無法正常啟動,服務器管理員故障服務器進行修復操作后進入系統(tǒng)查看數(shù)據(jù),發(fā)現(xiàn)部分服務器文件丟失。
    的頭像 發(fā)表于 11-18 11:20 ?749次閱讀

    RT-Thread 的全速運行RTC時鐘不走是什么原因?

    RTC從board文件系統(tǒng)時鐘初始drv_rtc文件rt_rtc_control,仿真RTC
    發(fā)表于 10-14 06:37

    如何確定電能質(zhì)量在線監(jiān)測裝置的初始報警閾值?

    確定電能質(zhì)量在線監(jiān)測裝置的初始報警閾值,需遵循 “ 標準為基、負載為核、設備為限 ” 的原則,分 4 步完成,確保初始值既合規(guī)又貼合實際需求,避免后續(xù)頻繁調(diào)整。以下是具體實操方法,附指標示例與場景
    的頭像 發(fā)表于 10-10 16:57 ?1511次閱讀

    在 ISR 發(fā)生之前,當 SFRS 寄存器的發(fā)生變化時,如何避免意外結果?

    在 ISR 發(fā)生之前,當 SFRS 寄存器的發(fā)生變化時,如何避免意外結果?
    發(fā)表于 08-25 07:46

    在 ISR 發(fā)生之前,當 SFRS 寄存器的發(fā)生變化時如何避免意外結果?

    在 ISR 發(fā)生之前,當 SFRS 寄存器的發(fā)生變化時,如何避免意外結果?
    發(fā)表于 08-21 06:33

    請問ISM 交換機如何恢復出廠

    請問ISM 交換機如何恢復出廠?
    發(fā)表于 08-07 06:35
    钟祥市| 晴隆县| 鹤山市| 卫辉市| 龙南县| 翁源县| 桃园市| 合肥市| 隆安县| 孙吴县| 淳安县| 商城县| 汝阳县| 上林县| 新和县| 梅河口市| 沅江市| 黄山市| 冕宁县| 连城县| 西乌珠穆沁旗| 六盘水市| 宽城| 镇沅| 瓦房店市| 青川县| 玛纳斯县| 建宁县| 白朗县| 体育| 卢氏县| 江安县| 和硕县| 教育| 阳东县| 沅江市| 吉木乃县| 明水县| 茶陵县| 句容市| 宝坻区|