chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

導(dǎo)讀

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

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

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

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

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

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

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

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

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

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

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

說(shuō)明RTC電池電壓已經(jīng)偏低。這樣會(huì)導(dǎo)致RTC時(shí)間不可靠,從而影響到Linux系統(tǒng)時(shí)間的準(zhǔn)確性。

PCF8563芯片具有電池電壓檢測(cè)功能,當(dāng)電壓低于0.9V時(shí)將無(wú)法保證時(shí)鐘信息的準(zhǔn)確性(參考圖1),進(jìn)而導(dǎo)致系統(tǒng)運(yùn)行異常。

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

圖1 PCF8563RTC芯片低壓檢測(cè)功能

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

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

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

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

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

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

設(shè)計(jì)時(shí)需注意以下幾點(diǎn):

RTC_VDD 僅供電給時(shí)鐘芯片的VDD引腳;

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

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

預(yù)留CLKOUT 信號(hào)測(cè)試點(diǎn),用于調(diào)試時(shí)鐘精度,調(diào)試結(jié)束后關(guān)閉該功能可減少功耗。


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

先介紹一下UNIX世界的時(shí)間,Unix紀(jì)元時(shí)間是從協(xié)調(diào)世界時(shí)(UTC)1970年1月1日0點(diǎn)開(kāi)始算起,到現(xiàn)在的總秒數(shù)。這個(gè)時(shí)間也被稱為POSIX時(shí)間。Linux沿用UNIX時(shí)間,在32位處理器的Linux系統(tǒng)里,定時(shí)器是32位的,最大計(jì)數(shù)是0xFFFFFFFF,而在Linux系統(tǒng)中,rtc_time定義的是秒、分、小時(shí)等都是有符號(hào)整數(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í)器有符號(hào)整數(shù)最大計(jì)數(shù)為0x7FFFFFF,換算成十進(jìn)制是2147483647。

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

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

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

    關(guān)注

    88

    文章

    11760

    瀏覽量

    219036
  • 實(shí)時(shí)時(shí)鐘

    關(guān)注

    4

    文章

    335

    瀏覽量

    68314
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    653

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    國(guó)產(chǎn)RTC8900高精度時(shí)鐘模塊

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

    Linux/Android系統(tǒng)如何通過(guò)RTC實(shí)現(xiàn)自動(dòng)開(kāi)機(jī)?

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

    LT1970A:高精度可控電流限制的功率運(yùn)算放大器

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

    LT1970:500mA 功率運(yùn)算放大器的卓越性能與應(yīng)用解析

    LT1970:500mA 功率運(yùn)算放大器的卓越性能與應(yīng)用解析 一、引言 在電子設(shè)計(jì)領(lǐng)域,功率運(yùn)算放大器是一種至關(guān)重要的元件,它能夠?yàn)楦鞣N電路提供必要的功率放大功能。今天,我們將深入探討 Linear
    的頭像 發(fā)表于 01-27 14:20 ?142次閱讀

    瑞芯微(EASY EAI)RV1126B RTC使用

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

    淺談愛(ài)普生RTC模塊的特點(diǎn)與用途

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

    內(nèi)部支持的RTC還獨(dú)立校準(zhǔn),這照比NTP來(lái)說(shuō)優(yōu)勢(shì)是什么?

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

    是誰(shuí)偷走了我的時(shí)間?RTC時(shí)間異常的秘密

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

    星通時(shí)頻22周|以時(shí)光為尺,丈量頻率的精準(zhǔn)與熱愛(ài)

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

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

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

    【RA4L1-SENSOR】RTC實(shí)時(shí)時(shí)鐘

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

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

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

    【米爾-RK3562開(kāi)發(fā)板試用評(píng)測(cè)】rtc測(cè)評(píng)

    至系統(tǒng)時(shí)鐘。MYD-YR3562?持內(nèi)部與外部雙RTC架構(gòu),開(kāi)發(fā)板 系統(tǒng)默認(rèn)使用外部 RTC。針對(duì)常規(guī)功耗場(chǎng)景的 RTC功能驗(yàn)證,可通過(guò) Linux 系統(tǒng)標(biāo)準(zhǔn)工 具(如 hwclock
    發(fā)表于 05-31 15:04

    小安派BW21-CBV-Kit教程——基礎(chǔ)RTC例程與簡(jiǎn)易RTC鬧鐘

    本例演示如何使用 RTC 庫(kù)方法。本函數(shù)介紹如何使用 RTC API。RTC 功能由一個(gè)獨(dú)立的 BCD 定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)。
    發(fā)表于 04-13 17:46 ?724次閱讀
    小安派BW21-CBV-Kit教程——基礎(chǔ)<b class='flag-5'>RTC</b>例程與簡(jiǎn)易<b class='flag-5'>RTC</b>鬧鐘

    RTC芯片有Linux PCA2131驅(qū)動(dòng)程序嗎?

    RTC 芯片有 Linux PCA2131驅(qū)動(dòng)程序嗎? 1) 如果沒(méi)有,我可以使用任何兼容的驅(qū)動(dòng)程序來(lái)驅(qū)動(dòng)這個(gè) RTC 芯片嗎? 2) 如果是,我在哪里可以找到它?
    發(fā)表于 03-31 06:22