隨著 MCU 擴(kuò)展到越來(lái)越多的功率受限設(shè)計(jì),處理效率成為系統(tǒng)設(shè)計(jì)人員日益關(guān)注的問(wèn)題。以更低的功率獲得額外處理能力的驅(qū)動(dòng)力不僅在電池供電的產(chǎn)品中很重要,而且在許多“插入式”模塊中,功率也越來(lái)越受到模塊規(guī)格的限制。在這些情況下,一個(gè)高效的設(shè)計(jì)將能夠提供更多的功能,并相對(duì)于效率較低的實(shí)施創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。
MCU 設(shè)計(jì)中一個(gè)被忽視的方面是時(shí)鐘控制領(lǐng)域。設(shè)計(jì)人員通常可以通過(guò)使用時(shí)鐘控制模塊的高級(jí)功能來(lái)調(diào)整 CPU、外設(shè)和其他功耗資源的時(shí)鐘,從而創(chuàng)建更高效??的設(shè)計(jì)。本文將探討高級(jí)時(shí)鐘控制模塊的一些常見(jiàn)特性的功能,并展示它們?nèi)绾卧诖蠖鄶?shù)基于 MCU 的設(shè)計(jì)中提高處理效率。
時(shí)鐘源
MCU 的整體操作由時(shí)鐘控制塊管理,許多時(shí)鐘控制塊具有可用于選擇、控制和管理 CPU、存儲(chǔ)器、外設(shè)和模擬塊的時(shí)鐘源的功能。通過(guò)控制這些模塊的時(shí)鐘,甚至關(guān)閉某些處理例程中未使用的功能的時(shí)鐘,電源可以僅在 MCU 的需要它的部分以及它們需要時(shí)提供,從而實(shí)現(xiàn)非常高效執(zhí)行。時(shí)鐘管理和控制的起點(diǎn)是可供各種子模塊使用的各種時(shí)鐘源。了解每個(gè)時(shí)鐘源的優(yōu)缺點(diǎn)是高效 MCU 實(shí)施的起點(diǎn)。
STMicroelectronics ST32F37xx 提供許多常見(jiàn)的時(shí)鐘源和控制功能MCU 時(shí)鐘控制模塊,如圖 1 所示。ST32F37xx 有多個(gè)時(shí)鐘源,每個(gè)時(shí)鐘源都有一個(gè)特定的功能,并針對(duì)它進(jìn)行了優(yōu)化。例如,高速外部 (HSE) 時(shí)鐘(如圖 1 左中所示)使用外部晶體/陶瓷諧振器或現(xiàn)有用戶提供的時(shí)鐘。外部晶體/陶瓷諧振器的工作頻率范圍為 4 至 32 MHz,并產(chǎn)生非常準(zhǔn)確的主時(shí)鐘速率。如果現(xiàn)有的外部時(shí)鐘已經(jīng)可用,或者如果用戶希望對(duì)時(shí)鐘源進(jìn)行額外的控制(可能停止或減慢時(shí)鐘以進(jìn)行更精細(xì)的低功耗操作控制),則可以使用外部時(shí)鐘輸入。這也釋放了一個(gè)額外的 GPIO 引腳,因?yàn)樵趯?shí)現(xiàn)諧振器時(shí)需要少一個(gè)引腳。
圖 1:STM32F37xx 時(shí)鐘控制模塊。(意法半導(dǎo)體提供)
高速內(nèi)部 (HIS) 時(shí)鐘信號(hào)由內(nèi)部 8 MHz RC 振蕩器生成,可直接用作系統(tǒng)時(shí)鐘或在被 PLL 使用之前進(jìn)行二分頻。HIS RC 振蕩器的優(yōu)點(diǎn)是可以低成本提供時(shí)鐘源,因?yàn)樗皇褂猛獠吭?。它還具有比HSE晶振更快的啟動(dòng)時(shí)間;然而,即使經(jīng)過(guò)校準(zhǔn),頻率也不如外部晶體振蕩器或陶瓷諧振器準(zhǔn)確。請(qǐng)注意,CPU 時(shí)鐘只能由高速時(shí)鐘之一或 PLL 的輸出驅(qū)動(dòng)。
STM32F37xx 還有兩個(gè)低速時(shí)鐘源。低速外部 (LSE) 晶體/陶瓷振蕩器顯示在圖 1 的頂部,它使用高精度 32.768 kHz 諧振器為實(shí)時(shí)時(shí)鐘 (RTC) 外設(shè)創(chuàng)建精確的時(shí)鐘源。低速內(nèi)部 RC 振蕩器提供 40 kHz 信號(hào),用于驅(qū)動(dòng)獨(dú)立的看門狗定時(shí)器和可選的 RTC,用于從低功耗停止/休眠模式自動(dòng)喚醒。低功耗時(shí)鐘獨(dú)立于高速時(shí)鐘運(yùn)行,因此即使主系統(tǒng)時(shí)鐘關(guān)閉,其外圍設(shè)備也可以運(yùn)行,從而節(jié)省大量電力。
這些時(shí)鐘源是您可以在大多數(shù) MCU 中找到的典型時(shí)鐘源。如圖 1 所示,時(shí)鐘源只是大多數(shù) MCU 中時(shí)鐘架構(gòu)的起點(diǎn)。通??梢赃M(jìn)一步選擇、處理時(shí)鐘(通常使用一個(gè)或多個(gè)鎖相環(huán)或 PLL 塊),或在 MCU 控制下啟用所有時(shí)鐘。在下一節(jié)中,我們將通過(guò)查看 PLL 模塊的典型功能來(lái)繼續(xù)探索時(shí)鐘控制。
鎖相環(huán)操作
各種時(shí)鐘操作模塊,如鎖相環(huán) (PLL) 和鎖頻環(huán) (FLL) 模塊,是時(shí)鐘控制模塊中最重要但通常不太了解的元素。飛思卡爾Kinetis K10MCU 子系列具有多用途時(shí)鐘發(fā)生器 (MCG) 模塊,如圖 2 所示,其中包括 FLL 和 PLL,因此這是一個(gè)很好的示例。Kinetis K10 MCG FLL 可由內(nèi)部或外部參考時(shí)鐘控制。PLL 可由外部參考時(shí)鐘控制。該模塊可以選擇 FLL 或 PLL 輸出時(shí)鐘或內(nèi)部或外部參考時(shí)鐘作為 MCU 系統(tǒng)時(shí)鐘源。MCG 與晶體振蕩器一起工作,晶體振蕩器允許外部晶體、陶瓷諧振器或其他外部時(shí)鐘源產(chǎn)生外部參考時(shí)鐘。
圖 2:飛思卡爾 Kinetis K10 MCU 系列中的多用途時(shí)鐘發(fā)生器模塊。(由飛思卡爾提供)
FLL 模塊(如圖 2 中間所示)采用選定的時(shí)鐘源并對(duì)其進(jìn)行操作以創(chuàng)建所需的時(shí)鐘頻率。輸入時(shí)鐘可以除以十六個(gè)不同的值,從 1 到 1536,以創(chuàng)建介于 31.25 kHz 到 39.0625 kHz 之間的基本頻率。然后將基頻與數(shù)控振蕩器 (DCO) 相乘,以產(chǎn)生介于 20 MHz 和 96 MHz 之間的所需輸出頻率。通過(guò)使用 FLL 從各種頻率中進(jìn)行選擇的能力,可以輕松地將時(shí)鐘速率調(diào)整為特定操作模式所需的正確頻率,從而提高處理效率。PLL 以類似的方式工作,但使用壓控振蕩器 (VCO) 來(lái)調(diào)整時(shí)鐘輸出頻率。PLL 的輸入時(shí)鐘可以通過(guò)預(yù)分頻器進(jìn)行 2 到 25 倍的分頻。相位檢測(cè)器將 PLL 輸入時(shí)鐘和 VCO 輸出時(shí)鐘相結(jié)合,將輸入信號(hào)乘以 24 到 55 倍。所有這些除法和乘法的結(jié)果是一個(gè)時(shí)鐘信號(hào),它是應(yīng)用所需的精確值。通常,PLL 比 FLL 需要額外的功率,但 PLL 具有更精細(xì)的調(diào)整和更高的精度。請(qǐng)注意,如果不需要 PLL 或 FLL 來(lái)生成應(yīng)用所需的頻率,例如,在外部時(shí)鐘信號(hào)提供所需的確切頻率的情況下,可以禁用 PLL 或 FLL 以降低功耗。所有這些除法和乘法的結(jié)果是一個(gè)時(shí)鐘信號(hào),它是應(yīng)用程序所需的精確值。通常,PLL 比 FLL 需要額外的功率,但 PLL 具有更精細(xì)的調(diào)整和更高的精度。請(qǐng)注意,如果不需要 PLL 或 FLL 來(lái)生成應(yīng)用所需的頻率,例如,在外部時(shí)鐘信號(hào)提供所需的確切頻率的情況下,可以禁用 PLL 或 FLL 以降低功耗。所有這些除法和乘法的結(jié)果是一個(gè)時(shí)鐘信號(hào),它是應(yīng)用程序所需的精確值。通常,PLL 比 FLL 需要額外的功率,但 PLL 具有更精細(xì)的調(diào)整和更高的精度。請(qǐng)注意,如果不需要 PLL 或 FLL 來(lái)生成應(yīng)用所需的頻率,例如,在外部時(shí)鐘信號(hào)提供所需的確切頻率的情況下,可以禁用 PLL 或 FLL 以降低功耗。
外設(shè)時(shí)鐘控制
在使用 PLL 或 FLL 調(diào)整源時(shí)鐘(如果需要)后,時(shí)鐘分配網(wǎng)絡(luò)將負(fù)責(zé)為每個(gè)關(guān)鍵 MCU 模塊提供單獨(dú)的時(shí)鐘。CPU 及其相關(guān)的內(nèi)存系統(tǒng)將需要自己的時(shí)鐘,但通常各種外圍設(shè)備也將擁有自己的時(shí)鐘。外圍時(shí)鐘網(wǎng)絡(luò)劃分得越細(xì),就越容易單獨(dú)選擇和控制時(shí)鐘,并將工作頻率調(diào)整到應(yīng)用所需的頻率??刂茣r(shí)鐘網(wǎng)絡(luò)的常用方法是添加時(shí)鐘分頻器電路(因?yàn)橥庠O(shè)運(yùn)行速度通常比 CPU 慢),如果根本不需要外設(shè),甚至可以添加時(shí)鐘禁用電路。可用的控制越多,可以調(diào)整的功率和性能就越多,但在某些時(shí)候,必須考慮額外的裸片空間(及其相關(guān)成本)和所需的額外功率。制造商通常限制時(shí)鐘網(wǎng)絡(luò)提供完全的靈活性,但試圖為大多數(shù)應(yīng)用提供足夠的能力以獲得顯著的功率和處理效率。
恩智浦,在其LPC15xx上MCU 已將每個(gè)關(guān)鍵外圍功能的時(shí)鐘分頻器按照非常實(shí)用的線進(jìn)行分段,如圖 3 所示,從而可以輕松確定每個(gè)子塊使用哪些設(shè)置。例如,圖 3 中右側(cè)所示的 USART 模塊的時(shí)鐘信號(hào)來(lái)自主時(shí)鐘,但可以使用 USART 外設(shè)時(shí)鐘分頻器進(jìn)行預(yù)分頻(從 1 到 255 或完全禁用) 。 然后,每個(gè) USART 模塊內(nèi)的各個(gè)小數(shù)波特率發(fā)生器(具有 16 位時(shí)鐘分頻值可用)可以使用該時(shí)鐘信號(hào),以便輕松單獨(dú)設(shè)置每個(gè) USART 的波特率。其他外設(shè)時(shí)鐘分頻器可在通用功能基礎(chǔ)上使用,以便于配置和控制性能,從而降低所有關(guān)鍵外設(shè)模塊的功耗。
圖 3:NXP LPC15xx MCU 上的外設(shè)時(shí)鐘分頻器。(恩智浦提供)
沿功能線對(duì)外設(shè)時(shí)鐘進(jìn)行分組是一個(gè)簡(jiǎn)單的概念,但是當(dāng)外設(shè)??可以協(xié)同工作時(shí),這個(gè)概念就變得更加復(fù)雜。例如,請(qǐng)注意 ADC 時(shí)鐘分頻器可以來(lái)自 SC Timer PLL。這似乎是一個(gè)不必要的連接,直到您意識(shí)到 ADC 可以與 SC 定時(shí)器一起工作以在沒(méi)有 CPU 干預(yù)的情況下進(jìn)行周期性轉(zhuǎn)換。在創(chuàng)建所需操作所需的靈活性而不使時(shí)鐘控制塊因額外的復(fù)雜性而超載時(shí)額外注意,這是經(jīng)過(guò)深思熟慮的實(shí)現(xiàn)的標(biāo)志。
動(dòng)態(tài)時(shí)鐘控制
一旦您以最節(jié)能和處理效率最高的方式為各種外設(shè)選擇了時(shí)鐘,您可能會(huì)認(rèn)為您已經(jīng)完成了。為了獲得更高的性能和功率控制,您可能還需要根據(jù) MCU 所處的功能或模式動(dòng)態(tài)調(diào)整某些處理或外圍模塊的速度。靈活的時(shí)鐘選擇網(wǎng)絡(luò)是使用動(dòng)態(tài)時(shí)鐘所需的關(guān)鍵特性。 Silicon Labs Gecko MCU的一部分圖 4 所示的時(shí)鐘控制模塊說(shuō)明了這一點(diǎn)。圖中左上方的高頻時(shí)鐘開關(guān)可以選擇高頻時(shí)鐘(HFXO 或 HFRCO)或低頻時(shí)鐘(LFXO 或 LFRCO)。這使得根據(jù)設(shè)備運(yùn)行的模式類型輕松“混合和匹配”低頻源或高頻源成為可能。
圖 4:Silicon Labs Gecko MCU 的時(shí)鐘控制模塊部分。(由 Silicon Labs 提供)
當(dāng)進(jìn)入和退出傳統(tǒng)低功耗模式需要太多“啟動(dòng)”時(shí)間時(shí),動(dòng)態(tài)時(shí)鐘選擇最有用(即使是節(jié)能的 Gecko MCU 系列也可能需要 2 微秒的 EM2 低功耗喚醒時(shí)間)功耗狀態(tài),在極低功耗 EM4 狀態(tài)下可達(dá) 160 μsec)。通過(guò)動(dòng)態(tài)選擇低頻時(shí)鐘,節(jié)省的電量較少,但快速響應(yīng)時(shí)間(通常僅在時(shí)鐘周期的數(shù)量級(jí)上)要快得多。這可以在捕獲異步事件或丟失它之間產(chǎn)生差異。當(dāng)在操作狀態(tài)期間需要中等處理性能時(shí),擁有這種級(jí)別的時(shí)鐘控制還可以增加低功耗狀態(tài)的使用。在您的設(shè)計(jì)中尋找動(dòng)態(tài)時(shí)鐘控制機(jī)會(huì),以實(shí)現(xiàn)最高的功率和處理效率水平。
總結(jié)
高級(jí)時(shí)鐘控制模塊提供了一些令人驚訝的功能,可以幫助管理 MCU 內(nèi)的電源使用??刂仆鈬O(shè)備的時(shí)鐘、管理 CPU 的時(shí)鐘速率以及在處理過(guò)程中動(dòng)態(tài)改變時(shí)鐘速率只是可用于創(chuàng)建更高效??設(shè)計(jì)的一些技術(shù)。
評(píng)論
查看更多