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

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

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

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

Linux的RTC回到了1970年,是時光倒流了么?

ZLG致遠電子 ? 2024-12-17 11:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導讀

RTC是一種用于記錄時間的電子設備,廣泛應用于各種嵌入式系統(tǒng)中。本文通過實際案例分析RTC在實際應用中的問題并給出實際建議,如時間“歸零”、RTC時間誤差過大等。

RTC (Real Time Clock):實時時鐘,是一個獨立的定時器,無論器件處于運行模式、低功耗模式還是復位狀態(tài),只要電源電壓保持在工作范圍內(nèi),RTC就會一直工作,實現(xiàn)計時功能。RTC電路雖然簡單,但實際應用中還是會出現(xiàn)一些問題,例如時間“歸零”、RTC時間誤差過大等等,既涉及到硬件方面,也涉及到軟件方面。下面結(jié)合實際遇到的問題進行一些方案討論和建議。

另外,在32位Linux系統(tǒng)上,不可避免的會遇到2038年問題,也放在這里一并闡述。

4bd26ad8-bc28-11ef-8084-92fbcf53809c.jpg ?從倉庫發(fā)貨的全新產(chǎn)品,為何RTC時間是1970年?

全新產(chǎn)品,開機后系統(tǒng)時間是1970年,有兩種可能性:

產(chǎn)品RTC電池沒有正確安裝,或者鋰電池與電池倉之間的隔離塑料墊片沒有去掉,RTC沒電不工作。

  1. 安裝了RTC電池,但RTC電池已經(jīng)被耗盡,這情況一般出現(xiàn)在較長時間庫存產(chǎn)品上。

提示:RTC獨立供電的產(chǎn)品,使用前必須正確安裝RTC電池,并在第一次開機的時候設置正確的RTC時間。庫存產(chǎn)品,不安裝RTC電池,或者在安裝電池時做好供電隔離。

4bd26ad8-bc28-11ef-8084-92fbcf53809c.jpg ?產(chǎn)品運行一段時間后,RTC變成1970年了,引起程序運行異常

正常運行的系統(tǒng),經(jīng)過一段時間后內(nèi)核出現(xiàn)如下提示:

rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.

說明RTC電池電壓已經(jīng)偏低。這樣會導致RTC時間不可靠,從而影響到Linux系統(tǒng)時間的準確性。

PCF8563芯片具有電池電壓檢測功能,當電壓低于0.9V時將無法保證時鐘信息的準確性(參考圖1),進而導致系統(tǒng)運行異常。

4c0f0510-bc28-11ef-8084-92fbcf53809c.jpg

圖1 PCF8563RTC芯片低壓檢測功能

為了避免出現(xiàn)RTC電池電壓偏低的情況,可以做如下方面的考慮:

  • 可考慮用可充電的RTC電池,并設計充電電路;
  • 關閉RTC芯片的CLKOUT功能,降低RTC功耗,延長RTC電池續(xù)航時間;
  • 增加超級電容,正常上電時由系統(tǒng)電源供電,系統(tǒng)掉電后由超級電容供電,超級電容耗盡再用鋰電池供電。

圖2是RTC多電源供電參考原理圖。

4c28b280-bc28-11ef-8084-92fbcf53809c.jpg

4c312a6e-bc28-11ef-8084-92fbcf53809c.png

圖2 RTC多電源供電參考原理圖

設計時需注意以下幾點:

RTC_VDD 僅供電給時鐘芯片的VDD引腳;

RTC_VDD供電線路上使用的二極管選型低壓降、低漏電流;

I2C 上拉電阻使用系統(tǒng)電源;

預留CLKOUT 信號測試點,用于調(diào)試時鐘精度,調(diào)試結(jié)束后關閉該功能可減少功耗。


4bd26ad8-bc28-11ef-8084-92fbcf53809c.jpg ?讓人頭疼的“2038年”問題

先介紹一下UNIX世界的時間,Unix紀元時間是從協(xié)調(diào)世界時(UTC)1970年1月1日0點開始算起,到現(xiàn)在的總秒數(shù)。這個時間也被稱為POSIX時間。Linux沿用UNIX時間,在32位處理器的Linux系統(tǒng)里,定時器是32位的,最大計數(shù)是0xFFFFFFFF,而在Linux系統(tǒng)中,rtc_time定義的是秒、分、小時等都是有符號整數(shù)。

struct rtc_time { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst;};

32位定時器有符號整數(shù)最大計數(shù)為0x7FFFFFF,換算成十進制是2147483647。

