今天給大家介紹的是i.MXRT1xxx系列MCU時鐘相關(guān)功能引腳作用。
如果我們從一顆 MCU 芯片的引腳分類來看芯片功能,大概可以分為三大類:電源、時鐘、外設(shè)功能。作為嵌入式開發(fā)者,大部分時候關(guān)注得都是外設(shè)功能引腳,而對于時鐘相關(guān)引腳往往不太在意,其實有些時候利用時鐘功能引腳也能助你定位問題。今天痞子衡就帶你梳理一下 i.MXRT1xxx 系列的時鐘系統(tǒng)以及相關(guān)功能引腳:
一、時鐘系統(tǒng)簡介
目前 i.MXRT1xxx 系列主要分為 i.MXRT10xx 和 i.MXRT11xx 兩大分支。這兩個分支的時鐘系統(tǒng)設(shè)計是有一些差異的,不過總體來說,架構(gòu)差別不大,我們以如下 i.MXRT1170 的時鐘架構(gòu)為例來具體介紹。
在時鐘系統(tǒng)架構(gòu)圖里我們能看到有五大組件:OSC_PLL、CCM、LPCG、GPC、SRC,其中最核心的功能在前兩個,OSC_PLL 主要負(fù)責(zé)產(chǎn)生時鐘,CCM 主要用于分配時鐘。

