树莓派4B-基于MCP2515的CAN通信过程记录篇

2023-05-16

本文主要记录使用树莓派4B,通过外接MCP2515模块来实现CAN通信,使用基于Can-utils实现CAN消息的收发。

准备工作:

  • 树莓派
  • MCP2515模块
  • 杜邦线若干
  •  知乎上一篇较为详细的参考,但是在里面遇到了坑,后面再展开讲

接下来就是硬件部分,接线完成:

买的MCP2515模块附带的原理图:

 树莓派与MCP2515模块的接线:

 树莓派的引脚图,引自pinout.xyz:

线接好后按着参考一步一步走,先敲命令,在/boot/config.txt末行加入:

pi@raspberrypi:~ $ sudo nano /boot/config.txt
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi1-1cs

然后保存配置重启:

sudo reboot 

ls /sys/bus/spi/devices/spi0.0/net

dmesg | grep -i '\(can\|spi\)'

得到结果:

表示MCP2515已经加载成功。

接下来,设置环回模式,设置回环 波特率 250K ,用于测试can通路,在没有其它硬件连接测试的情况下,自发自收:

sudo ip link set can0 type can bitrate 500000 loopback on


# 开启can0
sudo ip link set can0 up

但是收发不了数据,启动还会把系统卡死。反复重试,反复卡死。。。

开始调试:

  1. 排除接线接错
  2. 换了一个全新的模块,发现结果还是一样
  3. 通过上面的操作,大概率是配置有问题

于是开始查配置的参数说明,发现这篇里面说的很详细,并指出原来配置中存在的问题,讲的很详细,我就不重复了:

  • 打开spi总线,树莓派与MCP2515之前通过spi通信,然后再转成can协议在spi0.0上配置
  • MCP2515 CAN控制器,CAN控制器的晶振频率是16MHz,INT脚接到了gpio25
  • 原来配置是spi1-1cs,但我们用的是spi0,应该要改为dtoverlay=spi0-1cs,cs0_pin=8

于是我改好配置后,结果还是收发不了数据,启动还会把系统卡死。反复重试,反复卡死。。。

查看树莓派的引脚,如果不行,参考这篇:

后面又看到一篇,较之前相比配置做了一些改动,给出我的配置:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25,spimaxfrequency=10000000
dtoverlay=spi-bcm2835-overlay

再次sudo reboot,设置环回模式并开启can0,输入sudo ip -s -d link show can0查看can0通讯状态:

 这次竟能启动成功,还没有把系统搞崩,于是测试收发can消息

安装 SocketCAN工具 Can-utils :

sudo apt-get install can-utils

使用cansend发送单条CAN消息:

cansend can0 123#AABBCCDDEEFF

开一个新终端,接收消息:

candump can0

结果: 

 使用cangen发送随机CAN消息:

