在嵌入式設計中快速實作高效率的即時時脈/日曆功能

作者:Steve Leibson

資料提供者:Digi-Key 北美編輯群

許多嵌入式應用需要知道時間,以便在特定的時間和日期啟動特定任務,或是對事件進行時間戳記,又或是進行兩者。用於執行此功能的 RTCC (即時時脈和日曆) 晶片已有數十年歷史,但是設計人員很難在縮減元件數與覆蓋區的同時,又將功耗與設計時間減至最低。

整合式 RTCC 元件與創新的模組能克服這些挑戰。

本文將探討如何挑選 RTCC 晶片並快速地將晶片設計到嵌入式系統裡,同時將空間與功耗減至最低。還會探討內建 RTCC 的 MCU,以及 RTCC 模組如何協助運用表面黏著 RTC 及其他零件進行原型開發。

整合在模組中的 RTCC 晶片,通常都具有 Arduino 函式庫與 Raspberry Pi Raspbian 驅動程式重疊檔的支援,因此能更輕鬆地使用這些元件來進行嵌入式實驗與原型開發。

RTCC 的角色

許多嵌入式應用必須以最低的功耗來追蹤相對於真實世界的時間,還得釋放主處理器的資源以便處理其他任務。

然而,RTCC 晶片本身的功用不大,必須借助準確無誤的晶體來計時 (比如在很講究計時準確度時選用溫度補償式晶體),也必須裝有備用電池,以便在嵌入式系統斷電以後仍可持續計時。這些輔助元件決定了 RTCC 執行其兩項主要任務的能力:

  1. 在任何情況下皆持續提供準確的時間和日期
  2. 在嵌入式系統其餘部分斷電後,消耗最少的電力

有些微控制器具有 RTCC

有些微控制器具有內部 RTCC 模塊,例如 Microchip Technology 的 32 位元 PIC32MZ2064DAA288 微控制器。乍看之下,利用這種元件設計出一個必須準確計時的系統似乎非常明智,尤其是因為 PIC32MZ2064DAA288 微控制器會在微控制器一般電源供應引腳 (VDDCORE 與 VDDIO) 的電壓不足以為該元件供電時,自動將內部電源切換為電池輸入引腳 (VBAT)。

然而,這種元件還有幾個難題有待解決,且與上述 RTCC 的兩項重要任務直接相關:準確計時及低功耗操作。

首先,PIC32MZ2064DAA288 微控制器的 RTCC 模塊必須在其兩個次要振盪器引腳上安裝 32768 Hz 晶體,才能在微控制器斷電後維持準確的時間。雖然可以使用微控制器的主時脈振盪器讓 RTCC 模塊操作,但該振盪器會在微控制器進入深度睡眠模式時停止運作。

晶片上的 RTCC 整合了校正暫存器,而 Microchip 所提供的校正程序,能針對頻率偏離多達 260 ppm 的晶體振盪器,將計時誤差降到每月 0.66 秒。然而,固定式校正不會將溫度變化納入考量,而這也可能會影響振盪器的頻率,進而影響計時準確度。

再者,微控制器在改用電池供電後,除了 RTCC 模塊之外,並不會完全斷電。以電池供電時,微控制器內的其他模塊可能會啟用,也可能不會,端視軟體的控制情形而定。而這情況會產生一個問題,那就是電池的耗電與續航力將取決於軟體。

而此問題並不僅僅出現在 PIC32MZ2064DAA288 微控制器而已。任何整合了 RTCC 模塊的微控制器都會面臨這個問題。只要使用獨立的 RTCC 晶片,問題就能解決,因為這種作法能明確地將計時功能從微控制器中分離出來,而且在微控制器沒有內部 RTCC 的情況下,這也是唯一的設計選擇。

RTCC 晶片與模組

數十年來,設計工程師一直在各種嵌入式與計算應用中使用獨立的 RTCC 晶片來計時。雖然現在有幾家 IC 廠商都有提供這種晶片,但表面黏著技術 (SMT) 的運用讓 RTCC 晶片的評估作業更加複雜,因為這種元件不容易徒手焊接或插入插槽中。

有個不錯的解決方法,就是使用以這些 RTCC 晶片作為基礎的低成本模組,如此即可免去小型表面黏著 IC 的原型開發難題。這些模組也整合了電池 (通常是鈕扣型電池),可在主系統斷電時持續供電。

Adafruit255 Chronodot 模組就是很好的例子 (圖 1)。這種模組可方便評估試驗電路板及原型開發中的 RTCC 晶片,許多情況下甚至可用於量產應用。

Adafruit 的 255 Chronodot 圖片

圖 1:Adafruit 的 255 Chronodot 是內含 RTCC 晶片與電池的通孔式模組。(圖片來源:Adafruit)

表 1 列出六種不同的 RTCC 模組,採用來自兩家 IC 廠商的三種不同 RTCC 晶片。

