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

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

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

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

RK平臺I2C開發(fā):從硬件原理到實(shí)戰(zhàn)排查

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

掃碼添加小助手

加入工程師交流群

嵌入式開發(fā)中,I2C總線是連接外設(shè)的橋梁”——小到傳感器、EEPROM,大到LCD驅(qū)動器、音頻芯片,都離不開它的控制。而瑞芯微Rockchip)系列芯片作為主流嵌入式方案,其I2C控制器的開發(fā)是很多工程師的必備技能。

今天這篇文章,我們將從I2C硬件原理和數(shù)據(jù)幀講起,再結(jié)合官方《ROCKCHIP I2C開發(fā)指南》,梳理RK平臺I2C開發(fā)的全流程、關(guān)鍵配置和常見問題,幫你快速上手!

一、先搞懂基礎(chǔ):I2C硬件原理與數(shù)據(jù)幀

在動手開發(fā)前,必須先掌握I2C底層邏輯”——硬件結(jié)構(gòu)和數(shù)據(jù)傳輸規(guī)則,否則后續(xù)排查問題會寸步難行。

1. I2C硬件原理:兩條線搞定通信

I2C總線最核心的特點(diǎn)是簡單:僅需SDA(串行數(shù)據(jù)線)SCL(串行時鐘線)兩條線,就能實(shí)現(xiàn)多主多從的通信(RK平臺僅支持主模式)。

關(guān)鍵硬件細(xì)節(jié):

?總線拓?fù)?/span>:所有設(shè)備的SDA連在一起,SCL連在一起;每個設(shè)備有唯一地址,主設(shè)備(如RK芯片)通過地址識別從設(shè)備(如傳感器)。

?上拉電阻SDASCL必須外接上拉電阻(通常4.7kΩ~10kΩ),因?yàn)?/span>I2C設(shè)備的引腳是開漏輸出——只能拉低電平,無法主動輸出高電平,需通過上拉電阻將總線拉到高電平(Vcc通常為3.3V)。

??RK文檔中提到:改變上拉電阻大小可調(diào)節(jié)I2C總線的上拉強(qiáng)度,本質(zhì)是通過電阻值影響總線的上升沿時間(后面會講上升沿的重要性)。

?主從關(guān)系:主設(shè)備負(fù)責(zé)生成SCL時鐘、發(fā)起通信(發(fā)送起始/停止信號);從設(shè)備被動響應(yīng),根據(jù)主設(shè)備發(fā)送的地址匹配自身。

2. I2C數(shù)據(jù)幀:通信的語言規(guī)則

I2C數(shù)據(jù)以為單位傳輸,每幀包含固定的結(jié)構(gòu),主從設(shè)備必須遵循這套規(guī)則才能正常通信。完整幀結(jié)構(gòu)如下(以常用的7位尋址為例):

[起始信號][地址字節(jié)][ACK/NACK][數(shù)據(jù)字節(jié)1][ACK/NACK]→ ... →[數(shù)據(jù)字節(jié)n][ACK/NACK][停止信號]

各部分詳解:

?起始信號(S:主設(shè)備拉低SDA(此時SCL為高電平),表示通信開始。

?地址字節(jié)8位,前7位是從設(shè)備地址,第8位是讀寫位”——0表示從寫數(shù)據(jù),1表示從讀數(shù)據(jù)。

若用10位尋址,地址字節(jié)分兩部分:第一字節(jié)是固定前綴11110+ 10位地址的高2位,第二字節(jié)是10位地址的低8位。

?ACK/NACK:每傳輸1字節(jié)后,接收方需反饋1位:

?ACK(應(yīng)答):接收方拉低SDA(表示已接收);

?NACK(非應(yīng)答):接收方不拉低SDA(表示未接收或結(jié)束傳輸)。

?數(shù)據(jù)字節(jié)8位,可連續(xù)傳輸(RK控制器一次最多傳32字節(jié))。

?停止信號(P:主設(shè)備拉高SDA(此時SCL為高電平),表示通信結(jié)束。

wKgZO2kajEmAc5cLAACQbb2NyWg593.png

二、RK平臺I2C開發(fā)核心:控制器、驅(qū)動與流程

掌握基礎(chǔ)后,我們聚焦RK平臺的具體開發(fā)——先了解控制器功能,再區(qū)分驅(qū)動差異,最后梳理開發(fā)流程。

1. RK I2C控制器:支持哪些能力?

RK系列芯片的I2C控制器兼容性強(qiáng)、配置靈活,核心功能如下(文檔V2.2.0版本):

?兼容I2C協(xié)議SMBus協(xié)議(常見外設(shè)均支持);

?僅支持主模式RK芯片作為主設(shè)備,控制外部從設(shè)備);

?時鐘頻率:軟件可編程,最高支持1000kbpsFast-mode Plus,部分芯片默認(rèn)支持400kbpsFast-mode);