cangen can0

 发送: 

  

 接收:

 终于打通啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派4B-基于MCP2515的CAN通信过程记录篇 的相关文章

  • can't run '/etc/init.d/rcS': No such file or directory 最终解决方法

    drivers rtc hctosys c unable to open rtc device rtc0 end request I O error dev mtdblock2 sector 256 isofs fill super bre
  • socketcan_bridge 包 设置多路CAN口 小记

    参考链接 xff1a socketcan bridge ROS Wiki 基于ROS 43 CANopen的SocketCAN驱动在Ubuntu下的应用说明 SzZhangfq的博客 CSDN博客 ros socketcan socketc
  • STM8 CAN总线的IdMask模式的讲解

    http www stmcu org article id 328212 STM8 CAN总线的IdMask模式的讲解 发布时间 xff1a 2016 08 27 来源 xff1a ST社区 标签 xff1a STM8 CAN总线 IdMa
  • Python 使用can模块(记录稿)

    直接安装 xff1a pip install python can 如果报这个错 更新一下pip pip3 install upgrade pip 或者是 pip install upgrade pip 再安装wrapt pip insta
  • CAN通信讲解(2)——数据帧和遥控帧

    本文注意参考了 CAN入门书 xff0c 源于此书图片不再特殊标注 目录 2 1 帧的种类2 2 数据帧和遥控帧2 3 仲裁过程2 4 各段详解2 5 小结 数据帧和遥控帧格式类似 xff0c 放在一起串讲 2 1 帧的种类 CAN协议帧分
  • CAN总线电平(隐性与显性)

    nbsp nbsp nbsp nbsp CAN2 0B规范定义了两种互补的逻辑数值 显性和隐性 同时传送显性和隐性位时 总线呈现显性状态 同时传送显性状态位时 总线呈现显性状态 同时传送隐性状态位时 总线呈现隐性状态 显性数值表示逻辑0 隐
  • CAN总线协议:标准CAN和扩展CAN

    CAN通讯协议是一个载波侦听 基于报文优先级碰撞检测和仲裁 xff08 CSMA CD 43 AMP xff09 的多路访问协议 CSMA的意思是总线上的每一个节点在企图发送报文前 xff0c 必须要监听总线 xff0c 当总线处于空闲时
  • CAN报文格式简析

    Date xff1a 2022 5 11 Author xff1a MJQ Meta xff1a CAN CAN基础篇 CAN报文格式简析 1 Motornala和Intel格式 建议直接看图 xff0c 小白也能秒懂 xff01 注 xf
  • 蓝牙通信、串口通信、和can通信以及MCU之间的关系

    说明 xff1a 其端口和can需要设置波特率 xff1a 250 500 xff0c 和can的类型 xff0c can1 can2 串口直接和模拟量通信需要设置串口的信息 xff0c 如下图 xff1a 蓝牙和模拟量通信 xff0c 不
  • 大疆M3508、M2006必备CAN总线知识与配置方法

    大疆M3508 M2006必备CAN总线知识与配置方法 文章目录 大疆M3508 M2006必备CAN总线知识与配置方法前言 xff1a 0x00 需要 额外的 CAN收发器 xff01 xff01 xff01 0x01 硬件层面分析为什么
  • rplidar_ros 报错:can‘t bind 和Operation Time Out的解决

    我使用的思岚A2的雷达在ros下运行 1 can t bind无法连接的错误 xff0c 一种是设备号不匹配引起的错误 xff0c 首先可以使用ll dev grep ttyUSB查看一下设备的dev号 xff0c 再检查一下rplidar
  • 使用STM32F103做CAN的收发通信

    下面也是搭建嵌入式系统所必须的一个部分 参考网站 xff1a https www cnblogs com craigtao p 3645148 html https blog csdn net qq 29413829 article det
  • kvaser pcie can 在ros中使用socketcan开发

    kvaser pcie can 在ros中使用socketcan开发 0 系统配置 Ubuntu 16 04 6 LTS Linux version 4 15 0 45 generic 1 官网下载地址 https www kvaser c
  • Ubuntu系统周立功CAN驱动安装及常见问题

    文章目录 前言 一 步骤 1 检查是否安装libusb的库 2 驱动安装 3 测试 部分常见问题 前言 系统是ubuntu16系列 周立功的是usbcan 提示 以下是本篇文章正文内容 下面案例可供参考 一 步骤 1 检查是否安装libus
  • 一文读懂CAN总线及通信协议

    CAN总线的汽车 CAN概念 CAN是控制器域网 Controller Area Network CAN 的简称 是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的 并最终成为国际标准 ISO11898 是ISO国际标准化的串行通信
  • MCP2515独立控制器

    1 简介 MCP2515 是一款独立控制器局域网络 Controller Area Network CAN 协议控制器 完全支持 CAN V2 0B 技术规范 该器件能发送和接收标准和扩展数据帧以及远程帧 MCP2515 自带的两个验收屏蔽
  • CAN总线的EMC设计方案

    一 CAN接口EMC设计概述 Controller Area Network简称为CAN 多用于汽车以及工业控制 用于数据的传输控制 在应用的过程中通讯电缆容易耦合外部的干扰对信号传输造成一定的影响 单板内部的干扰也可能通过电缆形成对外辐射
  • STM32学习心得三十二:CAN通信基础知识、原理、配置及实验

    记录一下 方便以后翻阅 主要内容 1 CAN通信基础知识 2 STM32 CAN控制器简介 3 相关实验代码解读 参考资料 STM32中文参考手册 V10 第22章 控制器局域网 bxCAN 实验功能 CAN实验需要两个开发板 系统启动后
  • STM32 CAN/CANFD软件快速配置(HAL库版本)

    STM32 CAN CANFD软件快速配置 HAL库版本 目录 STM32 CAN CANFD软件快速配置 HAL库版本 前言 1 软件编程 1 1 建立工程 1 2 初始化 1 2 1 引脚设置 1 2 2 CAN基本参数设置 1 2 3
  • Ubuntu 周立功CAN分析仪 USBCAN-II 驱动

    首先从官网https www zlg cn Index Search search key linux的下载资料界面下载 Linux驱动 USBCAN I I II II 2A I MINI安装驱动 USBCAN II新版驱动基于libus

