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

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

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

迅為RK3568驅(qū)動(dòng)指南|如何在Linux中使用模擬SPI

北京迅為電子 ? 2024-08-01 13:37 ? 次閱讀

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.0 外圍接口。RK3568內(nèi)置獨(dú)立NPU,可用于輕量級(jí)人工智能應(yīng)用。RK3568 支持安卓 11 和 linux 系統(tǒng),主要面向物聯(lián)網(wǎng)網(wǎng)關(guān)、NVR 存儲(chǔ)、工控平板、工業(yè)檢測(cè)、工控盒、卡拉 OK、云終端、車載中控等行業(yè)。

第194章 如何在Linux中使用模擬SPI
在講解SPI基礎(chǔ)的時(shí)候提到過SPI可以分為硬件SPI和軟件SPI,在前面的章節(jié)中使用的都是硬件SPI,當(dāng)硬件SPI不夠用時(shí),可以使用GPIO來(lái)模擬SPI,在本節(jié)課將對(duì)軟件SPI進(jìn)行講解。

I2C協(xié)議相比,SPI通信協(xié)議比較簡(jiǎn)單,沒有起始信號(hào)、應(yīng)答信號(hào)和終止信號(hào),所以不會(huì)從零編寫模擬SPI的驅(qū)動(dòng)代碼,直接使用Linux源碼中已經(jīng)寫好的驅(qū)動(dòng)程序即可。

194.1 內(nèi)核和設(shè)備樹配置
首先將模擬SPI驅(qū)動(dòng)編譯進(jìn)內(nèi)核,在make menuconfig圖形化配置界面中選中如下選項(xiàng)

Device Drivers --->

[*]SPI support -->

<*> GPIO-based bitbanging SPI Master //選中

wKgZomarHsaAQyPqAAQxtB2QSEw865.png

軟件SPI選定的引腳為開發(fā)板背面的4個(gè)GPIO,具體引腳功能圖如下所示:

wKgaomarHs-ACfOKAAE0CSCwdL0297.png

設(shè)備樹修改步驟如下所示:

首先對(duì)rk3568-evb1-ddr4-v10.dtsi設(shè)備樹進(jìn)行修改,在根節(jié)點(diǎn)添加SPI5節(jié)點(diǎn),具體內(nèi)容如下所示:

spi5: spi@gpiol {
compatible = "spi-gpio";
#address-cells = <1>;
gpio-sck = <&gpio0 RK_PB0_GPIO_ACTIVE_LOW>;
gpio-miso = <&gpio1 RK_PB0_GPIO_ACTIVE_LOW>;
gpio-mosi = <&gpio1 RK_PB1_GPIO_ACTIVE_LOW>;
cs-gpios = <&gpio1 RK_PB2_GPIO_ACTIVE_LOW>;
num-chipselects = <1>;
pinctrl-names = "default";
pinctrl-0 = <&spi5_gpios>;
status = "disabled";
};

wKgZomarHtiAFA1EAAMS6Nqgf88656.png


然后對(duì)pinctrl節(jié)點(diǎn)進(jìn)行追加,追加內(nèi)容如下所示:

wKgaomarHuaAdKspAAJc5E6Xx48565.png

spi5_gpios: gpios {
rockchip,pins = <0 RK_PB0 0 &pcfg_pull_none>,
<1 RK_PB0 0 &pcfg_pull_none>,
<1 RK_PB1 0 &pcfg_pull_none>,
<1 RK_PB2 0 &pcfg_pull_none>,
>;
};


最后修改之前編寫的mcp2515節(jié)點(diǎn),修改之后的內(nèi)容如下所示:

&spi5 {
status = "okay";
mcp2515:mcp2515@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
};

wKgaomarHvOAbOmnAAJ4yy_23g4226.png


修改完成之后保存,然后重新編譯內(nèi)核鏡像,編譯完成的內(nèi)核鏡像存放路徑為“iTOP-3568開發(fā)板\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)程序\120_soft_spi\01_修改好的內(nèi)核”。

194.2 運(yùn)行測(cè)試
首先要確保燒寫的是上一小節(jié)編譯出來(lái)的內(nèi)核,燒寫完成開發(fā)板啟動(dòng)之后,使用“l(fā)s /dev/spidev5.0”查看是否存在spidev5.0節(jié)點(diǎn),如下圖所示:

wKgaomarHvyAbdGpAADOpaIO-qs289.png

修改完成之后保存,然后重新編譯內(nèi)核鏡像,編譯完成的內(nèi)核鏡像存放路徑為“iTOP-3568開發(fā)板\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)程序\120_soft_spi\01_修改好的內(nèi)核”。

194.2 運(yùn)行測(cè)試
首先要確保燒寫的是上一小節(jié)編譯出來(lái)的內(nèi)核,燒寫完成開發(fā)板啟動(dòng)之后,使用“l(fā)s /dev/spidev5.0”查看是否存在spidev5.0節(jié)點(diǎn),如下圖所示:

