痞子衡嵌入式:淺談i.MXRT1xxx系列MCU時鐘相關功能引腳的作用

来源:https://www.cnblogs.com/henjay724/archive/2022/05/08/16246130.html
-Advertisement-
Play Games

大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx系列MCU時鐘相關功能引腳作用。 如果我們從一顆 MCU 晶元的引腳分類來看晶元功能,大概可以分為三大類:電源、時鐘、外設功能。作為嵌入式開發者,大部分時候關註得都是外設功能引腳,而對於時鐘相關引腳往往不太在意,其實 ...



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx系列MCU時鐘相關功能引腳作用

  如果我們從一顆 MCU 晶元的引腳分類來看晶元功能,大概可以分為三大類:電源、時鐘、外設功能。作為嵌入式開發者,大部分時候關註得都是外設功能引腳,而對於時鐘相關引腳往往不太在意,其實有些時候利用時鐘功能引腳也能助你定位問題。今天痞子衡就帶你梳理一下 i.MXRT1xxx 系列的時鐘系統以及相關功能引腳:

一、時鐘系統簡介

  目前 i.MXRT1xxx 系列主要分為 i.MXRT10xx 和 i.MXRT11xx 兩大分支。這兩個分支的時鐘系統設計是有一些差異的,不過總體來說,架構差別不大,我們以如下 i.MXRT1170 的時鐘架構為例來具體介紹。

  在時鐘系統架構圖裡我們能看到有五大組件:OSC_PLL、CCM、LPCG、GPC、SRC,其中最核心的功能在前兩個,OSC_PLL 主要負責產生時鐘,CCM 主要用於分配時鐘。

二、關於時鐘源頭

  上一節里我們知道 OSC_PLL 模塊負責所有時鐘的生成,但那些時鐘並不是憑空產生的,也是需要源頭的。這個源頭既可以來自晶元內部,也可以來自外部引腳輸入。

  先說晶元內部的 RC OSC,在晶元設計時,為了保證在沒有外部時鐘/晶振輸入的情況下,晶元也能工作,所以內部集成了一些振蕩器/振蕩電路(RC Oscillator),32KHz 和 24MHz(48MHz) 是標配,部分型號上還有 16MHz、400MHz,不過這些內部振蕩器精度有限(有可能誤差20%),適用晶元低速運行場合。

  如果是晶元高速運行的場合(或者對精度要求高的場合),那一定需要外接高精度振蕩器,包含從 XTALI/XTALO 引腳進來的 24MHz OSC,以及從 RTC_XTALI/RTC_XTALO 引腳進來的 32.768KHz OSC,這兩個外部時鐘源是由 OSC_PLL 大模塊內部的 XTALOSC 小模塊負責管理的,XTALOSC 模塊優先檢測外部是否有 32.768KHz / 24MHz OSC 存在,如果存在則用外部源,如果不存在則啟用內部 32KHz / 24MHz RC OSC 源。

  24MHz OSC(內部或者外部源)是 OSC_PLL 內部 PLL 的主要時鐘源,有了基準的 24MHz 時鐘,PLL 就能將其倍頻得到想要的高頻時鐘,晶元內部 PLL 有很多個,大部分 PLL 都只是輸出固定原始頻率時鐘,少部分含 PFD 功能的 PLL(一般是 System PLL)可以調節原始頻率輸出。除了 24MHz OSC 外,PLL 也可以接受來自 CLK1_P/CLK1_N 引腳輸入的源。

1. 對於 i.MXRT10xx 系列,PLL 時鐘源選擇在 CCM_ANALOG->PLL_xxx[BYPASS_CLK_SRC] 位
2. 對於 i.MXRT11xx 系列,PLL 時鐘源由 Set Point 設置
時鐘源輸入 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