?尋址模式:支持7位地址10位地址(覆蓋絕大多數(shù)外設(shè));

?數(shù)據(jù)傳輸:一次中斷/輪詢最多傳輸32字節(jié),效率較高。

2.關(guān)鍵注意:RK平臺的兩種I2C驅(qū)動

RK平臺的I2C驅(qū)動因內(nèi)核版本不同分為兩類,配置方式差異較大,必須區(qū)分清楚:

驅(qū)動文件

適用內(nèi)核版本

配置方式

最高頻率

i2c-rk3x.c

Linux 4.19+(如RK356X、RV1126

設(shè)備樹(DTS)配置

1000kbps

i2c-rockchip.c

Linux 3.10內(nèi)核

代碼中配置i2c_msg結(jié)構(gòu)體

1000kbps

已支持所有RK芯片+所有內(nèi)核版本,實(shí)際開發(fā)時需先確認(rèn)所用內(nèi)核版本,再選擇對應(yīng)驅(qū)動。

3. RK I2C開發(fā)流程:三種傳輸模式

RK I2C控制器的核心是傳輸模式,不同場景對應(yīng)不同模式,本質(zhì)是通過配置寄存器(如I2C_CON、I2C_CLKDIV)實(shí)現(xiàn)。

模式1:只發(fā)送模式(Transmit only,I2C_CON[1:0] = 2'b00

適用于主設(shè)備向從設(shè)備寫數(shù)據(jù)(如配置傳感器參數(shù)),步驟如下:

1.配置I2C_CLKDIV:設(shè)置SCL時鐘頻率(如400kbps);

2.配置I2C_CON:選擇只發(fā)送模式,并發(fā)送起始信號(S;

3.I2C_TXDATA0~TXDATA7寫入要發(fā)送的數(shù)據(jù);

4.配置I2C_MTXCNT:設(shè)置發(fā)送數(shù)據(jù)的字節(jié)數(shù);

5.等待發(fā)送完成中斷I2C_IPD[2]);

6.若有更多數(shù)據(jù),重復(fù)步驟3~5;若無,配置I2C_CON發(fā)送停止信號(P,結(jié)束傳輸。

模式2:混合模式(Mix modeI2C_CON[1:0] = 2'b01/11

適用于先寫后讀(如先發(fā)送寄存器地址,再讀取該寄存器的值),步驟如下:

1.配置I2C_CLKDIV:設(shè)置SCL頻率;

2.配置I2C_CON:選擇混合模式,發(fā)送起始信號;

3.配置I2C_MRXADDRI2C_MRXRADDR:設(shè)置從設(shè)備地址和讀取地址;

4.配置I2C_MRXCNT:設(shè)置要讀取的數(shù)據(jù)字節(jié)數(shù);

5.等待接收完成中斷I2C_IPD[3]);

6.若有更多數(shù)據(jù),重復(fù)步驟3~5;若無,發(fā)送停止信號,結(jié)束傳輸。

模式3:只接收模式(Receive only,I2C_CON[1:0] = 2'b10

適用于主設(shè)備從從設(shè)備讀數(shù)據(jù)(如讀取傳感器采集的數(shù)值),步驟如下:

1.配置I2C_CLKDIV:設(shè)置SCL頻率;

2.配置I2C_CON:選擇只接收模式,發(fā)送起始信號;

3.配置I2C_MRXCNT:設(shè)置接收數(shù)據(jù)的字節(jié)數(shù);

4.等待接收完成中斷I2C_IPD[3]);

5.若有更多數(shù)據(jù),重復(fù)步驟3~4;若無,發(fā)送停止信號,結(jié)束傳輸。

4.驅(qū)動參數(shù)配置:關(guān)鍵是時鐘頻率

I2C通信能否穩(wěn)定,核心是時鐘頻率配置”——需符合I2C協(xié)議對上升沿時間(Tr下降沿時間(Tf的要求,否則會出現(xiàn)通信失敗。

第一步:明確協(xié)議時序要求

I2C協(xié)議對不同模式的時序有嚴(yán)格規(guī)定(文檔中表格整理):

參數(shù)

標(biāo)準(zhǔn)模式(100kbps

快速模式(400kbps

高速模式(1000kbps

單位

SCL頻率

≤100

≤400

≤1000

kHz

上升沿Tr

≤1000

≤300

≤120

ns

下降沿Tf

≤300

≤300

≤300

ns


注:TrTf需用示波器測量,若超過最大值,需調(diào)整上拉電阻(如減小電阻值縮短上升沿)。

第二步:兩種驅(qū)動的配置示例

?i2c-rk3x.cDTS配置)

配置在設(shè)備樹中,關(guān)鍵參數(shù)是clock-frequency(時鐘頻率)、i2c-scl-rising-time-nsSCL上升沿時間)。

示例(配置I2C1400kbps):

&i2c1 {  status ="okay";  i2c-scl-rising-time-ns = <265>; //示波器實(shí)測上升沿265ns  i2c-scl-falling-time-ns = <11>; //下降沿通常不變,可默認(rèn)  clock-frequency = <400000>;   //400kbps(Fast-mode)   // 掛載從設(shè)備(如 ES8316 音頻芯片)  es8316: es8316@10 {    compatible ="everest,es8316";    reg = <0x10>; //從設(shè)備地址0x10    // 其他外設(shè)參數(shù)...  };};

?i2c-rockchip.c(代碼配置)

在代碼中配置i2c_msg結(jié)構(gòu)體的scl_rate成員,示例(配置200kbps):

structi2c_msg xfer_msg;xfer_msg[0].addr = client->addr; // 從設(shè)備地址xfer_msg[0].len = num;      // 數(shù)據(jù)長度xfer_msg[0].flags = client->flags;// 讀寫標(biāo)志(0=寫,1=讀)xfer_msg[0].buf = buf;      // 數(shù)據(jù)緩存xfer_msg[0].scl_rate =200*1000; //200kbps 時鐘頻率

5. RK I2C如何使用?內(nèi)核態(tài)/用戶態(tài)/工具

1)內(nèi)核態(tài)使用(推薦,適合產(chǎn)品化)

RK I2C內(nèi)核態(tài)開發(fā)遵循Linux標(biāo)準(zhǔn)I2C接口,參考內(nèi)核文檔Documentation/i2c/writing-clients,核心是:

?注冊I2C客戶端驅(qū)動(i2c_driver);

?使用i2c_master_send()(寫數(shù)據(jù))和i2c_master_recv()(讀數(shù)據(jù))接口。

2)用戶態(tài)使用(適合調(diào)試)

通過/dev/i2c-%d設(shè)備節(jié)點(diǎn)直接訪問,步驟:

1.打開設(shè)備節(jié)點(diǎn):int fd = open("/dev/i2c-1", O_RDWR);

2.設(shè)置從設(shè)備地址:ioctl(fd, I2C_SLAVE, 0x10);0x10為從設(shè)備地址);

3.讀寫數(shù)據(jù):用read()/write()函數(shù)直接讀寫。

??參考內(nèi)核文檔Documentation/i2c/dev-interface。

3I2C工具(快速調(diào)試必備)

I2C-tools是開源工具集,需交叉編譯后使用,支持命令行調(diào)試:

?下載地址

https://www.kernel.org/pub/software/utils/i2c-tools/

git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git

?核心工具

?i2cdetect:掃描I2C總線及掛載的設(shè)備(如i2cdetect -y 1掃描總線1);

?i2cdump:讀取從設(shè)備所有寄存器的值(如i2cdump -f -y 1 0x10);

?i2cget:讀取單個寄存器(如i2cget -y 1 0x10 0x01讀地址0x100x01寄存器);

?i2cset:寫入單個寄存器(如i2cset -y 1 0x10 0x01 0x550x550x01寄存器)。

4GPIO模擬I2C(不推薦)

RK內(nèi)核支持用GPIO模擬I2C,但效率低,僅適合臨時調(diào)試。配置示例(DTS):

i2c@4{  compatible ="i2c-gpio";  gpios = <&gpio5?9GPIO_ACTIVE_HIGH>,// SDA 引腳      <&gpio5?8GPIO_ACTIVE_HIGH>;// SCL 引腳  i2c-gpio,delay-us = <2>;// 約 100kbps 頻率 #address-cells =<1>; #size-cells =<0>;  status ="okay";  // 掛載從設(shè)備(如 GT9xx 觸摸屏)  gt9xx: gt9xx@14{    compatible ="goodix,gt9xx";    reg = <0x14>;   // 其他外設(shè)參數(shù)...  };};

三、RK I2C常見問題:從錯誤碼到波形Debug

開發(fā)中難免遇到問題,文檔中整理了兩類驅(qū)動的常見錯誤,我們按錯誤類型分類梳理,方便排查。

1. NACK錯誤:從設(shè)備無應(yīng)答

現(xiàn)象:

?i2c-rk3x.c:調(diào)用傳輸接口返回-6-ENXIO;

?i2c-rockchip.c:調(diào)用傳輸接口返回-11-EAGAIN。

原因與解決:

1.I2C地址錯誤:確認(rèn)從設(shè)備地址(如文檔中ES83160x10,GT9xx0x14),注意地址是否需要左移(7位地址通常需左移1位,加讀寫位);

2.從設(shè)備未正常工作:檢查從設(shè)備供電(如是否上電)、上電時序是否正確;

3.時序不匹配:從設(shè)備需要停止信號(P),但主設(shè)備發(fā)送了重復(fù)起始信號(Sr),需修改傳輸流程;

4.總線干擾:用示波器測量,若實(shí)際是ACK波形卻報(bào)NACK,需排查外部干擾(如布線是否靠近強(qiáng)電)。

2.超時錯誤:日志提示“timeout”

根據(jù)日志中ipd的值,對應(yīng)不同問題:

1)日志:timeout, ipd: 0x00, state: 1

?問題:I2C控制器異常,無法發(fā)送起始信號;

?原因:

a.SCL/SDA引腳復(fù)用錯誤(IOMUX配置錯);

b.上拉電壓不對(如3.3V上拉變成1.8V);

c.引腳被外設(shè)拉低(電壓異常);

d.I2C時鐘未開啟或時鐘源過小;

e.同時配置了CON_STARTCON_STOP位(寄存器配置沖突)。

2)日志:timeout, ipd: 0x10, state: 1

?問題:控制器正常,但CPU無法響應(yīng)I2C中斷;

?原因:

a.CPU0被阻塞(RK I2C中斷默認(rèn)在CPU0,用cat /proc/interrupts查看);

b.I2C中斷位被關(guān)閉(檢查中斷使能寄存器)。

3)日志:timeout, ipd: 0x80, state: 1scl was hold by slave

?問題:SCL被從設(shè)備拉低(總線卡死);

?排查方法:

a.排除法:若外設(shè)少,逐個斷開外設(shè),復(fù)現(xiàn)問題定位元兇;

b.硬件檢測:在SCL總線串入電阻(如220Ω,約上拉電阻的1/20),測量電阻兩端壓差——電壓更低的一端對應(yīng)拉低SDA/SCL的設(shè)備;

c.波形驗(yàn)證:用示波器抓取波形,對比不同從設(shè)備的低電平,與故障時的低電平匹配的即為問題設(shè)備。

3.終極Debug:抓取I2C波形

若以上方法無法解決,最有效的方式是抓取故障時的I2C波形

1.在代碼中卡住CPU”:在出錯位置加while(1),避免發(fā)起新的I2C任務(wù);

2.用示波器測量SDASCL引腳:觀察是否有起始信號、地址字節(jié)、ACK信號;

3.對比協(xié)議要求:若波形缺失(如無起始信號),檢查控制器配置;若有NACK,檢查從設(shè)備地址或狀態(tài)。

四、RK I2C開發(fā)知識腦圖

最后,用一張腦圖總結(jié)全文核心,方便大家收藏回顧:

wKgZO2kajEmAG9VUAAUllRoO5_s011.png

寫在最后

RK平臺的I2C開發(fā),核心是理解協(xié)議+區(qū)分驅(qū)動+重視時序”——只要掌握了硬件原理和數(shù)據(jù)幀規(guī)則,再結(jié)合官方文檔配置驅(qū)動、排查問題,就能快速搞定絕大多數(shù)場景。

如果大家在開發(fā)中遇到具體問題,歡迎在評論區(qū)交流;也可以收藏本文,遇到問題時對照腦圖和排查步驟,效率會更高!

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

    關(guān)注

    8

    文章

    417

    瀏覽量

    63351
  • 瑞芯微
    +關(guān)注

    關(guān)注

    27

    文章

    790

    瀏覽量

    54255
  • 音頻芯片
    +關(guān)注

    關(guān)注

    3

    文章

    162

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板實(shí)現(xiàn)I2C功能復(fù)用

    等。由于此項(xiàng)配置的具體實(shí)現(xiàn)因SoC平臺而異,本文特以【RK3588】ELF 2開發(fā)板上的I2C6引腳為例,系統(tǒng)說明
    的頭像 發(fā)表于 12-04 10:10 ?7787次閱讀
    ElfBoard技術(shù)貼|如何在【<b class='flag-5'>RK</b>3588】ELF <b class='flag-5'>2</b><b class='flag-5'>開發(fā)</b>板實(shí)現(xiàn)<b class='flag-5'>I2C</b>功能復(fù)用

    STM32硬件I2C例程

    STM32硬件I2C例程,感興趣的小伙伴們可以看看。
    發(fā)表于 07-26 10:26 ?94次下載

    Firefly-RK3399--I2C開發(fā)板介紹

    Firefly-RK3399開發(fā)板上有 9 個片上 I2C 控制器,各個 I2C 的使用情況
    的頭像 發(fā)表于 11-22 10:43 ?3435次閱讀
    Firefly-<b class='flag-5'>RK3399--I2C</b><b class='flag-5'>開發(fā)</b>板介紹

    Firefly-RK3288--I2C主板的使用介紹

    Firefly-RK3288 開發(fā)板上有 6 個片上 I2C 控制器。本文主要描述如何在該開發(fā)板上配置 I2C。
    的頭像 發(fā)表于 11-26 17:00 ?3486次閱讀
    Firefly-<b class='flag-5'>RK3288--I2C</b>主板的使用介紹

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 開發(fā)板上有 4 個片上 I2C 控制器。本文主要描述如何在該開發(fā)板上配置 I2C。
    的頭像 發(fā)表于 11-29 08:47 ?2167次閱讀
    Firefly-<b class='flag-5'>RK</b>3128主板<b class='flag-5'>I2C</b>控制器

    fireflyFace-RK3399主板I2C控制器介紹

    Face-RK3399 開發(fā)板上有 9 個片上 I2C 控制器,
    的頭像 發(fā)表于 12-04 09:17 ?3722次閱讀
    fireflyFace-<b class='flag-5'>RK</b>3399主板<b class='flag-5'>I2C</b>控制器介紹

    STM32的硬件I2C有BUG嗎?

    坊間一直流傳著一個傳說~STM32的硬件I2C設(shè)計(jì)有BUG,最好不要用,用軟件I2C比較靠譜。長久以來,為了不必要的麻煩,我也一直沒有用過硬件I2C
    發(fā)表于 12-04 14:51 ?26次下載
    STM32的<b class='flag-5'>硬件</b><b class='flag-5'>I2C</b>有BUG嗎?

    嵌入式內(nèi)核及驅(qū)動開發(fā)-09IIC子系統(tǒng)框架使用(I2C協(xié)議和時序,I2C驅(qū)動框架,I2C設(shè)備驅(qū)動開發(fā),MPU6050硬件連接

    文章目錄I2c協(xié)議和時序I2c介紹I2c硬件連接I2c總線的信號I2c總線寫時序
    發(fā)表于 12-06 14:06 ?17次下載
    嵌入式內(nèi)核及驅(qū)動<b class='flag-5'>開發(fā)</b>-09IIC子系統(tǒng)框架使用(<b class='flag-5'>I2C</b>協(xié)議和時序,<b class='flag-5'>I2C</b>驅(qū)動框架,<b class='flag-5'>I2C</b><b class='flag-5'>從</b>設(shè)備驅(qū)動<b class='flag-5'>開發(fā)</b>,MPU6050<b class='flag-5'>硬件</b>連接

    硬件I2C與模擬I2C

    硬件I2C對應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動電路,其所使用的I2C管腳也是專用的,因而效率要遠(yuǎn)高于軟件模擬的
    發(fā)表于 12-28 19:14 ?82次下載
    <b class='flag-5'>硬件</b><b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    再談I2C,硬件問題匯總及死鎖解決辦法

    本文主要針對 i2c 設(shè)備,講解如何解決 i2c 設(shè)備主機(jī)與機(jī)直接無法正常數(shù)據(jù)交互的問題,側(cè)重點(diǎn)是針對硬件設(shè)計(jì)不太合理、i2c 設(shè)備設(shè)計(jì)不
    發(fā)表于 02-08 16:01 ?4次下載
    再談<b class='flag-5'>I2C</b>,<b class='flag-5'>硬件</b>問題匯總及死鎖解決辦法

    I2C debug出現(xiàn)問題怎么解決

    RK 平臺 I2C debug 1、I2C 通信失敗,出現(xiàn) log: “timeout, ipd: 0x00, state: 1” 請檢查硬件
    的頭像 發(fā)表于 07-22 15:00 ?6244次閱讀

    OpenHarmony:如何使用HDF平臺驅(qū)動控制I2C

    1、程序介紹本程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的平臺驅(qū)動案例:I2C目前已在凌蒙派-RK3568開發(fā)板跑通。詳細(xì)資料請參考官網(wǎng):https://gitee.com
    的頭像 發(fā)表于 09-13 08:27 ?2238次閱讀
    OpenHarmony:如何使用HDF<b class='flag-5'>平臺</b>驅(qū)動控制<b class='flag-5'>I2C</b>

    GD32 MCU硬件I2C不可靠不如軟件I2C?來看看紅楓派開發(fā)版的硬件I2C驅(qū)動如何做到穩(wěn)得一批

    在一個評論中,看到網(wǎng)友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩(wěn)得一批。
    的頭像 發(fā)表于 02-23 09:37 ?3985次閱讀
    GD32 MCU<b class='flag-5'>硬件</b><b class='flag-5'>I2C</b>不可靠不如軟件<b class='flag-5'>I2C</b>?來看看紅楓派<b class='flag-5'>開發(fā)</b>版的<b class='flag-5'>硬件</b><b class='flag-5'>I2C</b>驅(qū)動如何做到穩(wěn)得一批

    RK平臺Linux IOMMU開發(fā)理到實(shí)戰(zhàn)

    顯示(VOP)、編解碼(VPU/HEVC)等場景。今天就從原理、驅(qū)動、實(shí)戰(zhàn)、問題排查、Linux 內(nèi)存管理支撐五個維度,帶大家快速上手 RK 平臺 IOMMU
    的頭像 發(fā)表于 02-04 16:24 ?1409次閱讀
    <b class='flag-5'>RK</b><b class='flag-5'>平臺</b>Linux IOMMU<b class='flag-5'>開發(fā)</b>:<b class='flag-5'>從</b>原<b class='flag-5'>理到</b><b class='flag-5'>實(shí)戰(zhàn)</b>

    RK3576平臺PCA9548 I2C開關(guān)設(shè)備樹配置與生效全解析

    嵌入式開發(fā)中,單路I2C總線往往無法滿足多外設(shè)的掛載需求,NXP的PCA9548(8通道I2C Switch)是解決該問題的常用方案,尤其在RK3576等嵌入式
    的頭像 發(fā)表于 02-28 11:18 ?1469次閱讀
    <b class='flag-5'>RK</b>3576<b class='flag-5'>平臺</b>PCA9548 <b class='flag-5'>I2C</b>開關(guān)設(shè)備樹配置與生效全解析