2147483647秒,換算成年的話,是68.09625973490614年,大概是68年零18天。所以,UNIX時間,從1970年1月1日零時起,經(jīng)過68年零18天后(確切是2038年1月19日中午1107),計數(shù)器溢出,RTC將無法正常工作。在32位系統(tǒng)上解決這個問題,需要升級到Linux內(nèi)核到高版本,同時升級glibc,工作量很大,對一些發(fā)布較久的處理器,原廠不一定能提供新版本內(nèi)核,這是很讓人頭疼的。如果選用選用64位處理器,跑64位Linux系統(tǒng)就沒這個問題了。

升級到64位Linux系統(tǒng)后,RTC計數(shù)器最大值為0x7FFFFFFFFFFFFFFF,換算成十進制是9223372036854775807。9223372036854775807秒,換算成年,大約是292億年,完全不用去考慮RTC時間溢出的問題了。

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

    關注

    88

    文章

    11822

    瀏覽量

    219602
  • 實時時鐘
    +關注

    關注

    4

    文章

    364

    瀏覽量

    68528
  • RTC
    RTC
    +關注

    關注

    2

    文章

    667

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入剖析MAX1970/MAX1971/MAX1972:高性能雙路降壓調(diào)節(jié)器的設計與應用

    深入剖析MAX1970/MAX1971/MAX1972:高性能雙路降壓調(diào)節(jié)器的設計與應用 在電子設計領域,電源管理芯片的性能直接影響著整個系統(tǒng)的穩(wěn)定性和效率。今天,我們就來深入探討一下MAXIM公司
    的頭像 發(fā)表于 03-21 15:30 ?626次閱讀

    實時時鐘(RTC

    在電子設備的精密世界里,實時時鐘(RTC)如同一位永不疲倦的守夜人,默默維持著系統(tǒng)的時間秩序。無論主電源中斷還是設備進入低功耗休眠,RTC都能依靠備用電源(如鋰電池或超級電容)持續(xù)運行,確保時間信息
    的頭像 發(fā)表于 03-12 08:21 ?255次閱讀
    實時時鐘(<b class='flag-5'>RTC</b>)

    國產(chǎn)RTC8900高精度時鐘模塊

    超高精度RTC,內(nèi)置晶體+溫補,功耗1.0μA,針對工控、電力、安防監(jiān)控、數(shù)據(jù)中心等領域?qū)?b class='flag-5'>RTC精度的較高要求,提供了超高精度RTC系列,精度有±2ppm/±3.4ppm/±5ppm,支持多種封裝
    的頭像 發(fā)表于 02-04 11:27 ?289次閱讀
    國產(chǎn)<b class='flag-5'>RTC</b>8900高精度時鐘模塊

    Linux/Android系統(tǒng)如何通過RTC實現(xiàn)自動開機?

    在嵌入式開發(fā)中,我們經(jīng)常會遇到這樣的需求:設備需要在指定時間自動開機(比如物聯(lián)網(wǎng)網(wǎng)關定時喚醒采集數(shù)據(jù)、工業(yè)設備按班次啟動、服務器遠程維護后自動重啟)。而實現(xiàn)這一功能的核心,往往離不開RTC(實時時鐘) 芯片—— 它能在設備關機后依靠備用電池繼續(xù)計時,到預設時間后觸發(fā)硬件開機信號。
    的頭像 發(fā)表于 02-01 16:59 ?2054次閱讀
    <b class='flag-5'>Linux</b>/Android系統(tǒng)如何通過<b class='flag-5'>RTC</b>實現(xiàn)自動開機?

    LT1970A:高精度可控電流限制的功率運算放大器

    LT1970A:高精度可控電流限制的功率運算放大器 在電子工程師的日常設計中,功率運算放大器是一個關鍵的組件,它在各種應用場景中都發(fā)揮著重要作用。今天要給大家介紹的是 Linear
    的頭像 發(fā)表于 01-27 14:20 ?254次閱讀

    LT1970:500mA 功率運算放大器的卓越性能與應用解析

    LT1970:500mA 功率運算放大器的卓越性能與應用解析 一、引言 在電子設計領域,功率運算放大器是一種至關重要的元件,它能夠為各種電路提供必要的功率放大功能。今天,我們將深入探討 Linear
    的頭像 發(fā)表于 01-27 14:20 ?343次閱讀

    瑞芯微(EASY EAI)RV1126B RTC使用

    正常運行。不同的時鐘芯片內(nèi)部機制不一樣,但在Linux系統(tǒng)中驅(qū)動封裝了不同時鐘芯片的操作細節(jié),為應用程序提供了統(tǒng)一的時間操作接口。1.1開發(fā)板的RTC資源EASYE
    的頭像 發(fā)表于 01-08 14:30 ?846次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>RTC</b>使用

    淺談愛普生RTC模塊的特點與用途

    實時時鐘(RTC)在眾多需要精確計時的應用中起著不可或缺的作用,而RTC又不僅僅只是一個用來計時的電子元器件。在以下文章中,將介紹實時時鐘(RTC)與RTC模塊,同時了解愛普生的
    的頭像 發(fā)表于 01-04 09:16 ?836次閱讀
    淺談愛普生<b class='flag-5'>RTC</b>模塊的特點與用途

    內(nèi)部支持的RTC還獨立校準,這照比NTP來說優(yōu)勢是什么?

    我看芯源有支持內(nèi)置獨立校準的RTC,這種時鐘準?這照比NTP來說,優(yōu)勢在哪里?
    發(fā)表于 12-03 07:59

    是誰偷走了我的時間?RTC時間異常的秘密

    嵌入式產(chǎn)品中的RTC(實時時鐘)對于維持時間準確性至關重要。然而,實際應用中,我們常常會遇到時間偏差甚至時間回退到1970的問題。今天,我們來探討這些時間問題的根源及解決方法。RTC
    的頭像 發(fā)表于 09-02 11:35 ?2575次閱讀
    是誰偷走了我的時間?<b class='flag-5'>RTC</b>時間異常的秘密

    星通時頻22周|以時光為尺,丈量頻率的精準與熱愛

    方寸晶片間雕刻時光的精度,用精準守護每一個設備的“心跳”!22,是8030個日夜的匠心堅守,是8030個日夜的沉淀,是22載與晶振共舞的光陰:累計交付超30億顆
    的頭像 發(fā)表于 08-14 11:26 ?1046次閱讀
    星通時頻22周<b class='flag-5'>年</b>|以<b class='flag-5'>時光</b>為尺,丈量頻率的精準與熱愛

    AT32的ERTC與RTC的區(qū)別

    的日歷邏輯,直接給出、月、日、時、分、秒,大大簡化了軟件操作和降低了出錯概率 。 中斷與鬧鐘功能 RTC :較為基礎,通常只提供一個中斷請求,用于鬧鐘功能 。 ERTC :提供多個中斷源,包括兩個
    發(fā)表于 07-11 10:48

    【RA4L1-SENSOR】RTC實時時鐘

    在使用SLCDC配置好段碼LCD屏之后,則能不用來顯示個時間呢 下面展示下配置RTC的流程 時鐘源要選擇外部低俗時鐘,就是圖中的Sub-clock Frequency Comparision
    發(fā)表于 06-13 12:10

    “耐高溫!”RTC時鐘芯片+電池的應用案例(二)

    實時時鐘,簡稱RTC,是廣泛應用于電子產(chǎn)品的重要元器件。愛普生RTC實時時鐘具有高精度、高穩(wěn)定性和多功能等特點,廣泛應用于多個行業(yè)。RTC時鐘芯片主要功能是保持設備時間的準確運行,即使在主電源斷電
    的頭像 發(fā)表于 06-04 17:35 ?2011次閱讀
    “耐高溫!”<b class='flag-5'>RTC</b>時鐘芯片+電池的應用案例(二)

    【米爾-RK3562開發(fā)板試用評測】rtc測評

    至系統(tǒng)時鐘。MYD-YR3562?持內(nèi)部與外部雙RTC架構(gòu),開發(fā)板 系統(tǒng)默認使用外部 RTC。針對常規(guī)功耗場景的 RTC功能驗證,可通過 Linux 系統(tǒng)標準工 具(如 hwclock
    發(fā)表于 05-31 15:04
    科尔| 夹江县| 河间市| 建德市| 清丰县| 青州市| 巴彦县| 清新县| 合水县| 玉龙| 新巴尔虎右旗| 衡阳县| 莲花县| 龙口市| 澎湖县| 水富县| 疏勒县| 长顺县| 广汉市| 大理市| 六安市| 恭城| 长葛市| 尼勒克县| 罗定市| 金华市| 威信县| 阿鲁科尔沁旗| 东城区| 阿克苏市| 广南县| 英超| 三穗县| 同仁县| 开化县| 穆棱市| 石首市| 鄂伦春自治旗| 射阳县| 固安县| 舞钢市|