0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实战案例 | RK3588 CAN通信BUG避坑指南

眺望电子 2025-02-20 08:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:

RK3588内置CAN控制器存在不可修复的硬件缺陷,考虑工业、医疗、车载等应用领域对CAN通讯稳定性有着极高的要求,为规避此问题,建议使用SPI转CAN替代原生CAN接口

一、背景说明

RK3588内置CAN控制器存在以下不可修复的硬件缺陷:

发送扩展帧时可能降级为标准帧,导致丢帧;

接收时概率性CRC校验和ID填充错误,触发总线错误帧。

eea6cf7a-ef21-11ef-9434-92fbcf53809c.jpg

为规避此问题,我司建议使用MCP2518(SPI转CAN控制器)替代原生CAN接口。如下是基于眺望电子RK3588核心板资料所提供的方案支持,提供从硬件设计、驱动调试等方面的详细指导。

二、硬件电路设计

2.1接口连接
眺望电子RK3588核心板无默认预留SPI接口,需根据提供的引脚分配表选择引脚进行功能复用,如下选择J2连接器中的UART6作为案例进行介绍。

eec09fc2-ef21-11ef-9434-92fbcf53809c.pngeecea608-ef21-11ef-9434-92fbcf53809c.png

2.2防护设计

  • 电源滤波:MCP2518的VCC引脚需并联100nF+10μF电容
  • 信号防护:CANH/CANL添加TVS二极管(如SMBJ6.5CA)和共模电感(如DLW21HN221SQ2L);
  • SPI信号匹配:若走线长度>5cm,建议串联22Ω电阻以减少反射。

注:CAN收发器的选择以及隔离防护等级可按照项目需求灵活调整。

三、SDK内核修改

3.1复用修改

设备树文件:talowe-rk3588-Linux.dts


首先diabled uart6节点,使引脚释放出来

eeda1556-ef21-11ef-9434-92fbcf53809c.png

3.2启用SPI控制器

添加以下节点内容:

