日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RK3576時鐘系統(tǒng)深度解析:從原理到實踐,玩轉(zhuǎn)SoC核心時鐘!

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-04-28 07:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

時鐘系統(tǒng)是SoC的“心臟”,為所有外設和核心部件提供穩(wěn)定、精準的時鐘信號,直接決定了芯片的性能、功耗與穩(wěn)定性。RK3576作為瑞芯微主流的中高端SoC,其時鐘系統(tǒng)設計靈活且復雜,今天我們就從概念到代碼、從邏輯到數(shù)據(jù)流,全方位拆解RK3576的時鐘系統(tǒng),幫開發(fā)者徹底搞懂這一核心模塊!

一、概念分析

1.時鐘系統(tǒng)基本概念

時鐘系統(tǒng)的核心術語是理解RK3576時鐘架構的基礎,先理清這幾個關鍵概念:

?PLL(鎖相環(huán)):時鐘系統(tǒng)的核心,將24MHz/26MHz晶振輸入的參考時鐘倍頻到更高頻率,為不同模塊提供高頻時鐘源。

?時鐘樹:從PLL輸出開始,通過分頻器、選擇器層層分配時鐘到各外設的層級結構,是時鐘分配的“脈絡”。

?時鐘源:提供基礎時鐘的設備,最典型的就是晶振(OSC)。

?時鐘域:芯片中使用相同/相關時鐘的功能模塊集合,不同域可獨立配置時鐘,兼顧性能與功耗。

2. RK3576時鐘架構

RK3576采用多級時鐘架構,覆蓋核心、總線、外設、顯示等全場景,主要分為四類:

?核心PLL:包含BPLL、LPLL、VPLL、AUPLL、CPLL、GPLL、PPLL等,為不同功能域提供專屬高頻時鐘;

?總線時鐘ACLK_BUS_ROOT、HCLK_BUS_ROOT、PCLK_BUS_ROOT等,支撐總線數(shù)據(jù)傳輸?shù)臅r鐘;

?外設時鐘:為I2C、SPI、PWM、ADC、MMC等外設提供工作時鐘;

?顯示時鐘:專門為VOP(視頻輸出處理)模塊設計的時鐘,保障顯示輸出的穩(wěn)定性。

二、代碼分析

RK3576的時鐘驅(qū)動代碼核心位于u-bootdriversclkrockchipclk_rk3576.c(約2750行),我們從核心數(shù)據(jù)結構、操作函數(shù)、外設時鐘處理三個維度拆解。

1.核心數(shù)據(jù)結構

PLL是時鐘系統(tǒng)的核心,代碼中通過專用結構體定義PLL速率表和時鐘配置:

// PLL時鐘表staticstructrockchip_pll_rate_table rk3576_24m_pll_rates[] = { /* _mhz, _p, _m, _s, _k */  RK3588_PLL_RATE(1500000000,2,250,1,0), // ... 更多速率配置};// PLL時鐘結構staticstructrockchip_pll_clock rk3576_pll_clks[] = {  [BPLL] = PLL(pll_rk3588, PLL_BPLL, RK3576_PLL_CON(0),        RK3576_BPLL_MODE_CON0,0,15,0,        rk3576_24m_pll_rates), // ... 更多PLL配置};

2.主要操作函數(shù)

時鐘驅(qū)動的核心是“獲取速率”和“設置速率”,代碼通過switch-case匹配不同時鐘ID,調(diào)用專屬處理函數(shù):

時鐘速率獲取

