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


2.2防護(hù)設(shè)計(jì)
- 電源濾波:MCP2518的VCC引腳需并聯(lián)100nF+10μF電容;
- 信號(hào)防護(hù):CANH/CANL添加TVS二極管(如SMBJ6.5CA)和共模電感(如DLW21HN221SQ2L);
- SPI信號(hào)匹配:若走線長(zhǎng)度>5cm,建議串聯(lián)22Ω電阻以減少反射。
注:CAN收發(fā)器的選擇以及隔離防護(hù)等級(jí)可按照項(xiàng)目需求靈活調(diào)整。
三、SDK內(nèi)核修改
3.1復(fù)用修改
設(shè)備樹文件:talowe-rk3588-Linux.dts
首先diabled uart6節(jié)點(diǎn),使引腳釋放出來(lái)
3.2啟用SPI控制器
添加以下節(jié)點(diǎn)內(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>; }; };};
確認(rèn)內(nèi)核配置選項(xiàng):
CONFIG_SPI=y CONFIG_SPI_ROCKCHIP=y CONFIG_CAN_MCP251XFD=y
3.3禁用原生CAN控制
在設(shè)備樹中注釋或刪除RK3588原生CAN節(jié)點(diǎn):
/*&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固件生成
保存配置后生成固件燒寫到板子上進(jìn)行下一步驗(yàn)證。
出現(xiàn)如上信息則編譯成功,將新生成的boot.img燒寫到板子上驗(yàn)證即可。
四、驅(qū)動(dòng)調(diào)試記錄
4.1基礎(chǔ)功能驗(yàn)證
SPI通信測(cè)試:
# 查看SPI設(shè)備是否識(shí)別 cat /sys/bus/spi/devices/spi1.0/modalias # 輸出應(yīng)為:spi:microchip,mcp2518fd
CAN接口注冊(cè):
ip link set can0 up type can bitrate 500000 ifconfig can0 up
4.2數(shù)據(jù)收發(fā)測(cè)試
發(fā)送測(cè)試:
cansend can0 123#DEADBEEF
接收測(cè)試:
candump can0
4.3常見問(wèn)題處理
如果您在基于我司RK3588核心板進(jìn)行SPI轉(zhuǎn)CAN調(diào)試期間遇到任何問(wèn)題,歡迎隨時(shí)與我們聯(lián)系,可以為您提供專業(yè)的技術(shù)支持,期待與您合作!
-
CAN通信
+關(guān)注
關(guān)注
5文章
96瀏覽量
18232 -
SPI
+關(guān)注
關(guān)注
17文章
1742瀏覽量
93770 -
RK3588
+關(guān)注
關(guān)注
7文章
384瀏覽量
5231
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
RK3588主板:多元場(chǎng)景的硬核“芯”力量

RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree
快速上手RK3588:藍(lán)牙模塊測(cè)試

PET_RK3588_CORE核心板

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

RK3588與RK3576區(qū)別解析

評(píng)論