国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 650|回復(fù): 0
打印 上一主題 下一主題

RK3562J CAN-FD控制器的調(diào)試方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-12-11 10:25:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

“SPI轉(zhuǎn)CAN-FD”是嵌入式開(kāi)發(fā)領(lǐng)域的常用方法,它極大地促進(jìn)了不同通信接口之間的無(wú)縫連接,并顯著降低了系統(tǒng)設(shè)計(jì)的復(fù)雜性。飛凌嵌入式依托瑞芯微RK3562J處理器打造的OK3562J-C開(kāi)發(fā)板因?yàn)閮?nèi)置了SPI轉(zhuǎn)CAN-FD驅(qū)動(dòng),從而原生支持這一功能。該開(kāi)發(fā)板特別設(shè)計(jì)了一組SPI引腳【P8】,專為SPI轉(zhuǎn)CAN-FD應(yīng)用而引出,為用戶提供了極大的便利。


MCP2518FD是一款在各行業(yè)中都有著廣泛應(yīng)用的CAN-FD控制器芯片,本文就將為大家介紹如何在飛凌嵌入式RK3562J開(kāi)發(fā)板上適配MCP2518FD芯片。


(建議您在手機(jī)、平板或電腦的淺色模式下閱讀本文)


1適配驅(qū)動(dòng)

RK3562J的內(nèi)核中已經(jīng)具備MCP2518FD的驅(qū)動(dòng)文件,要在配置文件中將驅(qū)動(dòng)配置進(jìn)內(nèi)核,在kernel下打開(kāi)圖形化配置界面make menuconfig ARCH=arm64。


(1) 按下 ‘/’ 鍵進(jìn)入搜索界面,輸入 mcp251 可搜索MCP2518驅(qū)動(dòng):



上圖中的CAN_MCP251XFD就是適配MCP2518FD模塊的驅(qū)動(dòng)。


(2) 選擇 2 將其打 * 編譯進(jìn)內(nèi)核:




(3)選擇 save 保存配置到defconfig文件,文件路徑:

/home/forlinx/3562/OK3562-linuxsource/kernel/arch/arm64/configs/OK3562_Linux_defconfig

2適配設(shè)備樹(shù)

(1) 飛凌嵌入式RK3562J開(kāi)發(fā)板已引出一組SPI引腳:




(2) 驅(qū)動(dòng)配置完成后要配置的是設(shè)備樹(shù)文件:

OK3562-C-common.dtsi


(3) 具體的配置信息如下:

