91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

深度拆解RK806 PMIC電源處理流程:從SPI通信到DVS動態(tài)調(diào)壓

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

掃碼添加小助手

加入工程師交流群

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

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

一、RK806驅(qū)動架構(gòu):四大核心模塊分工

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

文件名

核心功能

關(guān)鍵接口/作用

rk806-spi.c

SPI總線通信

實現(xiàn)regmap讀寫接口,對接硬件SPI

rk806-core.c

核心控制層

設(shè)備初始化、中斷管理、子設(shè)備加載

pinctrl-rk806.c

引腳控制層

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

rk806-regulator.c

穩(wěn)壓器驅(qū)動層

電壓調(diào)節(jié)、DVS動態(tài)調(diào)壓、異常保護

核心設(shè)計思路:以regmap為數(shù)據(jù)交互核心(屏蔽總線差異),core層統(tǒng)一調(diào)度,子模塊(regulator/pinctrl)專注細分功能,形成總線核心子設(shè)備的分層架構(gòu)。

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

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

2.1初始化數(shù)據(jù)流程

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

2.SPI通信層初始化:調(diào)用rk806_spi_probe,分配rk806結(jié)構(gòu)體,綁定SPI設(shè)備的devirq;

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

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

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

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

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

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

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

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

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

2.2初始化流程圖(Mermaid

wKgZO2kajEaAfMPUAAFRHw9mCHw763.jpg

三、核心能力:電壓調(diào)節(jié)與DVS動態(tài)調(diào)壓流程

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

3.1常規(guī)電壓調(diào)節(jié)流程(固定電壓設(shè)置)

當(dāng)應(yīng)用層需要設(shè)置某路穩(wěn)壓器電壓(如DCDC_REG1輸出1.2V)時,流程如下:

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

2.regulator框架調(diào)度Linux regulator框架調(diào)用rk806_set_voltageregulator.c);

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

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

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

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

6.同步電壓狀態(tài):調(diào)用rk806_regulator_sync_voltage,確認電壓已更新并打印調(diào)試信息。

3.2 DVS動態(tài)調(diào)壓流程(負載自適應(yīng))

DVS用于按需調(diào)壓”——比如CPU負載低時降為0.9V,負載高時升為1.2V,實現(xiàn)功耗優(yōu)化。RK806支持GPIO觸發(fā)軟件觸發(fā)兩種DVS模式:

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

1.DVS引腳配置:通過設(shè)備樹配置dvs-pin1_ctrl,將PWRCTRL1引腳復(fù)用為DVS觸發(fā)引腳;

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

3.切換VSEL寄存器:調(diào)用rk806_do_gpio_dvs,讀取GPIO電平——

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

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

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

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

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

2.軟件觸發(fā):應(yīng)用層觸發(fā)DVS(如CPU負載升高),調(diào)用rk806_do_soft_dvs

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

4.切換電壓regmap根據(jù)預(yù)設(shè)的DVS_CTRL_SEL,加載對應(yīng)電壓值。

3.3電壓調(diào)節(jié)流程圖

wKgZO2kajEaAXtKoAAB_F6uoXO0558.png

四、休眠喚醒與關(guān)機保護:電源狀態(tài)管理

RK806需處理設(shè)備的休眠-喚醒狀態(tài)切換,以及低電壓/過溫的異常保護,確保系統(tǒng)穩(wěn)定。

4.1休眠-喚醒流程

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

1.休眠觸發(fā):系統(tǒng)執(zhí)行suspend(如echo mem > /sys/power/state);

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

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

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

喚醒流程(系統(tǒng)恢復(fù)工作)

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

2.核心中斷恢復(fù):調(diào)用rk806_core_resume,啟用主IRQ,禁用IRQ喚醒;

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

4.引腳恢復(fù)pinctrl_select_state將引腳切換回default狀態(tài),外設(shè)恢復(fù)供電。

4.2關(guān)機與異常保護流程

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

1.正常關(guān)機流程

1.關(guān)機觸發(fā):系統(tǒng)執(zhí)行shutdown,調(diào)用rk806_regulator_shutdown;

