国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

深度拆解RK806 PMIC電源處理流程:從SPI通信到DVS動態調壓

jf_44130326 ? 來源:Linux1024 ? 2026-02-05 13:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式設備中,PMIC電源管理集成電路)是能源管家”——它不僅為CPU、內存、外設提供穩定電壓,還需處理休眠喚醒、異常保護、動態調壓等核心邏輯。瑞芯微RK806作為一款高集成度PMIC,支持10DCDC穩壓器、6PLDO+5NLDO,廣泛應用于工業控制智能硬件等場景。

本文將從驅動架構出發,逐層拆解RK806電源處理流程(初始化、電壓調節、休眠喚醒、關機保護),結合核心代碼與流程圖,幫你吃透底層邏輯,為定制電源方案、調試問題提供參考。

一、RK806驅動架構:四大核心模塊分工

RK806Linux驅動基于MFD(多功能設備)框架設計,通過4個核心文件實現功能解耦,各模塊職責清晰:

文件名

核心功能

關鍵接口/作用

rk806-spi.c

SPI總線通信

實現regmap讀寫接口,對接硬件SPI

rk806-core.c

核心控制層

設備初始化、中斷管理、子設備加載

pinctrl-rk806.c

引腳控制層

GPIO管理、引腳復用(DVS/PWRCTRL

rk806-regulator.c

穩壓器驅動層

電壓調節、DVS動態調壓、異常保護

核心設計思路:以regmap為數據交互核心(屏蔽總線差異),core層統一調度,子模塊(regulator/pinctrl)專注細分功能,形成總線核心子設備的分層架構。

二、第一步:RK806初始化流程(從SPI匹配到電源就緒)

初始化是PMIC工作的基礎——SPI設備被系統識別,到完成寄存器配置、子設備加載,最終進入可工作狀態。整個流程可分為SPI通信初始化核心參數配置兩大階段。

2.1初始化數據流程

1.SPI設備匹配:系統枚舉SPI設備時,通過rk806_of_match(兼容rockchip,rk806)或spi_id_table匹配驅動;

2.SPI通信層初始化:調用rk806_spi_probe,分配rk806結構體,綁定SPI設備的devirq

3.regmap初始化:通過devm_regmap_init,將SPI總線的讀寫函數(rk806_spi_bus_read/write)封裝為regmap接口,上層無需關心SPI協議細節;

4.核心初始化入口:調用rk806_device_initcore.c),啟動核心配置;

5.設備樹解析rk806_parse_dt讀取電壓閾值(如low_voltage_threshold)、關機序列(shutdown-sequence)、DVS控制參數,默認值兜底(如低電壓閾值默認3400mV);

6.寄存器字段映射:初始化regmap_field,將寄存器某幾位映射為獨立字段(如BUCK1_EN對應0x00寄存器0位),方便單獨讀寫;

7.芯片信息校驗:讀取CHIP_NAME_H/LCHIP_VER,打印芯片ID(如RK806IDRKxx)和版本,確認硬件匹配;

8.中斷系統初始化:添加regmap_irq_chip,管理16路中斷(如PWRON按鍵、VDC電壓變化、過溫),啟用喚醒中斷(如VDC中斷);

9.加載MFD子設備:通過devm_mfd_add_devices加載3個子設備——rk806-pinctrl(引腳)、rk805-pwrkey(電源鍵)、rk806-regulator(穩壓器);

10.電源參數配置rk806_init設置電壓保護閾值(如VB_UV_SEL)、TSD過溫閾值(140℃/160℃)、啟用2MHz時鐘,初始化強制關機序列;

11.調試節點創建:在sysfs創建debug節點,支持通過命令讀寫寄存器(如echo "w 0x00 0x01" > /sys/rk806/debug)。

2.2初始化流程圖(Mermaid

wKgZO2kajEaAfMPUAAFRHw9mCHw763.jpg

三、核心能力:電壓調節與DVS動態調壓流程

電壓調節是PMIC的核心功能——既要為不同外設提供固定電壓(如CPU核心1.2V、內存1.8V),也要支持DVS(動態電壓調節)(根據負載調整電壓,降低功耗)。

3.1常規電壓調節流程(固定電壓設置)

當應用層需要設置某路穩壓器電壓(如DCDC_REG1輸出1.2V)時,流程如下:

1.應用層請求:通過sysfsregulator API發起請求(如echo 1200000 > /sys/class/regulator/DCDC_REG1/microvolts);

2.regulator框架調度Linux regulator框架調用rk806_set_voltageregulator.c);