&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-names = "default"; pinctrl-0 = <&mcp2518_int>; status = "okey"; };};
&pinctrl {
mcp2518 { mcp2518_int: mcp2518_int { rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; };};

确认内核配置选项:

CONFIG_SPI=y CONFIG_SPI_ROCKCHIP=y CONFIG_CAN_MCP251XFD=y


eee78330-ef21-11ef-9434-92fbcf53809c.pngeef4129e-ef21-11ef-9434-92fbcf53809c.png

3.3禁用原生CAN控制

在设备树中注释或删除RK3588原生CAN节点:

/*&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>; };*/

ef051102-ef21-11ef-9434-92fbcf53809c.png

3.4固件生成

保存配置后生成固件烧写到板子上进行下一步验证。


ef10f04e-ef21-11ef-9434-92fbcf53809c.png

出现如上信息则编译成功,将新生成的boot.img烧写到板子上验证即可。

四、驱动调试记录

4.1基础功能验证

SPI通信测试:

# 查看SPI设备是否识别 cat /sys/bus/spi/devices/spi1.0/modalias # 输出应为:spi:microchip,mcp2518fd

CAN接口注册:

ip link set can0 up type can bitrate 500000 ifconfig can0 up

4.2数据收发测试

发送测试:

cansend can0 123#DEADBEEF

接收测试:

candump can0

4.3常见问题处理

ef1def56-ef21-11ef-9434-92fbcf53809c.png

如果您在基于我司RK3588核心板进行SPI转CAN调试期间遇到任何问题,欢迎随时与我们联系,可以为您提供专业的技术支持,期待与您合作!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN通信
    +关注

    关注

    5

    文章

    100

    浏览量

    18797
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99830
  • RK3588
    +关注

    关注

    8

    文章

    493

    浏览量

    7062
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文搞懂 RK3588 PCIe:从硬件资源到拆分配置 + 指南(含脑图)

    资源解析、 3  大拆分方案实战、关键配置步骤及要点,附带可视化脑图,助力开发者快速落地  PCIe  相关项目。       一、 RK3588 PCIe  核心硬件资源   1
    的头像 发表于 11-20 18:18 1856次阅读
    一文搞懂 <b class='flag-5'>RK3588</b> PCIe:从硬件资源到拆分配置 + <b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>(含脑图)

    基于瑞芯微 RK3588 的 ARM 与 FPGA 交互通信实战指南

    本文围绕创龙科技研发的 TL3588-EVM 评估板,详解瑞芯微 RK3588 与 FPGA 基于 PCIe 总线的通信案例,包括 DMA 与非 DMA 两种方式。涵盖案例功能、测试流程、编译步骤
    的头像 发表于 11-04 16:09 268次阅读
    基于瑞芯微 <b class='flag-5'>RK3588</b> 的 ARM 与 FPGA 交互<b class='flag-5'>通信实战</b><b class='flag-5'>指南</b>

    RK3588 PCIe设备识别失败?一招“非法Class”陷阱

    前言:在RK3588平台开发过程中,你是否遇到过这样的窘境:明明PCIe总线上挂好了网卡模块,lspci能识别到芯片,可驱动就是加载失败,排查半天找不到关键问题?别慌!本文将带你一步步解决这个棘手
    的头像 发表于 08-29 08:32 1146次阅读
    <b class='flag-5'>RK3588</b> PCIe设备识别失败?一招<b class='flag-5'>避</b><b class='flag-5'>坑</b>“非法Class”陷阱

    RK3588数据手册

    RK3588的资料
    发表于 08-01 16:08 37次下载

    干货分享 | RK3588 Ubuntu系统Docker容器使用指南

    前言:在瑞芯微RK3588高性能AIoT平台上运行Ubuntu系统时,Docker容器技术能极大提升开发部署效率。通过轻量级虚拟化实现环境隔离与快速迁移,本文将从零开始详解RK3588平台
    的头像 发表于 06-27 12:01 3206次阅读
    干货分享 | <b class='flag-5'>RK3588</b> Ubuntu系统Docker容器使用<b class='flag-5'>指南</b>

    RK3588参数与主要特性 RK3588数据手册解读

    RK3588参数与主要特性 RK3588数据手册解读
    的头像 发表于 05-19 18:34 9644次阅读
    <b class='flag-5'>RK3588</b>参数与主要特性  <b class='flag-5'>RK3588</b>数据手册解读

    RK3588S和RK3588S2差异说明

    RK3588S2 较 RK3588S少了一组 MIPI D/C-PHY CSI_RX PORT0,新增一组 MIPI DPHY CSI_RX PORT1,同时接口位置除 MIPI D/C-PHY
    的头像 发表于 05-13 14:23 2198次阅读
    <b class='flag-5'>RK3588</b>S和<b class='flag-5'>RK3588</b>S2差异说明

    RK3588主板:多元场景的硬核“芯”力量

    近年来,RK3588主板在市场上愈发活跃,作为智能硬件领域的关键组件,RK3588主板以强大的性能和广泛的适用性,成为众多设备的核心“大脑”。一、RK3588主板核心优势高性能处理器RK358
    的头像 发表于 03-11 10:40 1295次阅读
    <b class='flag-5'>RK3588</b>主板:多元场景的硬核“芯”力量

    RK3588 EVB开发板原理图讲解【八】 RK3588 power Tree

    本帖最后由 瑞芯微方案开发老王 于 2025-3-1 11:41 编辑 一、RK3588电源架构核心特点 ​多电源域设计​ 芯片通常划分为多个独立电源域(Power Domain),例如
    发表于 03-01 11:38

    rk3588硬件原理图

    RK3588的硬件参考设计
    发表于 02-25 17:44 38次下载

    RK3588原理图

    RK3588开发板原理图文件
    发表于 02-24 15:57 50次下载

    快速上手RK3588:蓝牙模块测试

    前言:欢迎继续关注《快速上手RK3588:蓝牙模块测试》!在之前的几期中,我们详细介绍了RK3588开发板的基础功能调试方法,本期将就AW-XM458蓝牙模块测试向大家介绍使用方法。图
    的头像 发表于 02-20 08:31 3425次阅读
    快速上手<b class='flag-5'>RK3588</b>:蓝牙模块测试

    PET_RK3588_CORE核心板

    一、PET_RK3588_CORE 核心板图片 二、PET_RK3588_CORE 核心板详细参数 注意:RK3588 引脚大部分是功能复用的,以上列表内的资源存在不能同时使用的情况,引脚功能复用情况 可以查询下表或查看我司核心
    的头像 发表于 01-15 14:12 1298次阅读
    PET_<b class='flag-5'>RK3588</b>_CORE核心板

    快速上手RK3588常用接口测试

    前言:在之前的几期中,我们详细介绍了RK3588开发板的大部分基础功能调试方法,本期是针对常用通信接口以及IO口的测试,主要包括的调试内容有:USB2.0测试、CAN通信测试、UART
    的头像 发表于 12-26 08:33 4280次阅读
    快速上手<b class='flag-5'>RK3588</b>常用接口测试

    RK3588RK3576区别解析

    以下是RK3576与RK3588对比: 电鱼电子SBC-RK3576单板 核心性能:RK3576为四核A72@2.2GHz + 四核A53@1.8GHz + M0协处理器,算力 58K
    的头像 发表于 12-17 14:03 3359次阅读
    <b class='flag-5'>RK3588</b>与<b class='flag-5'>RK</b>3576区别解析