wKgaomarHwCASgmcAAKVgN5Osgk207.png

可以看到TX和RX收發(fā)的數(shù)據(jù)是一樣,證明SPI回環(huán)成功,至此模擬SPI測(cè)試就完成了。

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

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209476
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1706

    瀏覽量

    91578
  • RK3568
    +關(guān)注

    關(guān)注

    4

    文章

    514

    瀏覽量

    5048
  • 迅為電子
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    29
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3568開發(fā)Android12系統(tǒng)燒寫固件

    RK3568開發(fā)Android12系統(tǒng)燒寫 Android 固件
    的頭像 發(fā)表于 08-01 16:22 ?2272次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)Android12系統(tǒng)燒寫固件

    RK3568核心板在智慧門禁產(chǎn)品中的解決方案

    RK3568核心板在智慧門禁產(chǎn)品中的解決方案
    的頭像 發(fā)表于 07-14 15:50 ?787次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>核心板在智慧門禁產(chǎn)品中的解決方案

    混合部署 | 在RK3568上同時(shí)部署RT-Thread和Linux系統(tǒng)

    (非對(duì)稱多處理)是一種更靈活的架構(gòu),允許不同的核心運(yùn)行不同的操作系統(tǒng),實(shí)現(xiàn)更高效的資源利用和任務(wù)分配。通過 AMP,系統(tǒng)可以為不同的任務(wù)選擇最合適的操作系統(tǒng)和處理方式。 當(dāng)前iTOP-RK3568開發(fā)板
    發(fā)表于 09-18 10:54

    RK3568核心板

    RK3568核心板
    的頭像 發(fā)表于 03-03 15:55 ?1720次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>核心板

    RK3568開發(fā)板資料20個(gè)+手冊(cè)+配套視頻教程

    RK3568開發(fā)板資料20個(gè)+手冊(cè)+配套視頻教程
    的頭像 發(fā)表于 02-14 14:37 ?7241次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板資料20個(gè)+手冊(cè)+配套視頻教程

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻
    的頭像 發(fā)表于 05-19 16:30 ?980次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>基于<b class='flag-5'>RK3568</b>開發(fā)板的嵌入式學(xué)習(xí)之<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>視頻

    RK3568開發(fā)板系統(tǒng)編程手冊(cè)全新升級(jí)

    RK3568開發(fā)板系統(tǒng)編程手冊(cè)全新升級(jí)
    的頭像 發(fā)表于 06-25 15:50 ?1133次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板系統(tǒng)編程手冊(cè)全新升級(jí)

    RK3568開發(fā)板GPIO之外接模塊

    RK3568開發(fā)板GPIO之外接模塊
    的頭像 發(fā)表于 08-24 17:41 ?1405次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板GPIO之外接模塊

    RK3568開發(fā)板可實(shí)現(xiàn)多屏異顯控方案

    RK3568開發(fā)板可實(shí)現(xiàn)多屏異顯控方案
    的頭像 發(fā)表于 07-15 17:30 ?1843次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板可實(shí)現(xiàn)多屏異顯控方案

    RK3568開發(fā)板外接模塊之HX711 稱重模塊

    RK3568開發(fā)板外接模塊之HX711 稱重模塊
    的頭像 發(fā)表于 08-30 15:24 ?1578次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板外接模塊之HX711 稱重模塊

    itop-rk3568指導(dǎo)手冊(cè)v3

    itop-rk3568指導(dǎo)手冊(cè),專為RK3568編寫!拒絕網(wǎng)絡(luò)拼湊!持續(xù)更新中.
    發(fā)表于 09-06 14:09 ?29次下載

    RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)

    RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?879次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板<b class='flag-5'>驅(qū)動(dòng)</b>開發(fā)<b class='flag-5'>指南</b>-輸入子系統(tǒng)

    北京RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+

    北京RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?525次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>開發(fā)板嵌入式學(xué)習(xí)之<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>全新更新-CAN+

    混合部署 | 在RK3568上同時(shí)部署RT-Thread和Linux系統(tǒng)-電子

    混合部署 | 在RK3568上同時(shí)部署RT-Thread和Linux系統(tǒng)-電子
    的頭像 發(fā)表于 09-06 15:32 ?420次閱讀
    混合部署 | 在<b class='flag-5'>RK3568</b>上同時(shí)部署RT-Thread和<b class='flag-5'>Linux</b>系統(tǒng)-<b class='flag-5'>迅</b><b class='flag-5'>為</b>電子

    開發(fā)更便利!RK3568/RK3588 定制分區(qū)鏡像發(fā)布

    開發(fā)更便利!RK3568/RK3588 定制分區(qū)鏡像發(fā)布
    的頭像 發(fā)表于 11-11 14:00 ?467次閱讀
    開發(fā)更便利!<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 定制分區(qū)鏡像發(fā)布