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