現在很多MCU內部已經集成了內部RTC,但常見的設計中為何很多使用獨立的RTC芯片?進行RTC設計選型的依據是什么?應該如何選擇?
今天重點介紹一下在進行設計時應該怎么選擇RTC功能的實現?
真的要回答這個問題至少涉及到以下幾點:準確性(RTC精度)、成本、功耗、實現難度、安全性等方面。
一:RTC精度
RTC的主要職責是提供準確的時間基準,計時不準的RTC(不管內部RTCor外部RTC)都毫無價值而言。
RTC的計時精度取決于晶振的選擇、晶振負載電容的選擇、電路設計、器件放置、阻抗控制、PCB走線規范、溫度補償等多個方面, 而不是RTC芯片本身 (后面的文章會專門講解如何提高RTC的精度,歡迎持續關注)
內部RTC和外部RTC相比較:內部RTC更難達到更高的精度;原因如下:
目前很多的RTC芯片已經集成了溫度補償器,不需要為提高RTC精度而自行設計溫度補償;但內置與MCU內部的RTC大部分未設計溫度補償器;
單純從RTC精度的方面來考慮,更應該選擇外部RTC;
二:成本
相對于價格昂貴的溫度補償振蕩器(±2~±5ppm),內部RTC±20ppm的精度在可接受范圍內時(每天最多1.7s、一年大約10分鐘),可以選擇內部RTC。
使用內部RTC不需要單獨的RTC芯片,有些芯片的內部RCT經過內部的溫度補償、精度校準等軟件操作也可以達到相對可以接受的計時精度。
毫無疑問,從降低成本的角度考慮,更應該選擇內部RTC;
三:功耗
以STM32和PCB8563的功耗來比較分析。STM32內部RTC的功耗如下:
PCF8563芯片的內部功耗如下:
由以上兩個圖片的功耗對比可知,使用相同的RTC供電電池的情況下,PCF8563可使用的時間更長,從低功耗的角度來看:應該選擇外部RTC。
四:實現難度
從代碼實現難度的角度考慮,內部RTC比較容易實現。仍然以STM32為例,現在STM32的底層封裝庫、cube代碼生成器等均可以產生內置RTC的相關代碼,實現較簡單。
外部RTC需要特定的串行協議(I2C或SPI),并且需要將其特殊的格式轉換為可用格式。相對代碼的實現難度來說,外部RTC更不容易實現。
但是:從目前常用的RTC芯片來看,外部RTC也都會有各種單片機的參考例程,實現起來也較為簡單,代碼實現難度并不是制約芯片選型的重要參考點。
’
五:安全性
雖然內部RTC占據了價格又是,單使用內部RTC還有另一個缺點:當代碼崩潰或MCU芯片損壞時,內部RTC的時間會丟失,而使用帶外置電池的獨立RTC芯片可以在MCU代碼崩潰時仍然可以全天候運行。
從安全性的角度考慮,更應該選擇外部RTC。
六:總結
通過以上 準確性(RTC精度)、成本、功耗、實現難度、安全性等各方面的比較來看, 外部獨立RTC更勝一籌,所以現在常見的設計上更多的是使用外部獨立RTC。
-
芯片
+關注
關注
453文章
50399瀏覽量
421799 -
mcu
+關注
關注
146文章
16991瀏覽量
350308 -
RTC
+關注
關注
2文章
528瀏覽量
66309
發布評論請先 登錄
相關推薦
評論