2.加載關(guān)機序列:調(diào)用rk806_shutdown_requence_config,從設(shè)備樹讀取shutdown-sequence(如先關(guān)DCDC10,再關(guān)DCDC9...);

3.引腳狀態(tài)切換pinctrl_select_state切換到power_off狀態(tài),觸發(fā)電源關(guān)閉信號;

4.按序列關(guān)電:按預(yù)設(shè)序列關(guān)閉所有DCDC/LDO,完成關(guān)機。

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

1.低電壓檢測SYS_STS寄存器(0x5D)的VB_LO_STS位變?yōu)?/span>1(檢測到輸入電壓低于閾值);

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

?VB_LO_ACT_SD0x00):直接觸發(fā)關(guān)機;

?VB_LO_ACT_INT0x01):先發(fā)送中斷通知系統(tǒng);

1.強制關(guān)機:調(diào)用rk806_vb_force_shutdown_init,加載vb-shutdown-sequence,按序列關(guān)閉電源;

2.硬件復(fù)位:若電壓持續(xù)過低,觸發(fā)DEV_RST0x72寄存器),硬件復(fù)位系統(tǒng)。

4.3休眠喚醒與關(guān)機流程圖

wKgZO2kajEaAGNbnAAFftuXTHRA257.pngwKgZO2kajEaAaZ9DAAAmGgcs1jQ318.pngwKgZO2kajEaAFLocAAB7jfaIwsw197.png

五、RK806電源處理的核心設(shè)計亮點

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

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

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

4.便捷的調(diào)試接口sysfs節(jié)點支持寄存器讀寫,無需修改代碼即可調(diào)試電源參數(shù);

5.設(shè)備樹驅(qū)動分離:電壓閾值、關(guān)機序列等參數(shù)通過設(shè)備樹配置,無需重新編譯驅(qū)動,適配不同硬件。

總結(jié)

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

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

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


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

    關(guān)注

    24

    文章

    4927

    瀏覽量

    99962
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    9

    文章

    3211

    瀏覽量

    76377
  • PMIC
    +關(guān)注

    關(guān)注

    15

    文章

    481

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    開關(guān)電源pcb設(shè)計實例 分析RK806電源方案的PCB設(shè)計

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

    如何通過動態(tài)電壓調(diào)整(DVS)來實現(xiàn)精密電壓調(diào)節(jié)?

    本文探討如何通過動態(tài)電壓調(diào)整(DVS)來實現(xiàn)精密電壓調(diào)節(jié)。DVS是一種根據(jù)預(yù)期的負載瞬變將輸出電壓稍微調(diào)高或調(diào)低的過程。本文介紹如何使用特定IC實現(xiàn)可靠的電壓監(jiān)控。
    的頭像 發(fā)表于 11-08 13:04 ?3099次閱讀
    如何通過<b class='flag-5'>動態(tài)</b>電壓調(diào)整(<b class='flag-5'>DVS</b>)來實現(xiàn)精密電壓調(diào)節(jié)?

    RK3588 EVB開發(fā)板原理圖講解【一】

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

    RK3588 EVB開發(fā)板原理圖講解【三】

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

    RK3588 EVB開發(fā)板原理圖講解【七】

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

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

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

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

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

    一文解析RK3288 PMU配置RK808

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

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

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

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

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

    RK806電源方案的PCB設(shè)計注意事項

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

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

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

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

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

    RK806中斷處理流程深度解析:架構(gòu)到調(diào)試實戰(zhàn)

    RK806 作為瑞芯微主流 PMIC電源管理芯片),其中斷機制是實現(xiàn)“電源鍵響應(yīng)、電壓異常保護、休眠喚醒、 watchdog 超時處理
    的頭像 發(fā)表于 02-05 13:46 ?1018次閱讀
    <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>架構(gòu)到調(diào)試實戰(zhàn)

    RK?平臺?SPI?開發(fā)完全指南(驅(qū)動?+?配置?+?測試?+?優(yōu)化)

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