3.電壓→VSEL映射:調用regulator_map_voltage_linear_range,將目標電壓(1200000μV)映射為VSEL——

DCDC為例,電壓范圍分兩段:500mV~1500mV(步長6.25mV)、1500mV~3400mV(步長25mV),1200mV對應VSEL=112(1200-500)/6.25=112);

4.確定目標寄存器:調用rk806_get_write_vsel_register,根據DVS模式選擇寫入寄存器(正常模式寫ON_VSEL,休眠模式寫SLP_VSEL);

5.寫入寄存器:通過regmap_update_bitsVSEL值寫入目標寄存器(如DCDC_REG1對應BUCK1_ON_VSEL=0x1A);

6.同步電壓狀態:調用rk806_regulator_sync_voltage,確認電壓已更新并打印調試信息。

3.2 DVS動態調壓流程(負載自適應)

DVS用于按需調壓”——比如CPU負載低時降為0.9V,負載高時升為1.2V,實現功耗優化。RK806支持GPIO觸發軟件觸發兩種DVS模式:

模式1GPIO觸發DVS(硬件信號控制)

1.DVS引腳配置:通過設備樹配置dvs-pin1_ctrl,將PWRCTRL1引腳復用為DVS觸發引腳;

2.電平變化檢測DVS引腳電平變化(如從高變低),觸發GPIO中斷;

3.切換VSEL寄存器:調用rk806_do_gpio_dvs,讀取GPIO電平——

?電平= 0:切換為休眠電壓(讀SLP_VSEL);

?電平= 1:切換為工作電壓(讀ON_VSEL);

1.更新輸出電壓regmap自動加載對應VSEL值,完成電壓切換。

模式2:軟件觸發DVS(軟件命令控制)

1.DVS模式初始化:通過rk806_dvs_mode_init配置為“start bit控制模式;

2.軟件觸發:應用層觸發DVS(如CPU負載升高),調用rk806_do_soft_dvs

3.設置DVS_START:向DVS_START1~3寄存器(0x70)寫入1,觸發DVS切換;

4.切換電壓regmap根據預設的DVS_CTRL_SEL,加載對應電壓值。

3.3電壓調節流程圖

wKgZO2kajEaAXtKoAAB_F6uoXO0558.png

四、休眠喚醒與關機保護:電源狀態管理

RK806需處理設備的休眠-喚醒狀態切換,以及低電壓/過溫的異常保護,確保系統穩定。

4.1休眠-喚醒流程

休眠流程(系統進入低功耗)

1.休眠觸發:系統執行suspend(如echo mem > /sys/power/state);

2.核心中斷處理:調用rk806_core_suspend,禁用RK806IRQ,啟用IRQ喚醒(如VDC中斷、PWRON按鍵);

3.regulator休眠配置:調用regulator_suspend,設置休眠電壓(寫入SLP_VSEL),切換DVS控制方式為休眠模式

4.引腳狀態切換pinctrl_select_state將引腳切換到sleep狀態(如禁用非必要外設引腳)。

喚醒流程(系統恢復工作)

1.喚醒源觸發:喚醒源(如PWRON按鍵、VDC電壓恢復)觸發IRQ

2.核心中斷恢復:調用rk806_core_resume,啟用主IRQ,禁用IRQ喚醒;

3.regulator恢復:調用regulator_resume,恢復工作電壓(加載ON_VSEL),重置DVS控制為正常模式

4.引腳恢復pinctrl_select_state將引腳切換回default狀態,外設恢復供電。

4.2關機與異常保護流程

RK806支持正常關機異常關機(低電壓/過溫),核心是按序列關閉電源,避免硬件損壞。

1.正常關機流程

1.關機觸發:系統執行shutdown,調用rk806_regulator_shutdown

2.加載關機序列:調用rk806_shutdown_requence_config,從設備樹讀取shutdown-sequence(如先關DCDC10,再關DCDC9...);

3.引腳狀態切換pinctrl_select_state切換到power_off狀態,觸發電源關閉信號;

4.按序列關電:按預設序列關閉所有DCDC/LDO,完成關機。