RTCC 模組 RTCC 晶片 介面 電池 最短電池續航力 (典型值)
DFRobot DFR0151 Maxim DS1307 I²C CR1225 9 (17) 年
SparkFun BOB-12708 Maxim DS1307 I²C CR1225 9 (17) 年
Adafruit 3103 Maxim DS3231 I²C CR1220 不適用
Adafruit 255 Chronodot Maxim DS3231 I²C CR1632 8 年
Maxim DS3231MPMB1# Maxim DS3231 I²C CR1025 不適用
STM STEVAL-FET001V1 STMicro M41T62 I²C 外接式 不適用

表 1:六種 RTCC 模組展現出 RTCC 模組廣泛的供貨性及多樣性。(資料來源:Digi-Key Electronics)

利用如表 1 所列的這六種 RTCC 模組,就能輕易地在原型開發系統中加入計時功能。仔細觀察這些模組的設計方式,就可找出一些實用的資訊,有助於開發含有基本 RTCC 晶片的電路板。

在表 1 中會先注意到的是,這些 RTCC 模組都有一個共通點,就是 I2C 介面。1970 年代的早期 RTCC 晶片,都使用平行位址與數據匯流排來模擬小型 SRAM。在那個年代,平行微處理器匯流排相當常見,而板載序列協定尚未廣泛使用。

如今,對頻寬要求相對較小的周邊裝置而言,首選介面為晶片對晶片序列協定,特別是 I2C。RTCC 晶片當然可勝任,因為僅需要少許位元組就能傳輸日期與時間資訊。

表 1 中的前兩個 RTCC 模組 (DFRobotDFR0151SparkFunBOB-12708),都是以 Maxim Integrated 的 8 引腳 DS1307 RTCC 晶片為基礎。由於此晶片廣為流行,目前已經有適合的 Arduino 函式庫與 Raspberry Pi Raspbian 驅動程式重疊檔可搭配以此晶片為基礎的模組使用。

DS1307 RTCC 針對電軌與電池分設引腳,以便在系統斷電期間,從嵌入式系統的電軌自動切換到備用電池 (圖 2)。

Maxim Integrated 的 DS1307 RTCC 晶片示意圖

圖 2:Maxim Integrated 的 DS1307 RTCC 晶片會在 VCC 引腳電壓降到約 4.5 V 以下時,自動從 VCC 切換到 VBAT。(圖片來源:Maxim Integrated)

圖 2 還顯示了 DS1307 RTCC 晶片與晶體之間的連接。對於 RTCC 晶片來說,此晶體幾乎都採用價格不高的 32768 Hz 手錶晶體,例如 IQD Frequency ProductsWATCH-2X6。此晶體會在使用 RTCC 晶片進行設計時,額外添加兩個要考量的因素。

第一個因素是晶體在溫度變化下的穩定性。大部分的 RTCC 都使用原本針對手錶設計的「音叉型」晶體。這些晶體會隨著溫度變化而偏離其額定頻率 (圖 3)。

32768 Hz 晶體的共振頻率圖

圖 3:32768 Hz 晶體的共振頻率會隨著溫度而變化,這會影響 RTCC 的計時準確度。(圖片來源:IQD Frequency Products)

IQD WATCH-2X6 晶體的共振頻率會隨著溫度而變化,進而改變振盪器的頻率,造成計時誤差。請注意,若振盪器頻率改變 20 ppm,等於大約每個月有一分鐘的計時誤差。

由於圖 2 中的晶體與 RTCC 晶片間的連接過度簡化,因此第二個因素不是很明顯。RTCC 晶片的晶體輸入引腳通常有很高的阻抗,因此手錶晶體的引線與電路板走線的作用就如同天線一樣。此「天線」能將來自系統其餘部分的高頻訊號及雜訊,耦合到 RTCC 內部的晶體振盪器中。

藉由手錶晶體與 RTCC 晶片間的引線進行耦合的任何雜訊,都會在 RTCC 晶片的振盪器電路中造成額外的轉換,導致時鐘加速。解決的方法是謹慎安排電路板的佈局,包括讓晶體盡可能靠近 RTCC 晶片的振盪器引腳,並在晶體輸入引腳與整個手錶晶體底下放置接地面 (圖 4)。

RTCC 封裝底下以交叉陰影線標示的禁區示意圖

圖 4:在接地面上謹慎安排電路板佈局,能避免不必要的雜訊影響到 RTCC 晶片的計時準確度。(圖片來源:Maxim Integrated)

另外,圖 4 指出 RTCC 封裝底下有個以交叉陰影線標示的禁區,是用來避免密集的走線將雜訊耦合到 RTCC 晶片的晶體輸入引腳。如果可行,請在電路板的元件層添加一個防護環,將晶體與 RTCC 晶片的晶體輸入引腳圍住,避免雜訊影響計時的準確度。

將手錶晶體從電路板取下並放到晶片中

使用外部晶體時,若要避開一些電路板佈局上的難題,可挑選內建晶體的 STMicroelectronics M41T62 RTCC。此 RTCC 晶片由 STMicroelectronics 的 STEVAL-FET001V1 評估板提供,而此評估板則採用 24 針腳 DIP 覆蓋區。此板件的線路圖如圖 5 所示。M41T62 有可用的 Arduino 函式庫與 Raspberry Pi Raspbian 驅動程式重疊檔。