二、關(guān)于時鐘源頭
上一節(jié)里我們知道 OSC_PLL 模塊負(fù)責(zé)所有時鐘的生成,但那些時鐘并不是憑空產(chǎn)生的,也是需要源頭的。這個源頭既可以來自芯片內(nèi)部,也可以來自外部引腳輸入。
先說芯片內(nèi)部的 RC OSC,在芯片設(shè)計時,為了保證在沒有外部時鐘/晶振輸入的情況下,芯片也能工作,所以內(nèi)部集成了一些振蕩器/振蕩電路(RC Oscillator),32KHz 和 24MHz(48MHz) 是標(biāo)配,部分型號上還有 16MHz、400MHz,不過這些內(nèi)部振蕩器精度有限(有可能誤差20%),適用芯片低速運行場合。
如果是芯片高速運行的場合(或者對精度要求高的場合),那一定需要外接高精度振蕩器,包含從 XTALI/XTALO 引腳進(jìn)來的 24MHz OSC,以及從 RTC_XTALI/RTC_XTALO 引腳進(jìn)來的 32.768KHz OSC,這兩個外部時鐘源是由 OSC_PLL 大模塊內(nèi)部的 XTALOSC 小模塊負(fù)責(zé)管理的,XTALOSC 模塊優(yōu)先檢測外部是否有 32.768KHz / 24MHz OSC 存在,如果存在則用外部源,如果不存在則啟用內(nèi)部 32KHz / 24MHz RC OSC 源。
24MHz OSC(內(nèi)部或者外部源)是 OSC_PLL 內(nèi)部 PLL 的主要時鐘源,有了基準(zhǔn)的 24MHz 時鐘,PLL 就能將其倍頻得到想要的高頻時鐘,芯片內(nèi)部 PLL 有很多個,大部分 PLL 都只是輸出固定原始頻率時鐘,少部分含 PFD 功能的 PLL(一般是 System PLL)可以調(diào)節(jié)原始頻率輸出。除了 24MHz OSC 外,PLL 也可以接受來自 CLK1_P/CLK1_N 引腳輸入的源。
1. 對于 i.MXRT10xx 系列,PLL 時鐘源選擇在 CCM_ANALOG->PLL_xxx[BYPASS_CLK_SRC] 位
2. 對于 i.MXRT11xx 系列,PLL 時鐘源由 Set Point 設(shè)置
時鐘源輸入 | i.MXRT1011 | i.MXRT1015/102x | i.MXRT105x/106x |
i.MXRT11xx (116x/117x/118x) |
i.MXRT118x |
---|---|---|---|---|---|
XTALI XTALO |
LQFP80 - 37,38 |
LQFP100 - 46,47 LQFP144 - 67,68 |
BGA196 - N11,P11 | BGA289 - U16,T16 | BGA144 - M9,L9 |
RTC_XTALI RTC_XTALO |
LQFP80 - 27,28 |
LQFP100 - 36,37 LQFP144 - 57,58 |
BGA196 - N9,P9 | BGA289 - T13,U13 | BGA144 - M7,L7 |
CLK1_P CLK1_N |
N/A | N/A | BGA196 - N13,P13 | BGA289 - U15,T15 | BGA144 - M11,L11 |
三、關(guān)于時鐘輸出
前面講了 32KHz / 24MHz OSC 是比較重要的時鐘源頭,它的精度對系統(tǒng)性能有很大影響,因此我們需要有一種方法實測這兩個時鐘的精度,芯片設(shè)計時特意在一些 I/O 引腳復(fù)用功能里做了 REF_CLK_24M / REF_CLK_32K 選項,當(dāng) I/O 配置為該功能時,便可用示波器量得具體時鐘頻率。
我們知道 CCM 模塊負(fù)責(zé) OSC_PLL 輸出的時鐘資源的分配,芯片里所有外設(shè)的具體時鐘源指定以及分頻系數(shù)、開關(guān)控制均由 CCM 來完成。如果你想觀測某 PLL 最終輸出或者常用外設(shè)時鐘源最終配置,也可以通過指定 I/O 輸出觀測,即下面的 CCM_CLKO1 / CCM_CLKO2 復(fù)用功能選項。當(dāng)然 CCM_CLKOx 不僅僅用于觀測頻率,也可以用于給外部芯片提供時鐘源。
1. 對于 i.MXRT10xx 系列,CCM_CLKOx 時鐘輸出控制在 CCM->CCOSR 寄存器
2. 對于 i.MXRT11xx 系列,CCM_CLKOx 時鐘輸出控制在最后兩個 CCM->CLOCK_ROOT_CONTROL 寄存器
時鐘信號輸出 | i.MXRT1011 | i.MXRT1015/102x | i.MXRT105x/106x | i.MXRT116x/117x | i.MXRT118x |
---|---|---|---|---|---|
REF_CLK_24M | GPIO_AD_14 |
GPIO_AD_B0_01 GPIO_AD_B0_03 GPIO_AD_B0_13 |
GPIO_AD_14 | N/A | |
REF_CLK_32K | GPIO_AD_07 | GPIO_AD_B0_00 | GPIO_AD_13 | N/A | |
CCM_CLKO1 | GPIO_SD_02 | GPIO_SD_B1_02 | GPIO_SD_B0_04 | GPIO_EMC_B1_40 |
GPIO_EMC_B2_02 GPIO_SD_B1_00 |
CCM_CLKO2 | GPIO_SD_01 | GPIO_SD_B1_03 | GPIO_SD_B0_05 | GPIO_EMC_B1_41 |
GPIO_EMC_B2_08 GPIO_SD_B1_01 |
總結(jié)一下,時鐘功能引腳尤其是輸出引腳對于確認(rèn)時鐘頻率具有重要意義,如果你的應(yīng)用嚴(yán)重依賴時鐘精度,遇到問題時不妨先檢查一下時鐘頻率的準(zhǔn)確性以及精度。
審核編輯 :李倩
-
mcu
+關(guān)注
關(guān)注
146文章
17984瀏覽量
367041 -
時鐘
+關(guān)注
關(guān)注
11文章
1901瀏覽量
133241 -
引腳
+關(guān)注
關(guān)注
16文章
1735瀏覽量
52911
發(fā)布評論請先 登錄
介紹i.MXRT1xxx系列MCU時鐘相關(guān)功能引腳作用
i.MXRT1xxx系列MCU時鐘相關(guān)功能引腳作用
MCU時鐘相關(guān)功能引腳操作

i.MX RT10xx系列外部晶振相關(guān)引腳的作用
與時鐘相關(guān)的PCB的設(shè)計考慮主要分為兩部分
FPGA中的時鐘相關(guān)概念

STM32F030_RTC實時時鐘相關(guān)的知識資料下載

SPI時鐘極性和時鐘相位

評論