2.異常保護流程(低電壓為例)

1.低電壓檢測SYS_STS寄存器(0x5D)的VB_LO_STS位變為1(檢測到輸入電壓低于閾值);

2.保護策略判斷:讀取VB_LO_ACT配置(0x5E寄存器)——

?VB_LO_ACT_SD0x00):直接觸發關機;

?VB_LO_ACT_INT0x01):先發送中斷通知系統;

1.強制關機:調用rk806_vb_force_shutdown_init,加載vb-shutdown-sequence,按序列關閉電源;

2.硬件復位:若電壓持續過低,觸發DEV_RST0x72寄存器),硬件復位系統。

4.3休眠喚醒與關機流程圖

wKgZO2kajEaAGNbnAAFftuXTHRA257.pngwKgZO2kajEaAaZ9DAAAmGgcs1jQ318.pngwKgZO2kajEaAFLocAAB7jfaIwsw197.png

五、RK806電源處理的核心設計亮點

1.分層解耦架構SPI總線層(屏蔽硬件差異)、核心控制層(統一調度)、子設備層(專注細分功能),便于維護和擴展;

2.靈活的調壓機制:支持線性電壓映射、多模式DVS,適配不同負載場景;

3.完善的異常保護:低電壓(2800-3500mV)、過溫(140℃/160℃)雙重保護,避免硬件損壞;

4.便捷的調試接口sysfs節點支持寄存器讀寫,無需修改代碼即可調試電源參數;

5.設備樹驅動分離:電壓閾值、關機序列等參數通過設備樹配置,無需重新編譯驅動,適配不同硬件。

總結

RK806的電源處理流程,本質是regmap為核心,分層實現通信、控制、調壓、保護”——SPI通信初始化,到電壓調節、休眠喚醒,再到異常關機,每一步都圍繞穩定供電低功耗展開。

對于工程師而言,理解這一流程不僅能快速定位電源問題(如電壓不穩定、DVS失效),還能根據實際需求定制電源方案(如調整DVS閾值、優化關機序列)。后續我們還將拆解RK806的中斷處理、GPIO控制細節,敬請關注!