STMicroelectronics 的 M41T62 RTCC 晶片示意圖

圖 5:STMicroelectronics 的 M41T62 RTCC 晶片 (中心) 由 STEVAL-FET001V1 評估板提供,而此評估板採用 24 引腳 DIP 封裝。(圖片來源:STMicroelectronics)

如線路圖所示,M41T62 只有一個 VCC 引腳。此晶片並未另附 VBAT 引腳可在主電軌失效時切換使用,因為此元件尺寸僅僅 1.5 x 3.2 mm,專為用於穿戴式裝置與數位相機而設計。在這些嵌入式應用中,電池通常是唯一的電力來源,而且空間非常寶貴。

請注意,亦可使用超級電容來為 M41T62 供電。在嵌入式系統裡,可經由阻隔二極體 D1,將系統電源或充電器連接至 M41T62 的 VCC 引腳 (圖 6)。

此二極體必須是低洩漏型,例如上方圖 5 顯示的 1N4148WS,可在系統其餘部分斷電後,避免超級電容放電回流到系統電源。

可供電給 M41T62 RTCC 晶片的充電式超級電容示意圖

圖 6:可使用充電式超級電容為 M41T62 RTCC 晶片供電。(圖片來源:STMicroelectronics)

溫度補償滿足晶體要求

表 1 的三個 RTCC 模組 (Adafruit 3013、Adafruit 255 Chronodot 與 Maxim DS3231MPMB1#),都是以 Maxim 的 DS3231 RTCC 晶片作為基礎 (圖 7)。該元件除了具有整合式晶體外,還含有溫度感測器,這也是該元件正式名稱很長的原因,稱為「極準確 I²C 整合式 RTC/TCXO/晶體」。

Maxim 的 DS3231 RTCC 晶片示意圖

圖 7:DS3231 RTCC 晶片整合了 32768 Hz 手錶晶體、溫度感測器與切換式電容陣列,能讓元件的計時準確度保持在每年 ±2 分鐘以內。(圖片來源:Maxim Integrated)

如方塊圖所示,DS3231 的溫度補償晶體振盪器 (TCXO) 由內部晶體、溫度感測器與切換式電容陣列組成。DS3231 與 DS1307 RTCC 一樣,針對主電源 (VCC) 與備用電池 (VBAT) 各有不同的引腳。

如同 STMicroelectronics 的 M41T62 RTCC 晶片,DS3231 RTCC 晶片避開了外部晶體的佈局難題。此晶片的 TCXO 能減少溫度變化造成的計時準確度差異。DS3231 的內部 TCXO 振盪器,能讓此元件在超寬廣的工作溫度範圍內 (-40°C 至 +85°C),保持每年 ±2 分鐘以內的計時準確度。

由於此晶片廣為流行,目前已經有多種 Arduino 函式庫與 Raspberry Pi Raspbian 驅動程式重疊檔可搭配以 DS3231 RTCC 為基礎的模組使用。

電池的電力能維持多久?

電池為消耗品,無法永久運作。在嵌入式設計中增添 RTCC 時,務必注意 RTCC 晶片所需的電池電流,以便挑選適當的備用電池大小。

在 RTCC 應用中,電池續航力的取決因素包括:RTCC 晶片在計時過程中的電流損耗量、RTCC 晶片所需的最低操作電壓,以及電池輸出電壓降到低於此最低操作電壓之前,可供應必要電流的時間長度 (表 2)。

RTCC 晶片 電池電流 (nA) 典型值 (最大值)
Maxim DS1307 300 (500)
Maxim DS3231 840 (3000)
STMicro M41T62 5000 (7000)

表 2:RTCC 晶片的電池電源額定電流能幫助挑選合適的備用電池大小。(資料來源:Digi-Key Electronics)

前面表 1 顯示的 RTCC 模組已選定了備用電池。有些模組廠商會在模組的規格書中註明電池續航力數值 (亦顯示於表 1)。目前,這些模組選擇的電池類型為鈕扣型鋰電池。表格中所示的直徑有 10 mm、12 mm 與 16 mm。電池蓄電量越大,當然比較占空間且重量越重,但有一明顯的好處,就是在指定的電流消耗量下能提供較長的電池續航力。

結論

應慎選 RTTC 元件以及搭配的晶體與電池,以確保運作的準確性,此外也要謹慎安排電路板的佈局。也可選擇以 RTCC 晶片作為基礎的模組,能讓人更輕鬆快速地建立試驗電路板與開發原型,大幅縮短開發時間。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 Digi-Key Electronics 的意見、理念和觀點,亦非 Digi-Key Electronics 的正式原則。

關於作者

Steve Leibson

Steve Leibson 曾任 HP 和 Cadnetix 的系統工程師、EDN 和 Microprocessor Report 的總編輯,以及 Xilinx 和 Cadence 等的科技部落客,也曾在兩集《The Next Wave with Leonard Nimoy》電視節目中擔任技術專家。33 年來,他協助設計工程師開發更優良、更快速且更可靠的系統。

關於出版者

Digi-Key 北美編輯群