三、關於時鐘輸出

  前面講了 32KHz / 24MHz OSC 是比較重要的時鐘源頭,它的精度對系統性能有很大影響,因此我們需要有一種方法實測這兩個時鐘的精度,晶元設計時特意在一些 I/O 引腳復用功能里做了 REF_CLK_24M / REF_CLK_32K 選項,當 I/O 配置為該功能時,便可用示波器量得具體時鐘頻率。

  我們知道 CCM 模塊負責 OSC_PLL 輸出的時鐘資源的分配,晶元里所有外設的具體時鐘源指定以及分頻繫數、開關控制均由 CCM 來完成。如果你想觀測某 PLL 最終輸出或者常用外設時鐘源最終配置,也可以通過指定 I/O 輸出觀測,即下麵的 CCM_CLKO1 / CCM_CLKO2 復用功能選項。當然 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

  總結一下,時鐘功能引腳尤其是輸出引腳對於確認時鐘頻率具有重要意義,如果你的應用嚴重依賴時鐘精度,遇到問題時不妨先檢查一下時鐘頻率的準確性以及精度。

  至此,i.MXRT1xxx系列MCU時鐘相關功能引腳作用痞子衡便介紹完畢了,掌聲在哪裡~~~

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下麵二維碼,就可以在手機上第一時間看了哦。

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於恩智浦MCU系統部門,擔任嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原創:微信公眾號 【阿Q說代碼】,歡迎分享,轉載請保留出處。 之前寫過一篇名為《看了同事寫的代碼,我竟然開始默默的模仿了。。。》的文章,今天偶然間看了下後臺數據,大吃一驚。該文章的閱讀量在微信公眾號內竟然達到了驚人的5W+ 。對於沒見過市面的我來說已經相當滿足了。 當然,能達到這樣的數據離不開各位大 ...
  • 近幾年網路發展的越來越好,其中的功勞離不開默默付出的程式員,正是他們任勞任怨的付出,才換來現在的便捷,在程式員匯聚的論壇,一名程式員卻道出另一種現象:好久沒打代碼了,回想以前辭職到老家礦洞里秘密開發的日子,二年整整敲了45萬行代碼。 這便是該程式員的原文,在貼文最下方,還曬出山洞的全景樣貌,山洞看起 ...
  • 回顧總結 到目前為止,Spring源碼中AbstractApplicationContext#refresh方法的已經解讀到第11個方法finishBeanFactoryInitialization,前10個方法介紹了: BeanFactory的準備,創建,刷新,個性化BeanFactory的擴展點 ...
  • package com.oop.demo06;public class Person { public void run(){ System.out.println("run"); }} package com.oop.demo06;public class Student extends Pers ...
  • 1、前言 好久沒有更新博客了,最近沒什麼假期,但是卻比以前還忙!工作、工作、工作,就像趕集似的,聚在一起。這個上海啥時候才能解封困在這裡暗無天日的。早點解封出去看看想見的人的人,做做該做的事。工作中有那麼一個需求客戶想要通過自己選擇列表的checkbox然後下載所選列表裡面的圖片,圖片我們是存在圖片 ...
  • 一 什麼是轉換 轉換是接受一個類型的值並使用它作為另一個類型的等價值的過程。 下列代碼演示了將1個short類型的值強制轉換成byte類型的值。 short var1 = 5; byte var2 = 10; var2 = (byte) var1; //強制轉換,將var1的值轉換成byte類型 二 ...
  • VS2019如何把項目部署和發佈 這裡演示:通過IIS文件publish的方式部署到Windows本地伺服器上 第一步(安裝IIS) 1.在自己電腦上搜索Windows功能里的【啟用或關閉Windows功能】 2.配置Internet Information Services 3.然後點擊確認就OK ...
  • 1、回調函數 關於回調函數,在之前的文章《回調函數》已經詳解講解過了,這個文章不再講解,不太懂的同學請看之前的文章《回調函數》。在之前講解回調函數中就使用串口作為示例,使用回調函數可以方便封裝通訊庫,晶元/模塊廠家的SDK和部分開源庫經常這樣做,這樣可以實現模塊間的解耦,模塊化編程。 這篇文章主要講 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...