如果覺得本文有幫助,歡迎點贊、在看,轉發給身邊的嵌入式同行~


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 穩壓器
    +關注

    關注

    24

    文章

    4926

    瀏覽量

    99894
  • 內存
    +關注

    關注

    9

    文章

    3209

    瀏覽量

    76354
  • PMIC
    +關注

    關注

    15

    文章

    480

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    開關電源pcb設計實例 分析RK806電源方案的PCB設計

    模塊峰值電流表進行知悉,供PCB Layout時評估線寬作用,如下表值得注意的是,不能簡單的全部加起來算成SOC的峰值電流,要評估散熱方案,根據實際場景的工作平均電流進行,表格參數值僅供參考。 本篇內容以RK806電源方案的PCB設計
    的頭像 發表于 08-02 08:41 ?3433次閱讀
    開關<b class='flag-5'>電源</b>pcb設計實例 分析<b class='flag-5'>RK806</b><b class='flag-5'>電源</b>方案的PCB設計

    RK3588 EVB開發板原理圖講解【一】

    看出電源分布,以方便評估項目的電流大小。 4、RK3588電源上電時序 時序基本是RK806這邊管控好了,對于硬件工程師基本只需要考慮項目是否需要用到開關機按鍵 是否需要默認開機就
    發表于 02-11 16:29

    RK3588 EVB開發板原理圖講解【三】

    RK3588 電源管理 ——RK806 介紹 一、RK806 典型應用圖 二、RK806 特征 輸入范圍:2.7V - 5.5V。 待機
    發表于 02-14 16:13

    RK3588 EVB開發板原理圖講解【七】

    處理)。RK806 開關機條件VDC 開機流程? VCCA 有電;? VDC 腳高于 0.8V,推薦值為 1.0V 左右;? EXT_EN 輸出高電平;? VCCA\VCC1\VCC2 在 EXT_EN
    發表于 02-28 08:51

    RK3128 Android 7.1 進入深度休眠流程分析

    RK3128 Android 7.1 進入深度休眠流程分析RK3128是瑞芯微電子推出的一款低功耗四核Cortex-A7處理器,運行Andr
    發表于 07-22 10:45

    請問WiFi模塊通過串口通信到ZigBee模塊的程序嗎?

    求助,求助!!!!WiFi模塊通過串口通信到ZigBee模塊的程序。下面是我們的課題,如果有哪位大神可以把整個的流程和程序都提供的話更好,如果不行的話,提供WiFi通過串口通信到ZigBee模塊的程序也行。,價格好商量!!!!
    發表于 04-08 06:55

    一文解析RK3288 PMU配置RK808

    1、RK3288 PMU配置RK808  硬件原理  pmic 電路原理  電源分為兩種:  DCDC:輸入輸出壓差大時,效率高,但是有紋波問題,成本高,所以大壓差,大電流時使用。  
    發表于 09-02 17:07

    求一種RK3588+FPGA高速圖像處理通信處理機解決方案

    Corte A55 CPU,內置6Tops 獨立NPU,運用RK806-2雙PMIC供電方案,支持LPDDR4X/eMMC存儲,擁有HDMI、MIPI、VGA、SATA等10余個外設接口,具有集成度高、性能強
    發表于 09-15 17:41

    瑞芯微:已有多款搭載RK3588M芯片乘用車面世

    瑞芯微進一步指出,公司在汽車電子領域已經積累了多年經驗,在汽車全組裝和后組裝中都有分布。在前裝模塊市場上,有最具代表性的智能模塊芯片rk3588米、儀表盤控制芯片rk3358米、音頻芯片rk3308米、
    的頭像 發表于 09-21 10:22 ?3900次閱讀

    RK806電源方案的PCB設計注意事項

    RK3588系統采用PMIC芯片RK806來進行整體供電,如圖1所示。整體布局時在滿足結構和特殊器件的布局同時RK806盡量靠近RK3588
    的頭像 發表于 09-23 07:40 ?2294次閱讀
    <b class='flag-5'>RK806</b><b class='flag-5'>電源</b>方案的PCB設計注意事項

    RK3568 EVB開發板 深度休眠與快速醒的工作流程

    RK3568 EVB開發板關于深度休眠和喚醒流程的分析
    的頭像 發表于 07-22 09:49 ?848次閱讀
    <b class='flag-5'>RK</b>3568 EVB開發板 <b class='flag-5'>深度</b>休眠與快速醒的工作<b class='flag-5'>流程</b>

    解決RK806+RK3588休眠異常!硬件特性到軟件優化的完整方案

    在嵌入式開發中,電源管理的穩定性直接決定了設備的可靠性。近期,RK3588 平臺搭配 RK806 電源管理芯片(PMIC)時,出現了二次休眠
    的頭像 發表于 02-09 16:46 ?718次閱讀
    解決<b class='flag-5'>RK806+RK</b>3588休眠異常!<b class='flag-5'>從</b>硬件特性到軟件優化的完整方案

    RK806中斷處理流程深度解析:架構到調試實戰

    RK806 作為瑞芯微主流 PMIC電源管理芯片),其中斷機制是實現“電源鍵響應、電壓異常保護、休眠喚醒、 watchdog 超時處理
    的頭像 發表于 02-05 13:46 ?907次閱讀
    <b class='flag-5'>RK806</b>中斷<b class='flag-5'>處理</b><b class='flag-5'>流程</b><b class='flag-5'>深度</b>解析:<b class='flag-5'>從</b>架構到調試實戰

    RK?平臺?SPI?開發完全指南(驅動?+?配置?+?測試?+?優化)

    ,全方位拆解 RK 平臺 SPI 開發流程。 一、 RK 平臺 SPI 核心特性速覽 ? ? 1
    的頭像 發表于 01-30 22:35 ?627次閱讀
    <b class='flag-5'>RK</b>?平臺?<b class='flag-5'>SPI</b>?開發完全指南(驅動?+?配置?+?測試?+?優化)

    深入解析U-Boot image.c:RK平臺鏡像處理核心邏輯

    的SD/NAND/SPI等啟動方式做了專屬適配。本文將拆解image.c的核心邏輯,梳理RK平臺鏡像處理的關鍵流程,幫助開發者理解和調試啟動
    的頭像 發表于 02-24 16:46 ?1439次閱讀
    深入解析U-Boot image.c:<b class='flag-5'>RK</b>平臺鏡像<b class='flag-5'>處理</b>核心邏輯