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

    文章

    107

    浏览量

    18946
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1900

    浏览量

    102249
  • RK3588
    +关注

    关注

    8

    文章

    594

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BSP调试#05:MIPI DSI(RK3588

       本合集的是我当初调试 RK3588 平台时的 原始笔记 ——只保留了那些踩过的问题接口,没出过问题的内容全删掉了。文章框架如下: 其中, “调试过程” 章节可能有点意思(记录了我踩过的
    的头像 发表于 04-17 11:54 8050次阅读
    BSP调试#05:MIPI DSI(<b class='flag-5'>RK3588</b>)

    RK3588 Type-C一线通,DP显示输出实战指南

    摘要:RK3588的Type-C接口不仅是数据传输通道,更是一路强大的DisplayPort视频输出接口。本文将手把手教你如何通过Type-C实现DP视频输出,让你使用眺望电子RK3588开发板轻松
    的头像 发表于 04-03 08:33 1.2w次阅读
    <b class='flag-5'>RK3588</b> Type-C一线通,DP显示输出<b class='flag-5'>实战</b><b class='flag-5'>指南</b>

    指南RK3588 D/C-PHY硬件设计致命误区,别让Camera和LCD“打架”(android12)

    在嵌入式硬件设计中,RK3588 凭借强大的算力和丰富的外设接口,成为直播机、工业平板、智能终端等设备的热门主控。但其中MIPI D/C-PHY(数据 / 控制物理层) 的设计往往被忽略—— 它直接
    的头像 发表于 02-04 17:40 4453次阅读
    <b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>!<b class='flag-5'>RK3588</b> D/C-PHY硬件设计致命误区,别让Camera和LCD“打架”(android12)

    保姆级教程!RK3588 Linux6.1 固件签名完整实现方案(不含rootfs)

    内核)上实操固件签名时,踩了不少官方文档的,经过反复调试终于打通全流程。今天就把这份实战经验整理成保姆级教程,从配置到问题排查,一步步带大家搞定 RK3588 的固件签名! 一、核心原理速览     固件签名的核心逻辑是通过
    的头像 发表于 01-14 17:21 2344次阅读
    保姆级教程!<b class='flag-5'>RK3588</b> Linux6.1 固件签名完整实现方案(不含rootfs)

    【NPU实战】在迅为RK3588上玩转YOLOv8:目标检测与语义分割一站式部署指南

    【NPU实战】在迅为RK3588上玩转YOLOv8:目标检测与语义分割一站式部署指南
    的头像 发表于 12-12 14:30 6448次阅读
    【NPU<b class='flag-5'>实战</b>】在迅为<b class='flag-5'>RK3588</b>上玩转YOLOv8:目标检测与语义分割一站式部署<b class='flag-5'>指南</b>

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程
    的头像 发表于 11-28 11:32 1744次阅读
    基于迅为<b class='flag-5'>RK3588</b>开发板实现高性能机器狗主控解决方案- AI能力<b class='flag-5'>实战</b>:YOLOv5目标检测例程

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

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

    开发者必备,10 分钟搞定 RK3588 PCIE 拆分!

    RK3588PCIE拆分的核心逻辑、配置步骤与实战技巧,轻松上手!一、RK3588PCIE拆分映射关系图PCIE的拆分机制的核心主要在于对于PCIEPHY的灵活拆分
    的头像 发表于 11-13 08:31 2164次阅读
    开发者必备,10 分钟搞定 <b class='flag-5'>RK3588</b> PCIE 拆分!

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

    本文围绕创龙科技研发的 TL3588-EVM 评估板,详解瑞芯微 RK3588 与 FPGA 基于 PCIe 总线的通信案例,包括 DMA 与非 DMA 两种方式。涵盖案例功能、测试流程、编译步骤
    的头像 发表于 11-04 16:09 817次阅读
    基于瑞芯微 <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 2156次阅读
    <b class='flag-5'>RK3588</b> PCIe设备识别失败?一招<b class='flag-5'>避</b><b class='flag-5'>坑</b>“非法Class”陷阱

    RK3588数据手册

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

    RK这2款旗舰芯片RK3588 PK RK3576,谁是最优选

    在 AI 边缘计算领域,瑞芯微的 RK3588RK3576 都是备受瞩目的处理器。在中国半导体产业的版图中,瑞芯微作为国内 SoC 芯片领跑者,凭借其在处理器芯片设计领域的深厚积累和持续创新
    发表于 07-10 18:24

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

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

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

    RK3588参数与主要特性 RK3588数据手册解读
    的头像 发表于 05-19 18:34 1.5w次阅读
    <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 3283次阅读
    <b class='flag-5'>RK3588</b>S和<b class='flag-5'>RK3588</b>S2差异说明