staticulongrk3576_clk_get_rate(structclk *clk){ structrk3576_clk_priv *priv = dev_get_priv(clk->dev); ulongrate =0;
 // 根據(jù)時鐘ID調(diào)用相應的獲取函數(shù) switch(clk->id) { casePLL_LPLL:    rate = rockchip_pll_get_rate(&rk3576_pll_clks[LPLL], priv->cru, LPLL);    priv->lpll_hz = rate;   break; caseACLK_BUS_ROOT: caseHCLK_BUS_ROOT: casePCLK_BUS_ROOT:    rate = rk3576_bus_get_clk(priv, clk->id);   break; // ... 更多時鐘類型  } returnrate;}

時鐘速率設置

staticulongrk3576_clk_set_rate(structclk *clk,ulongrate){ structrk3576_clk_priv *priv = dev_get_priv(clk->dev); ulongret =0;
 // 根據(jù)時鐘ID調(diào)用相應的設置函數(shù) switch(clk->id) { casePLL_CPLL:    ret = rockchip_pll_set_rate(&rk3576_pll_clks[CPLL], priv->cru, CPLL, rate);    priv->cpll_hz = rockchip_pll_get_rate(&rk3576_pll_clks[CPLL], priv->cru, CPLL);   break; // ... 更多時鐘類型  } returnret;}

3.外設時鐘處理

以常用的I2C時鐘為例,代碼通過讀取寄存器確定時鐘源,再返回對應速率:

staticulong rk3576_i2c_get_clk(structrk3576_clk_priv *priv, ulong clk_id) { structrk3576_cru *cru = priv->cru;  u32 sel, con;  ulong rate;
 // 根據(jù)I2C實例讀取相應的寄存器 switch(clk_id) { caseCLK_I2C0:    con = readl(&cru->pmuclksel_con[6]);    sel = (con &CLK_I2C0_SEL_MASK) >>CLK_I2C0_SEL_SHIFT;   break; // ... 更多I2C實例  }
 // 根據(jù)選擇的時鐘源返回相應的速率 if(sel ==CLK_I2C_SEL_200M)    rate =200* MHz; elseif(sel ==CLK_I2C_SEL_100M)    rate =100* MHz; elseif(sel ==CLK_I2C_SEL_50M)    rate =50* MHz; else    rate = OSC_HZ;
 returnrate;}

三、邏輯分析

1.時鐘初始化流程

RK3576時鐘驅(qū)動的初始化遵循“加載-綁定-初始化-探測-時鐘配置”的流程,一步都不能少:

1.驅(qū)動加載:通過U_BOOT_DRIVER注冊時鐘驅(qū)動;

2.設備綁定:rk3576_clk_bind函數(shù)綁定相關設備;

3.平臺數(shù)據(jù)初始化:rk3576_clk_ofdata_to_platdata獲取硬件寄存器地址;

4.驅(qū)動探測:rk3576_clk_probe函數(shù)完成驅(qū)動初始化;

5.時鐘初始化:rk3576_clk_init設置默認PLL頻率。

2.時鐘配置邏輯

時鐘配置的核心是“選源-分頻-使能”,邏輯如下:

1.PLL配置:根據(jù)目標頻率,選擇P、M、S、K參數(shù)(倍頻系數(shù));

2.時鐘源選擇:為外設匹配最合適的時鐘源(如PLL輸出/晶振);

3.分頻配置:計算并設置分頻系數(shù),將時鐘降到外設所需頻率;

4.時鐘使能:確認時鐘信號正確輸出到外設。

3.時鐘速率計算

時鐘分頻分為“整數(shù)分頻”和“分數(shù)分頻”,對應兩種計算方式:

?整數(shù)分頻:DIV_TO_RATE(input_rate, div) = input_rate / (div + 1);

?分數(shù)分頻:通過rational_best_approximation函數(shù)計算最佳分數(shù)近似值,適配更精細的頻率需求。

四、數(shù)據(jù)流走向

RK3576的時鐘信號從“源頭”到“外設”,遵循固定的流向,可概括為5步:

1.晶振輸入:24MHz/26MHz參考時鐘(時鐘系統(tǒng)的“起點”);

2.PLL倍頻:PLL將參考時鐘倍頻到高頻(如BPLL可達1.8GHz);

3.時鐘選擇:時鐘選擇器從多個PLL輸出中選取出目標時鐘源;

4.時鐘分頻:分頻器將高頻時鐘降到外設可承受的頻率;

5.外設使用:處理后的時鐘信號輸入到I2C/SPI/顯示等外設。

簡化流程圖:

晶振(24MHz) → PLL倍頻 → 時鐘選擇器 → 分頻器 → 外設

五、開發(fā)者需要注意的事項

調(diào)試/配置RK3576時鐘時,6個關鍵點直接影響系統(tǒng)穩(wěn)定性,務必牢記:

1.時鐘依賴關系:部分外設時鐘依賴特定PLL /總線時鐘,修改前需梳理依賴鏈;

2.頻率限制:每個外設都有工作頻率范圍(如I2C通常≤400KHz),超出范圍會導致功能異常;

3.功耗考慮:高頻時鐘=高功耗,按需配置頻率,平衡性能與功耗;

4.穩(wěn)定性:時鐘頻率突變易導致系統(tǒng)崩潰,需逐步調(diào)整;

5.寄存器操作:直接寫時鐘寄存器風險高,錯誤配置可能讓芯片“變磚”;

6.SCMI接口:若通過SCMI管理時鐘,需嚴格遵循SCMI協(xié)議規(guī)范。

六、調(diào)試案例

以“我2C時鐘配置異常導致通信失敗”為例,手把手教你定位問題:

問題描述

I2C總線無響應,通信完全失敗。

調(diào)試步驟

1.檢查時鐘是否使能:用clk dump命令查看I2C時鐘狀態(tài):

=> clk dumpCLK: (uboot.arm:enter1800000KHz, init1800000KHz, kernel 0N/A) bpll1800000KHz lpll1200000KHz vpll5940000KHz ... clk_i2c0100000KHz

2.讀取時鐘配置寄存器:確認I2C時鐘源選擇的寄存器值:

// 讀取I2C0時鐘配置con = readl(&cru->pmuclksel_con[6]);sel = (con &CLK_I2C0_SEL_MASK) >>CLK_I2C0_SEL_SHIFT;

3.驗證時鐘源:確認選擇的時鐘源是否匹配預期:

if(sel ==CLK_I2C_SEL_200M)  rate =200* MHz;elseif(sel ==CLK_I2C_SEL_100M)  rate =100* MHz;

4.調(diào)整時鐘頻率:若頻率不匹配,重新配置:

rk3576_i2c_set_clk(priv, CLK_I2C0,100000); // 設置為100KHz

解決方案

定位到“I2C時鐘源選擇錯誤”,重新配置為100MHz時鐘源并正確分頻,I2C通信恢復正常。

七、時鐘系統(tǒng)完整流程圖

wKgZPGnv7MmAIEy0AABVSgfYU-A606.png

八、總結

RK3576時鐘系統(tǒng)的核心優(yōu)勢是“靈活”——多級PLL +豐富的選擇器/分頻器,能為不同外設定制時鐘方案。開發(fā)者只要理清時鐘樹結構、遵循配置流程,就能兼顧“性能、功耗、穩(wěn)定性”。

最后給個調(diào)試小技巧:遇到時鐘問題時,先用clk dump查看時鐘狀態(tài),再結合寄存器讀寫定位問題,效率會大幅提升!

希望這篇深度解析能幫你玩轉(zhuǎn)RK3576時鐘系統(tǒng),少踩坑、多提效~

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • soc
    soc
    +關注

    關注

    40

    文章

    4635

    瀏覽量

    230271
  • 時鐘系統(tǒng)

    關注

    1

    文章

    135

    瀏覽量

    13027
  • rk3576
    +關注

    關注

    1

    文章

    304

    瀏覽量

    1681
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    米爾RK3576RK3588怎么選?-看這篇就夠了

    在中國半導體產(chǎn)業(yè)的版圖中,瑞芯微作為國內(nèi)SoC芯片領跑者,憑借其在處理器芯片設計領域的深厚積累和持續(xù)創(chuàng)新,推出很多智能應用處理器芯片,在嵌入式系統(tǒng)領域得到大規(guī)模的應用。RK3588和RK357
    發(fā)表于 12-27 11:44

    性能到成本,深度剖析 RK3588 與 RK3576 怎么選

    在中國半導體產(chǎn)業(yè)的版圖中,瑞芯微作為國內(nèi)SoC芯片領跑者,憑借其在處理器芯片設計領域的深厚積累和持續(xù)創(chuàng)新,推出很多智能應用處理器芯片,在嵌入式系統(tǒng)領域得到大規(guī)模的應用。RK3588和RK357
    發(fā)表于 02-09 09:10

    國產(chǎn)開發(fā)板的端側AI測評-基于米爾瑞芯微RK3576

    分為核心板以及擴展板,核心板是基于瑞芯微在今年第二季推出的全新通用型SOC芯片RK3576,擴展板則擴展了眾多的外設接口,方便工程師調(diào)試或者直接基于開發(fā)板做原型開發(fā)。 值得一提的是,
    發(fā)表于 02-14 16:29

    適配多種系統(tǒng),米爾瑞芯微RK3576核心板解鎖多樣化應用

    RK3576 核心板提供了 Linux、Debian、Android 多種系統(tǒng)鏡像,為工程師提供了多樣化的選擇,助力各行業(yè)產(chǎn)品開發(fā)落地。 一、系統(tǒng)介紹
    發(fā)表于 05-23 16:07

    RK3576 vs RK3588:為何越來越多的開發(fā)者轉(zhuǎn)向RK3576

    的成本結構以及針對特定場景的深度優(yōu)化,正在成為中高端市場的熱門選擇。那么,RK3576 究竟有哪些優(yōu)勢?它是否真的能替代 RK3588?我們來做一個全面對比。 1. 核心性能對比:
    發(fā)表于 05-30 08:46

    Mpp支持RK3576

    想問下,https://github.com/rockchip-linux/mpp這里面支持RK3576么,看介紹沒有提到說支持RK3576 目前是買了個rk3576的機頂盒,搭載了安卓14,想做安卓視頻硬解。
    發(fā)表于 06-13 15:35

    RK這2款旗艦芯片RK3588 PK RK3576,誰是最優(yōu)選

    ,了解兩者的區(qū)別十分重要,以下將從多個方面進行詳細對比。一、處理器性能解析(一)CPU 性能1. 核心架構? RK3576:采用四核 Cortex - A72 和四核 Cortex - A53 架構
    發(fā)表于 07-10 18:24

    【作品合集】米爾RK3576開發(fā)板測評

    測試 作者:魯治驛【米爾RK3576開發(fā)板免費體驗】測評綜合解析 【米爾RK3576開發(fā)板免費體驗】集成MQ-2煙霧傳感器和ADS1263模塊實現(xiàn)氣體監(jiān)測 【米爾RK3576開發(fā)板免費
    發(fā)表于 09-11 10:19

    基于米爾RK3576核心板的國產(chǎn)割草機器人解決方案

    :國產(chǎn)芯片如何賦能四大關鍵系統(tǒng) 基于米爾RK3576核心板,我們構建了一套完整的“感知-決策-控制”閉環(huán)系統(tǒng),全面適配國產(chǎn)操作系統(tǒng)與算法生態(tài)
    發(fā)表于 04-24 17:31

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹
    的頭像 發(fā)表于 08-26 17:23 ?1937次閱讀
    宇瓏<b class='flag-5'>RK3576</b><b class='flag-5'>核心</b>板與嵌入式主板通用平臺介紹

    新品體驗 | RK3576開發(fā)板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心板與評估板。鑒
    的頭像 發(fā)表于 11-01 08:08 ?3434次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b>開發(fā)板

    RK3576單板發(fā)布倒計時:RK3399與RK3576對比

    好多人說RK3576RK3399的升級版,某種程度上也可以這么說,RK3576在強大的多媒體功能的基礎上,性能和接口都進行了升級 一、工藝 性能 rk3576采用 Rockchip
    的頭像 發(fā)表于 12-03 16:59 ?2796次閱讀
    <b class='flag-5'>RK3576</b>單板發(fā)布倒計時:<b class='flag-5'>RK</b>3399與<b class='flag-5'>RK3576</b>對比

    RK3588與RK3576區(qū)別解析

    以下是RK3576RK3588對比: 電魚電子SBC-RK3576單板 核心性能:RK3576為四核A72@2.2GHz + 四核A53@
    的頭像 發(fā)表于 12-17 14:03 ?4467次閱讀
    <b class='flag-5'>RK</b>3588與<b class='flag-5'>RK3576</b>區(qū)別<b class='flag-5'>解析</b>

    瑞芯微RK3576RK3576S有什么區(qū)別,性能參數(shù)配置與型號差異解析

    、物聯(lián)網(wǎng)等商用AIoT領域。(瑞芯微RK3576RK3576S芯片框圖)觸覺智能作為專業(yè)的瑞芯微方案商,基于RK3576芯片平臺推出了核心板、開發(fā)板、行業(yè)主板等
    的頭像 發(fā)表于 08-14 23:57 ?2754次閱讀
    瑞芯微<b class='flag-5'>RK3576</b>與<b class='flag-5'>RK3576</b>S有什么區(qū)別,性能參數(shù)配置與型號差異<b class='flag-5'>解析</b>

    迅為如何在RK3576上部署YOLOv5;基于RK3576構建智能門禁系統(tǒng)

    迅為如何在RK3576開發(fā)板上部署YOLOv5;基于RK3576構建智能門禁系統(tǒng)
    的頭像 發(fā)表于 11-25 14:06 ?1996次閱讀
    迅為如何在<b class='flag-5'>RK3576</b>上部署YOLOv5;基于<b class='flag-5'>RK3576</b>構建智能門禁<b class='flag-5'>系統(tǒng)</b>
    华蓥市| 柘城县| 长泰县| 金沙县| 忻州市| 平度市| 耿马| 佛坪县| 诸暨市| 环江| 马公市| 沿河| 利津县| 从江县| 临汾市| 武宣县| 磐石市| 隆林| 琼中| 河曲县| 颍上县| 轮台县| 连州市| 新巴尔虎右旗| 杨浦区| 建昌县| 全椒县| 远安县| 临武县| 阿克苏市| 江阴市| 西青区| 房产| 秦皇岛市| 玉门市| 新泰市| 仙游县| 徐汇区| 六盘水市| 韶山市| 辛集市|