随机推荐

  • ubuntu20.04双系统分区

    一 分四个区 xff0c 记录下 主分区和逻辑分区目前感觉没啥影响 但是有的电脑可能数量会有限制 boot引导分区 500M 交换分区 xff0c 16G及以下与内存大小一致 根目录 xff0c 如果要安装cuda之类的尽量50G以上吧 其
  • Vins-Fusion运行kitti,euroc和tum数据集并使用evo评估

    基于ubuntu18 04 VIns Fusion 1 修改程序输出位姿信息修改为TUM格式 为了方便评估 xff0c 先将程序的输出位姿信息修改为tum格式 xff0c 需要做如下改动 1 1 回环输出位姿文件pose graph cpp
  • JETSON ORIN NX 烧录系统镜像

    所需环境 xff1a Ubuntu 操作系统 本方法适用于SDKManager 找不到套件的情况 xff01 解决方法如下 xff1a 进入NVIDIA官网 xff08 Jetson Linux 35 2 1 NVIDIA Develope
  • 解决Komodo上自带D435可以打开而外接D435i打不开的原因

    解决Komodo上自带D435可以打开而外接D435i打不开的原因 因为Komodo上装的realsense SDK 和realsense ros版本不对应以及版本太低的原因 xff0c 所以各种问题 按照realsense和realsen
  • C++泛型编程,标准模板库(STL)

    C 43 43 的特点就是添加了面向对象和泛型 面向对象是用类实现的 xff0c 泛型是用模板实现的 xff0c C 43 43 的标准模板库 STL 是泛型一个实例 xff0c 已经被集成到C 43 43 xff0c STL是一些常用的数
  • [工程编写]CMakeLists.txt 如何编写

    最近开始写一些SLAM工程 xff0c 所以对涉及到的内容做一些整理 xff0c 那么要做的第一件事情就是编写一个CMakeLists txt 本文那任乾大佬在知乎关于雷达自动驾驶SLAM的工程距离 1 信息指定 cmake版本确定 xff
  • 在执行 pip install 时遇到错误: ERROR: Complete output from command python setup.py egg_info:

    在执行 pip install 时遇到错误 xff1a pip install U docker compose ERROR Complete output from command python setup py egg info ERR
  • 树莓派登录问题

    在使用树莓派的过程中 xff0c 多次遇到了开机后输入正确密码却被重复多次要求输入的情况 xff0c 在查看他人经验后 xff0c 总结出以下两种情况及可行的方法 不确定密码是否正确 参考博客 纸末 树莓派忘记密码的解决方法 1 xff0c
  • 什么是SDK和API?

    SDK xff1a 在搭建环境的时候知道的sdk xff0c 但并不知道有什么用 SDK Software Development Kit 翻译成中文就是 34 软体开发工具组 34 是用来帮一个 产品 或 平台 开发应用程式的工具组 xf
  • 华为开发者大会总结——个人总结

    方舟编译器 xff08 开源 xff09 xff1a 干掉Java虚拟机 将java代码直接编译成机器码 xff0c 静态语义好编译 xff0c 核心是静态编译出动态语义 xff08 通过华为编译实验室的核心专利 xff09 xff0c 代
  • LoRa关键参数 1、扩频因子(SF) 2、编码率(CR) 3、信号带宽(BW) 4、LoRa信号带宽BW、符号速率Rs和数据速率DR的关系 5、

    LoRa 学习 xff1a LoRa 关键参数 xff08 扩频因子 xff0c 编码率 xff0c 带宽 xff09 的设定及解释 1 扩频因子 xff08 SF xff09 2 编码率 xff08 CR xff09 3 信号带宽 xff
  • MarkDown的语法

    使用MarkDoown时应该注意些什么呢 目录 一 添加标题 二 引用代码块 三 嵌入图片 1 本地图片 2 互联网图片 四 快捷键使用 五 分界线的使用 一 添加标题 在文字前加入相应数量的 一级标题 二级标题 三级标题 四级标题 五级标
  • python试爬李毅吧贴子标题,爬虫最初级

    注 xff1a 以下所有python代码均运行于2 7 0 最近想抓点数据存起来 xff0c 开始捣鼓python 爬虫技术以前没接触过 xff0c 这一回就当练手 xff0c 从零开始 xff0c 从最原始的方式开始 先定个小目标 xff
  • Activity的生命周期

    图来自百度百科 onCreate 启动activity时被调用 xff0c 用于进行初始化操作 xff08 加载布局 绑定事件等 xff09 xff0c 不应在onCreate 中做过多的不必要操作 xff0c 避免造成打开activity
  • Activity的启动模式

    以下为读书笔记 xff1a 实际项目中 xff0c 我们要通过特定的需求 xff0c 为每个活动指定恰当的启动模式 Android一共有4种启动模式 xff1a standard singleTop singleTask singleIns
  • PID参数 Ziegler-Nichols基于时域响应曲线的整定 反应曲线法

    PID控制器是工业过程控制中广泛采用的一种控制器 xff0c 其中 xff0c P I D分别为比例 xff08 Proportion xff09 积分 xff08 Integral xff09 微分 xff08 Differential
  • 郑学坚《微型计算机原理及应用》考点精讲 36讲

    链接 xff1a https pan baidu com s 12 vGBRrjOd UtO8P4e9bow 提取码 xff1a tqmp 当初考研时买的网课 xff0c 现在也用不着了 xff0c 赠与有缘人 书籍记录着别人多年时光总结出
  • 几种常用排序算法

    排序算法代码如下 xff1a void Sort Algorithm Bubble Sort int amp nums const int len bool haschange 61 true for int i 61 0 i lt len
  • 四旋翼姿态解算

    代码思路如下 xff1a 姿态解算 void IMU update float dT imu state st state float gyr VEC XYZ s32 acc VEC XYZ s16 mag val VEC XYZ imu
  • 树莓派4B-基于MCP2515的CAN通信过程记录篇

    本文主要记录使用树莓派4B xff0c 通过外接MCP2515模块来实现CAN通信 xff0c 使用基于Can utils实现CAN消息的收发 准备工作 xff1a 树莓派MCP2515模块杜邦线若干 知乎上一篇较为详细的参考 xff0c