diff --git a/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi b/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsiindex 158f03d70..671a491bf 100644--- a/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi+++ b/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi@@ -19,6 +19,12 @@model = "Forlinx OK3562 Board";compatible = "forlinx,ok3562","rockchip,rk3562";+ mcp2518_clk: mcp2518-clk {+ compatible = "fixed-clock";+ #clock-cells = <0>;+ clock-frequency = <40000000>;+ };+forlinx-control {status = "disabled";disp_type = "mipi"; //mipi or lvds@@ -662,6 +668,13 @@};&pinctrl {++ mcp2518 {+ mcp2518_irq_pins:mcp2518_irq_pins {+ rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;+ };+ };+touch {gt928_lvds_gpio:gt928-lvds-gpio {rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,@@ -980,13 +993,24 @@&spi2 {+ pinctrl-names = "default";+ pinctrl-0 = <&spi2m0_csn0 &spi2m0_csn1 &spi2m0_pins>;status = "okay";- spi_dev0: spi@0 {+/* spi_dev0: spi@0 {compatible = "rohm,dh2228fv";2 / 5pl022,com-mode = <1>;spi-max-frequency = <10000000>;reg = <0>;status = "okay";+ };*/+ spi@0{+ compatible = "microchip,mcp2518fd";+ reg = <0>;+ clocks = <&mcp2518_clk>;+ pinctrl-names = "default";+ pinctrl-0 = <&mcp2518_irq_pins>;+ spi-max-frequency = <20000000>;+ interrupts-extended= <&gpio4 RK_PB0 IRQ_TYPE_LEVEL_LOW>; };};



① mcp2518_clk 是時(shí)鐘頻率節(jié)點(diǎn),要匹配模塊實(shí)際的晶振頻率;

② 模塊上有的 INT 腳是模塊的中斷腳,在適配時(shí)需要連接一個(gè)可控的GPIO引腳作為終端腳;

③ 在 spi2 節(jié)點(diǎn)下添加匹配MCP2518驅(qū)動(dòng)的設(shè)備樹(shù)信息,compatible 信息不能出錯(cuò),這是匹配驅(qū)動(dòng)的重要屬性。


3編譯燒寫(xiě)

將以上的驅(qū)動(dòng)和設(shè)備樹(shù)配置好后,編譯內(nèi)核燒寫(xiě)進(jìn)開(kāi)發(fā)板就可以測(cè)試了:


(1) 在源碼目錄下單獨(dú)編譯kernel:



forlinx@ubuntu:~/3562/OK3562-linux-source$ ./build.sh kernel

在源碼目錄下的kernel目錄下會(huì)生成鏡像文件 boot.img


(2) 將鏡像文件燒錄到開(kāi)發(fā)板,需要用到工具 RKDevTool ,此工具在OK3562的資料包里可以找到:

① 打開(kāi)燒寫(xiě)工具;

② 用Type-C數(shù)據(jù)線連接PC和開(kāi)發(fā)板底部的Type-C0接口;

③ 按住開(kāi)發(fā)板的Recovery鍵不要松開(kāi),重啟開(kāi)發(fā)板;

④ 注意工具會(huì)識(shí)別到開(kāi)發(fā)板是否進(jìn)入燒錄狀態(tài)。




⑤ 擇之前編譯好的 boot.img 鏡像文件,在boot選項(xiàng)前面打勾,點(diǎn)擊執(zhí)行進(jìn)行燒寫(xiě),燒寫(xiě)完成會(huì)自動(dòng)重啟開(kāi)發(fā)板


4功能測(cè)試

在開(kāi)發(fā)板內(nèi)搜索can節(jié)點(diǎn),使用 ifconfig -a 命令




可以看到生成的can0節(jié)點(diǎn)。接下來(lái)的功能測(cè)試,我們采用OK3562J-C和OK3568-C兩塊開(kāi)發(fā)板的can0進(jìn)行數(shù)據(jù)互發(fā)測(cè)試。


(1) OK3562J-C開(kāi)發(fā)板接收數(shù)據(jù):

① 設(shè)置can0的波特率



ip link set can0 type can bitrate 500000


② 打開(kāi)can0設(shè)備,并把can0設(shè)置成服務(wù)端接收數(shù)據(jù)



ifconfig can0 up //打開(kāi)can0設(shè)備 candump can0& //can0設(shè)備設(shè)置成服務(wù)端



③ 配置OK3568-C開(kāi)發(fā)板的can0作為客戶端,發(fā)送信息給OK3562J-C開(kāi)發(fā)板的can0


ifconfig can0 down ip link set can0 up type can bitrate 500000 ifconfig can0 up cansend can0 123#1122334aabbccd //發(fā)送信息




④ OK3562J-C開(kāi)發(fā)板會(huì)收到OK3568發(fā)來(lái)的消息




(注:上圖中出現(xiàn)的報(bào)錯(cuò)是MCP2518FD驅(qū)動(dòng)的問(wèn)題,測(cè)試不會(huì)影響通信。)


(2) OK3562J-C開(kāi)發(fā)板發(fā)送數(shù)據(jù):

① 設(shè)置波特率等操作同上,在配置功能時(shí)要使用 cansend 命令發(fā)送數(shù)據(jù)。



添加圖片注釋,不超過(guò) 140 字(可選)



② OK3568-C依照OK3562-C的方法配置成接收數(shù)據(jù)的服務(wù)端。






ifconfig can0 down




可以看到,兩塊開(kāi)發(fā)板可以進(jìn)行正常的數(shù)據(jù)互發(fā)。以上是飛凌嵌入式RK3562J開(kāi)發(fā)板適配和測(cè)試MCP2518FD模塊的全部過(guò)程,希望能夠?qū)Υ蠹业捻?xiàng)目開(kāi)發(fā)有所幫助。


本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品中文字幕视频一区 | 免费91视频| 91大神大战丝袜美女在线观看 | 色视频在线免费 | 亚洲情a成黄在线观看 | 成人精品一区久久久久 | 国内精品国语自产拍在线观看91 | 综合在线亚洲 | 日韩免费精品视频 | 日韩精品免费一级视频 | 91在线公开视频 | 4hc44四虎www在线观看 | 免费看黄网站入口 | 欧美freex| ww免费视频| 日产精品一卡2卡三卡4乱码久久 | 亚洲高清一区二区三区 | 我的大乳女友小萱h文 | 亚洲色图第四色 | 日韩亚洲 | 精品肉动漫资源在线观看 | 色九月| 狠狠色丁香久久综合五月 | 成人国产午夜在线视频 | 日本在线视频二区 | 狠狠干91| 一二三四社区在线视频社区3 | 午夜视频在线网站 | 国产精品观看视频免费完整版 | 国产黄色小视频网站 | 日本不卡三区 | 免费高清a毛片 | 美女网站色免费 | japan在线观看| 日韩福利在线视频 | 日韩在线播放中文字幕 | 四虎影院永久免费 | 美国一级黑人毛片 | 成人伊人青草久久综合网破解版 | 日韩激情视频网站 | 中文国产成人精品久久一区 |