前言:
RK3588內(nèi)置CAN控制器存在不可修復(fù)的硬件缺陷,考慮工業(yè)、醫(yī)療、車載等應(yīng)用領(lǐng)域?qū)AN通訊穩(wěn)定性有著極高的要求,為規(guī)避此問題,建議使用SPI轉(zhuǎn)CAN替代原生CAN接口。
一、背景說明
RK3588內(nèi)置CAN控制器存在以下不可修復(fù)的硬件缺陷:
發(fā)送擴展幀時可能降級為標(biāo)準幀,導(dǎo)致丟幀;
接收時概率性CRC校驗和ID填充錯誤,觸發(fā)總線錯誤幀。
為規(guī)避此問題,我司建議使用MCP2518(SPI轉(zhuǎn)CAN控制器)替代原生CAN接口。如下是基于眺望電子RK3588核心板資料所提供的方案支持,提供從硬件設(shè)計、驅(qū)動調(diào)試等方面的詳細指導(dǎo)。
二、硬件電路設(shè)計
2.1接口連接
眺望電子RK3588核心板無默認預(yù)留SPI接口,需根據(jù)提供的引腳分配表選擇引腳進行功能復(fù)用,如下選擇J2連接器中的UART6作為案例進行介紹。


2.2防護設(shè)計
- 電源濾波:MCP2518的VCC引腳需并聯(lián)100nF+10μF電容;
- 信號防護:CANH/CANL添加TVS二極管(如SMBJ6.5CA)和共模電感(如DLW21HN221SQ2L);
- SPI信號匹配:若走線長度>5cm,建議串聯(lián)22Ω電阻以減少反射。
注:CAN收發(fā)器的選擇以及隔離防護等級可按照項目需求靈活調(diào)整。
三、SDK內(nèi)核修改
3.1復(fù)用修改
設(shè)備樹文件:talowe-rk3588-Linux.dts
首先diabled uart6節(jié)點,使引腳釋放出來
3.2啟用SPI控制器
添加以下節(jié)點內(nèi)容:
&spi4{ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi4m2_cs0 &spi4m2_pins>; max-speed = <10000000>; // 10MHz mcp2518: can-controller@0 { compatible = "microchip,mcp2518fd"; reg = <0>; spi-max-frequency = <10000000>; interrupt-parent = <&gpio1>; interrupts =
&pinctrl {
mcp2518 { mcp2518_int: mcp2518_int { rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; };};
確認內(nèi)核配置選項:
CONFIG_SPI=y CONFIG_SPI_ROCKCHIP=y CONFIG_CAN_MCP251XFD=y
3.3禁用原生CAN控制
在設(shè)備樹中注釋或刪除RK3588原生CAN節(jié)點:
/*&can1{ pinctrl-0 = < &can1m1_pins>;status="okay";assigned-clocks = <&cru CLK_CAN1>;assigned-clocks-rates=<200000000>; }; &can2{ status="okay";assigned-clocks=<&cru?CLK_CAN2>;assigned-clocks-rates=<200000000>; };*/
3.4固件生成
保存配置后生成固件燒寫到板子上進行下一步驗證。
出現(xiàn)如上信息則編譯成功,將新生成的boot.img燒寫到板子上驗證即可。
四、驅(qū)動調(diào)試記錄
4.1基礎(chǔ)功能驗證
SPI通信測試:
# 查看SPI設(shè)備是否識別 cat /sys/bus/spi/devices/spi1.0/modalias # 輸出應(yīng)為:spi:microchip,mcp2518fd
CAN接口注冊:
ip link set can0 up type can bitrate 500000 ifconfig can0 up
4.2數(shù)據(jù)收發(fā)測試
發(fā)送測試:
cansend can0 123#DEADBEEF
接收測試:
candump can0
4.3常見問題處理
如果您在基于我司RK3588核心板進行SPI轉(zhuǎn)CAN調(diào)試期間遇到任何問題,歡迎隨時與我們聯(lián)系,可以為您提供專業(yè)的技術(shù)支持,期待與您合作!
-
CAN通信
+關(guān)注
關(guān)注
5文章
96瀏覽量
18006 -
SPI
+關(guān)注
關(guān)注
17文章
1727瀏覽量
92394 -
RK3588
+關(guān)注
關(guān)注
7文章
359瀏覽量
4680
發(fā)布評論請先 登錄
相關(guān)推薦
快速上手RK3588:藍牙模塊測試

PET_RK3588_CORE核心板

ArmSoM RK3588/RK3576核心板,Rockchip攝像頭使用

米爾RK3576和RK3588怎么選?-看這篇就夠了
快速上手RK3588常用接口測試

RK3588與RK3576區(qū)別解析

迅為RK3588開發(fā)板深度剖析丨首選的性能
基于迅為RK3588【RKNPU2項目實戰(zhàn)1】:YOLOV5實時目標(biāo)分類
基于RK3588的NPU案例分享!6T是真的強!
外協(xié):RK3588適配linux
基于RK3588的NPU案例分享!6T是真的強!

評論