許多嵌入式應(yīng)用需要知道時(shí)間,以便在特定的時(shí)間和日期,或針對(duì)時(shí)間戳事件,或同時(shí)依據(jù)兩者執(zhí)行特定的任務(wù)。執(zhí)行此功能的 RTCC(實(shí)時(shí)時(shí)鐘和日歷)芯片問世已有數(shù)十年,但設(shè)計(jì)人員在縮減元件數(shù)目和基底面,同時(shí)最大限度減少功耗和設(shè)計(jì)時(shí)間方面一直面臨著挑戰(zhàn)。
集成式 RTCC 器件和創(chuàng)新式模塊如今可以應(yīng)對(duì)這些挑戰(zhàn)。
本文將討論如何選擇 RTCC 芯片,并快速應(yīng)用于嵌入式系統(tǒng)的設(shè)計(jì)中,同時(shí)最大限度減小空間,降低功耗。文中還會(huì)討論具有內(nèi)置 RTCC 的 MCU,以及將可用的 RTCC 模塊與表面貼裝 RTC 及其他元件一同使用,協(xié)助原型開發(fā)。
整合到模塊中的 RTCC 芯片通常由 Arduino 庫和 Raspberry Pi Raspbian 驅(qū)動(dòng)程序覆蓋層提供支持,利用它們可以更輕松地使用上述器件開展嵌入式實(shí)驗(yàn)和原型開發(fā)。
RTCC 的角色
許多嵌入式應(yīng)用需要以極低的功耗跟蹤相對(duì)于真實(shí)世界的時(shí)間,同時(shí)減少在主處理器中所占用的空間,便與其處理其他任務(wù)。
然而,就其本身而言,RTCC 芯片能力有限。它需要一個(gè)用于計(jì)時(shí)的精確晶體(可能為可實(shí)現(xiàn)極精確計(jì)時(shí)的溫度補(bǔ)償型晶體),還需要備用電池電源,以便在嵌入式系統(tǒng)斷電時(shí)仍能繼續(xù)跟蹤時(shí)間。這些輔助元件決定了 RTCC 執(zhí)行其兩項(xiàng)主要任務(wù)的能力:
在所有條件下持續(xù)記錄精確的時(shí)間和日期
在嵌入式系統(tǒng)的其余部分?jǐn)嚯姾笙臉O少的功率
部分微控制器采用 RTCC
一些微控制器,例如 Microchip Technology 的 32 位 PIC32MZ2064DAA288 微控制器,采用了內(nèi)部 RTCC 塊。將此類器件用于設(shè)計(jì)需要精確計(jì)時(shí)的系統(tǒng)似乎是個(gè)不錯(cuò)的主意,尤其是,PIC32MZ2064DAA288 微控制器在其用于為器件供電的正常電源引腳(VDDCORE 和 VDDIO)電壓不足時(shí),會(huì)自動(dòng)將內(nèi)部電源切換至其電池輸入引腳 (VBAT)。
但是,這類與 RTCC 以上所列兩項(xiàng)關(guān)鍵任務(wù)(即精確計(jì)時(shí)和低功耗運(yùn)行)直接相關(guān)的器件,還存在一些其他挑戰(zhàn)。
首先,PIC32MZ2064DAA288 微控制器的 RTCC 塊需要在其兩個(gè)次級(jí)振蕩器引腳上連接一個(gè) 32768 赫茲 (Hz) 晶體,以便在微控制器斷電時(shí)維持精確的時(shí)間。雖然可以使用微控制器的主時(shí)鐘振蕩器來運(yùn)行 RTCC 塊,但當(dāng)微控制器處于深度睡眠模式時(shí),該振蕩器會(huì)停止運(yùn)行。
片載 RTCC 采用了一個(gè)校準(zhǔn)寄存器,Microchip 也提供了一個(gè)校準(zhǔn)程序,可在晶體振蕩器頻率偏移最多 260 ppm 時(shí)將計(jì)時(shí)誤差減小至每個(gè)月 0.66 秒。但固定校準(zhǔn)無法計(jì)入溫度波動(dòng),而這也會(huì)影響振蕩器的頻率,進(jìn)而影響計(jì)時(shí)精度。
其次,除 RTCC 塊之外,微控制器在切換至電池電源后并未完全斷電。根據(jù)軟件控制,微控制器中的其他塊在電池運(yùn)行期間可能啟用也可能未啟用。這樣帶來的挑戰(zhàn)是,電池的消耗和壽命變得高度依賴軟件。
這一挑戰(zhàn)并非 PIC32MZ2064DAA288 微控制器所獨(dú)有。任何采用 RTCC 塊的微控制器都會(huì)出現(xiàn)此問題。使用單獨(dú)的 RTCC 芯片可以克服該問題,將計(jì)時(shí)功能與微控制器明確隔離,而且,在微控制器不含內(nèi)部 RTCC 時(shí),這也是唯一的設(shè)計(jì)選擇。
RTCC 芯片和模塊
數(shù)十年來,設(shè)計(jì)工程師一直使用單獨(dú)的 RTCC 芯片,在各種嵌入式和計(jì)算應(yīng)用中計(jì)時(shí)。盡管現(xiàn)在有多家 IC 供應(yīng)商提供此類芯片,但表面貼裝技術(shù) (SMT) 讓 RTCC 芯片的評(píng)估變得非常復(fù)雜,因?yàn)檫@些器件無法輕松進(jìn)行手動(dòng)焊接或插入插座。
一種有效的解決方案是使用基于這些 RTCC 芯片的低成本模塊,消除與小型表面貼裝 IC 相關(guān)的原型開發(fā)挑戰(zhàn)。這些模塊還包含電池(通常為紐扣電池),以便在主系統(tǒng)斷電時(shí)保持電力。
Adafruit 的 255 Chronodot(圖 1)便是此類模塊一個(gè)很好的例子。此類模塊便于評(píng)估試驗(yàn)板和原型開發(fā)中的 RTCC 芯片,許多情況下甚至適用于評(píng)估批量制造中的 RTCC 芯片。
圖 1:Adafruit 的 255 Chronodot 在一個(gè)通孔式模塊中整合了 RTCC 芯片和電池。(圖片來源:Adafruit)
表 1 列出了基于兩家 IC 供應(yīng)商的三款不同 RTCC 芯片的六個(gè)不同 RTCC 模塊。
RTCC 模塊 RTCC 芯片 接口 電池 電池壽命最小值(典型值) DFRobot DFR0151 Maxim DS1307 I2C CR1225 9 (17) 年 SparkFun BOB-12708 Maxim DS1307 I2C CR1225 9 (17) 年 Adafruit 3103 Maxim DS3231 I2C CR1220 不適用 Adafruit 255 Chronodot Maxim DS3231 I2C CR1632 8 年 Maxim DS3231MPMB1# Maxim DS3231 I2C CR1025 不適用 STM STEVAL-FET001V1 STMicro M41T62 I2C 外置 不適用
表 1:六個(gè) RTCC 模塊詮釋了 RTCC 模塊的廣泛適用性和多樣性。(數(shù)據(jù)來源:Digi-Key Electronics)
利用類似表 1 所列的六款 RTCC 模塊,可以輕松地在原型系統(tǒng)中增加計(jì)時(shí)功能。在開發(fā)整合了底層 RTCC 芯片的電路板時(shí),如果仔細(xì)觀察這些模塊的設(shè)計(jì)方法,就能發(fā)現(xiàn)一些有用的信息。
表 1 中需要注意的第一點(diǎn)是,所有這些 RTCC 模塊都有一個(gè)共同點(diǎn),即 I2C 接口。上世紀(jì) 70 年代的早期 RTCC 芯片使用并行地址和數(shù)據(jù)總線來模擬小型 SRAM。在那個(gè)年代,并行微處理器總線非常普遍,而板載串行協(xié)議則尚未廣泛應(yīng)用。
如今,芯片到芯片串行協(xié)議,尤其是 I2C,已成為帶寬要求相對(duì)較低的外設(shè)的首選。RTCC 芯片絕對(duì)符合條件,因?yàn)樗恍枰苌俚淖止?jié)便能傳輸日期和時(shí)間信息。
表 1 中顯示的前兩個(gè) RTCC 模塊,即 DFRobot 的 DFR0151 和 SparkFun 的 BOB-12708,均基于 Maxim Integrated 的 8 引腳器件 DS1307 RTCC 芯片。由于它的普及程度,人們針對(duì)基于此芯片的模塊提供了各種 Arduino 庫和一個(gè) Raspberry Pi Raspbian 驅(qū)動(dòng)程序覆蓋層。
DS1307 RTCC 具有單獨(dú)的電源軌和電池引腳,可在系統(tǒng)電源出現(xiàn)故障時(shí),在嵌入式系統(tǒng)的電源軌與備用電池之間提供自動(dòng)切換(圖 2)。
圖 2:Maxim Integrated 的 DS1307 RTCC 芯片在 VCC 引腳電壓降至約 4.5 V 以下時(shí),會(huì)自動(dòng)從 VCC 切換至 VBAT。(圖片來源:Maxim Integrated)
圖 2 還顯示了 DS1307 RTCC 芯片與晶體之間的連接。對(duì)于 RTCC 芯片,此晶體幾乎總是便宜的 32768 Hz 鐘表晶體,例如 IQD Frequency Products 的 WATCH-2X6。此晶體引入了使用 RTCC 芯片開展設(shè)計(jì)時(shí)需要考慮的兩個(gè)新的方面。
第一個(gè)因素是晶體的溫度穩(wěn)定性。大多數(shù) RTCC 使用最初為腕表而設(shè)計(jì)的“音叉”晶體。這些晶體會(huì)隨著溫度變化而偏離其額定頻率(圖 3)。
圖 3:32768 Hz 晶體的共振頻率隨溫度變化,這會(huì)影響 RTCC 的計(jì)時(shí)精度。(圖片來源:IQD Frequency Products)
IQD WATCH-2X6 晶體的共振頻率隨溫度變化,這會(huì)改變振蕩器的頻率,導(dǎo)致計(jì)時(shí)誤差。請(qǐng)注意,振蕩器頻率發(fā)生 20 ppm 的偏移對(duì)應(yīng)每月大約 1 分鐘的計(jì)時(shí)誤差。
第二個(gè)因素被圖 2 中晶體與 RTCC 芯片之間過度簡化的連接所隱藏。RTCC 芯片的晶體輸入引腳通常具有極高的阻抗,導(dǎo)致鐘表晶體的引線和 PC 板的印制線起到類似天線的作用。此“天線”可以將系統(tǒng)其余部分的高頻信號(hào)和噪聲耦合到 RTCC 的內(nèi)部晶體振蕩器。
任何通過鐘表晶體與 RTCC 芯片之間的印制線耦合的噪聲,都可能導(dǎo)致 RTCC 芯片的振蕩器電路中出現(xiàn)額外轉(zhuǎn)換,進(jìn)而導(dǎo)致時(shí)鐘運(yùn)行加快。解決方案是采用細(xì)致的 PC 板布局。這包括將晶體置于盡可能接近 RTCC 芯片的振蕩器引腳的位置,以及在晶體輸入引腳和整個(gè)鐘表晶體主體的下面放置一個(gè)接地平面(圖 4)。
圖 4:接地平面上細(xì)致的 PC 板布局可預(yù)防有害的噪聲影響 RTCC 芯片的計(jì)時(shí)精度。(圖片來源:Maxim Integrated)
此外,圖 4 顯示的 RTCC 封裝下面用陰影線表示的禁布區(qū),可以防止間距很近的印制線將噪聲耦合到 RTCC 芯片的晶體輸入引腳。如果可能,在 PC 板的元件層上增加一個(gè)環(huán)繞晶體和 RTCC 芯片晶體輸入引腳的保護(hù)環(huán),也有助于防止噪聲對(duì)計(jì)時(shí)精度產(chǎn)生影響。
從 PC 板取下鐘表晶體并插入芯片中
為了規(guī)避外部晶體面臨的一些與 PC 板布局相關(guān)的挑戰(zhàn),可選擇采用 STMicroelectronics 提供的帶有內(nèi)置晶體的 M41T62 RTCC。具有 24 引腳 DIP 基底面的 STMicroelectronics STEVAL-FET001V1 評(píng)估板上提供了此 RTCC 芯片。圖 5 顯示了此電路板的示意圖。其中有一個(gè) Arduino 庫和一個(gè) Raspberry Pi Raspbian 驅(qū)動(dòng)程序覆蓋層可供 M41T62 使用。
圖 5:采用 24 引腳 DIP 封裝的 STEVAL-FET001V1 評(píng)估板上提供了 STMicroelectronics M41T62 RTCC 芯片(中央)。(圖片來源:STMicroelectronics)
如示意圖所示,M41T62 只有一個(gè) VCC 引腳。它沒有在主電源軌出現(xiàn)故障時(shí)可選擇切換的單獨(dú) VBAT 引腳,因?yàn)樵撈骷某叽鐑H為 1.5 x 3.2 毫米,專門用于可穿戴設(shè)備和數(shù)碼相機(jī)。在這些嵌入式應(yīng)用中,電池往往是唯一的電源,而且空間非常寶貴。
請(qǐng)注意,也可以使用一個(gè)超級(jí)電容器作為 M41T62 的電源。在嵌入式系統(tǒng)中,系統(tǒng)電源或充電器可通過阻流二極管 D1,連接到 M41T62 的 VCC 引腳(圖 6)。
該二極管必須是與以上圖 5 中顯示的 1N4148WS 相似的低漏電類型,以防止超級(jí)電容器在系統(tǒng)的其余部分?jǐn)嚯姇r(shí),通過系統(tǒng)電源反向放電。
圖 6:可使用可充電超級(jí)電容器為 M41T62 RTCC 芯片供電。(圖片來源:STMicroelectronics)
溫度補(bǔ)償可滿足晶體要求
表 1 中所列的三種 RTCC 模塊(Adafruit 3013、Adafruit 255 Chronodot 和 Maxim DS3231MPMB1#)均基于 Maxim 的 DS3231 RTCC 芯片(圖 7)。除集成式晶體之外,該器件還包括一個(gè)溫度傳感器,這也是該器件擁有較長正式名稱“超精準(zhǔn) I2C 集成式 RTC/TCXO/晶體”的原因所在。
圖 7:DS3231 RTCC 芯片集成了 32768 Hz 鐘表晶體、一個(gè)溫度傳感器和一個(gè)開關(guān)式電容器陣列,以便將器件的計(jì)時(shí)精度保持在每年 ±2 分鐘以內(nèi)。(圖片來源:Maxim Integrated)
如方框圖中所示,DS3231 的溫度補(bǔ)償型晶體振蕩器 (TCXO) 由內(nèi)部晶體、一個(gè)溫度傳感器和一個(gè)開關(guān)式電容器陣列構(gòu)成。與 DS1307 RTCC 類似,DS3231 也有單獨(dú)的主電源 (VCC) 和備用電池 (VBAT) 引腳。
與 STMicroelectronics M41T62 RTCC 芯片一樣,DS3231 RTCC 芯片消除了外部晶體存在的布局挑戰(zhàn)。它的 TCXO 減少了溫度擺動(dòng)造成的計(jì)時(shí)精度波動(dòng)。DS3231 的內(nèi)部 TCXO 能在極寬的工作溫度范圍(-40°C 至 +85°C),將器件的計(jì)時(shí)精度保持在每年正負(fù) 2 分鐘以內(nèi)。
由于它的普及程度,人們針對(duì)基于 DS3231 RTCC 芯片的模塊還提供了多個(gè) Arduino 庫和一個(gè) Raspberry Pi Raspbian 驅(qū)動(dòng)程序覆蓋層。
電池能持續(xù)使用多長時(shí)間?
電池需保養(yǎng)維護(hù),無法永久續(xù)航。在將 RTCC 添加至嵌入式設(shè)計(jì)時(shí),務(wù)必注意 RTCC 芯片所需的電池電流,以適當(dāng)調(diào)整備用電池的大小。
RTCC 應(yīng)用中的電池壽命將取決于 RTCC 芯片在計(jì)時(shí)時(shí)的漏極電流、RTCC 芯片所需的最低工作電壓,以及電池在其輸出電壓降至低于該最小工作電壓之前能夠供應(yīng)所需電流的時(shí)間量(圖 2)。
RTCC 芯片 電池電流 (nA) 典型值(最大值) Maxim DS1307 300 (500) Maxim DS3231 840 (3000) STMicro M41T62 5000 (7000)
表 2:RTCC 芯片的電池供電電流額定值有助于調(diào)整合適的備用電池大小。(數(shù)據(jù)來源:Digi-Key Electronics)
之前表 1 中顯示的 RTCC 模塊均已選定備用電池。一些模塊供應(yīng)商在模塊的規(guī)格書上包含了電池壽命數(shù)字,此數(shù)字同樣顯示在表 1 中。鋰紐扣電池目前是這些模塊首選的電池類型。表中所列器件的電池直徑不外乎 10、12 和 16 毫米。當(dāng)然,電池容量越大,增加的空間和重量往往也更多,但顯而易見的好處是,給定電流下的電池壽命更長。
總結(jié)
在選擇 RTTC 器件、選擇配套的晶體和電池以確保精準(zhǔn)操作,以及為 PC 板布局時(shí),都應(yīng)格外小心。另一方面,基于 RTCC 芯片的可用模塊為試驗(yàn)板和原型開發(fā)提供了捷徑,大幅縮短了開發(fā)時(shí)間。
-
微控制器
+關(guān)注
關(guān)注
48文章
7548瀏覽量
151369 -
mcu
+關(guān)注
關(guān)注
146文章
17141瀏覽量
351075 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19115瀏覽量
304938
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論