瑞薩RA系列微控制器上有一些外設如DLC、ELC等,它們可以幫你創(chuàng)建完整的自主子系統(tǒng),管理微控制器應用中的許多典型的常規(guī)維護和I/O密集型任務。這種基本任務的自動化可以大大減少CPU需求時間,減少需要服務的中斷數(shù)量,而且通??梢燥@著降低系統(tǒng)功耗。
本篇文章我們將向您介紹RA微控制器系列中一個不太常見和不太容易理解的外設,即時鐘頻率精度測量電路(CAC)。時鐘頻率精度測量電路旨在使我們能夠通過將RA微控制器上可用的許多內(nèi)部和外部時鐘源相互對比,檢查它們的精度,并在比較結(jié)果出現(xiàn)意外偏差時指示出來。
CAC最初是為了幫助我們提高系統(tǒng)的安全性和可靠性而設計的,通過使時鐘系統(tǒng)具有自檢功能,但是你會看到,它也可以實現(xiàn)其他用途。
CAC框圖
CAC允許我們從各種內(nèi)部和外部時鐘源中選擇來作為參考信號以及你想確認振蕩速度的目標時鐘。通??梢詮闹鲿r鐘和32kHz外部時鐘輸入中兩者選其一,也可以從內(nèi)部片上振蕩器上做選擇,如HOCO、MOCO和LOCO,以及獨立看門狗iWDT時鐘,甚至你也可以選擇PCLKB,把內(nèi)部外設時鐘作為輸入。每個時鐘輸入,無論是參考時鐘還是目標時鐘,都可以通過選擇適當?shù)姆诸l比來進行縮放。
這些時鐘中的每一個都可以作為參考或目標時鐘選擇,你還有一個額外的選項可用于參考時鐘,那就是你可以選擇一個外部時鐘輸入,它允許你從外部測試設備輸入一個精確的參考時鐘。
這個參考時鐘可用作時間基準,來對一個待測時鐘的周期進行脈沖計數(shù),并保存在一個寄存器中。測量周期結(jié)束后,計數(shù)寄存器中的脈沖數(shù)與存儲在CAC的比較寄存器中的最小和最大期望值進行比較,如果檢測到時鐘超出范圍,就可以產(chǎn)生一個中斷。
這是檢查內(nèi)部時鐘校準是否被正確設置,或者是否存在一些可能導致定時錯誤的時鐘寄存器初始化問題的理想方法。很棒的是,一旦設置好,它就可以自主運行,并且如果系統(tǒng)檢測到錯誤,你就可以得到一個中斷。如果計數(shù)器溢出或在每次測量結(jié)束時,也可以產(chǎn)生一個中斷,因為也許你只想偶爾使用這個功能來檢查各種時鐘源的精度。
CAC被設計用于支持自檢以檢測系統(tǒng)時鐘的錯誤,但是它也可以用于其他目的,特別是如果我們使用外部參考引腳。
例如,如果你有一個外部信號,它表示系統(tǒng)的健康狀況,它根據(jù)系統(tǒng)狀態(tài)改變頻率,那么CAC就是測量這個信號并檢測它何時改變頻率的理想解決方案。在這種情況下,實際上是反向使用CAC,你把信號輸入到外部參考引腳,并選擇相關(guān)的時鐘信號、分頻設置和比較器設置來檢測當你的參考信號頻率超出“健康”頻率范圍時是否發(fā)生錯誤,從而指示系統(tǒng)錯誤。如果CAC檢測到這種情況,它就可以產(chǎn)生一個錯誤中斷。
CAC是一個有用的外設,我們可以用它來幫助檢查系統(tǒng)的健康狀況,特別是對于消費者或工業(yè)應用,在這些應用中系統(tǒng)可靠性可能非常重要。但是正如我們所看到的,它也可以用于監(jiān)測外部脈沖列并檢測脈沖頻率何時改變。