can设备调试 - linux driver

这篇文章主要介绍can设备的调试相关信息,不具体介绍驱动的实现。

如果驱动写完,对can设备进行验证,可能会出现很多不可预见的问题。下面说说验证步骤

  • 验证can设备可以使用工具can-utils。这个工具包中会有cansend candump等程序。可以直接通过candump canX去接收相关can口的数据。也可以直接通过./cansend can0 123#1122334455667788 去给对应的can口发送数据。
  • 假设我们将板子的can_h和can_l 通过can分析仪连接到上位机了。但是发送和接收都没有任何反应,先确保连接正确,波特率设置正确。
  • 我们进行第一步验证即回环验证。ip link set canX up type can bitrate 500000 loopback on。在通过上面的发送和接收是不是正常。如果正常那可以基本确定驱动和can控制器没问题。
  • 上面验证的基础上也可以查看中断计数,查看中断计数是不是有增加。
root@localhost:~/can-utils# cat /proc/interrupts CPU0       CPU1       CPU2       CPU3       3:      11531      11607      19389          6     GIC-0  27 Level     arch_timer7:       1586          0          0          0     GIC-0  77 Level     serial12:     221787          0          0          0     GIC-0 105 Level     can0
  • 如果回环正常,就是正常不能通讯,那需要检查引脚的配置,即使用的pin脚是否复用到can控制器功能引脚了。 如果复用了,需检查是否同时多个引脚复用同一功能导致冲突。如果can功能没有映射到pin脚上面去,会出现:中断计数不会增加。 ifconfig 发送数据包和接收数据包不会增加。多次执行发送会出现“write: No buffer space available”

  • 如果上面也正常,还是收不到数据。可以断开phy,直接tx 连接rx,然后发送数据看看总线有没有数据。中断计数有没有增加。

记录下默认状态下(没有发送和接收数据):
电平: can_h 2.5v
电平: can_l 2.5v
下面可能跟使用芯片有关。我们芯片测试出来的:
TX 3.3V
RX 3.3V
默认为隐性。
在这里插入图片描述

在外不接设备时,从can口发送数据,在can_h和can_l上是有信号的。 总线上会有错误帧,持续一段时间,然后消失。

总线电阻正常为60欧,(两个终端电阻120Ω并联)。

当硬件和驱动没问题后,假如发送数据,则中断计数和ifconfig中的数据包都会增加。那大概率是没有接其他设备或者波特率设置不匹配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统架构师考试(十)

SaaS为在线客服 PaaS为二次开发,比如低代码平台 IaaS 硬件开发 B 是基础设施作为服务 软件架构的概念 架构风格 数据流风格 网络报文是在计算机网络中通过网络传输的数据单元,它是网络通信的基本单位。网络报文包含了发送方和接收方之间传输的数据&…

『网络攻防和AI安全之家』星球正式运营及CSDN安全知识汇总,欢迎广大博友加入

“今天是Eastmount的安全星球 —— 『网络攻防和AI安全之家』正式创建和运营的日子,该星球目前主营业务为 安全零基础答疑、安全技术分享、AI安全技术分享、AI安全论文交流、威胁情报每日推送、网络攻防技术总结、系统安全技术实战、面试求职、安全考研考博、简历修…

计算机操作系统核心组件

我是荔园微风,作为一名在IT界整整25年的老兵,今天给大家讲讲操作系统。 操作系统核心组件 用户借助于一个或多个应用程序与操作系统进行交互,常常是通过一个称为shell的特殊应用程序进行的,shell也叫作命令解释器。105今天的大多…

Postgresql源码(130)ExecInterpExpr转换为IR的流程

相关 《Postgresql源码(127)投影ExecProject的表达式执行分析》 《Postgresql源码(128)深入分析JIT中的函数内联llvm_inline》 《Postgresql源码(129)JIT函数中如何使用PG的类型llvmjit_types》 表达式计算…

Java设计模式 _行为型模式_迭代器模式

一、迭代器模式 1、迭代器模式 迭代器模式(Iterator Pattern)是一种行为型设计模式,用于顺序访问集合对象的元素,不需要关心集合对象的底层表示。如:java中的Iterator接口就是这个工作原理。 2、实现思路 &#xff0…

tomcat jdbc连接池的默认配置配置方案

MySQL 5.0 以后针对超长时间数据库连接做了一个处理,即一个数据库连接在无任何操作情况下过了 8 个小时后(MySQL 服务器默认的超时时间是 8 小时),MySQL 会自动把这个连接关闭。在数据库连接池中的 connections 如果空闲超过 8 小时,MySQL 将…

国家自然博物馆“云端自然”线上虚拟展厅是如何搭建的?

国家级综合性自然博物馆国家自然博物馆,联手积木易搭打造“云端自然”线上虚拟展览,形成一个集参观游览、科普教育为一体的线上虚拟数字博物馆平台,让数千以至数万年的古生物,栩栩如生地呈现在我们面前。 通过数字化的展示手段&am…

在做题中学习(61):连续数组

525. 连续数组 - 力扣(LeetCode) 思路:前缀和 哈希表 转化:将 0 ——> -1 转变为:找到和为0的最长子数组 细节: 1.哈希表存什么 前缀和 , 长度 2.什么时候存入哈希表 先处理前一个&…

怎么用二维码看excel表格?生成文件二维码的制作技巧

Excel表格怎么放到二维码中,让其他人通过扫码查看数据呢?现在文件放入二维码中展示在很多的场景中都有应用,比如通知、数据、作品、报告等类型的内容都可以通过扫码的方式在手机上展现,那么如何将文件生成二维码呢? 文…

DVWA登录页面空白问题解决

问题: 创建完成后打开登录页面,发现打不开,一片空白 解决: php版本不对,更换版本即可

Rust Tarui 中的 Scrcpy 客户端,旨在提供控制安卓设备的鼠标和按键映射,类似于游戏模拟器。

Scrcpy-mask 为了实现电脑控制安卓设备,本人使用 Tarui Vue 3 Rust 开发了一款跨平台桌面客户端。该客户端能够提供可视化的鼠标和键盘按键映射配置。通过按键映射实现了实现类似安卓模拟器的多点触控操作,具有毫秒级响应速度。该工具可广泛用于电脑控…

YashanDB与慧点科技完成兼容互认证

近日,深圳计算科学研究院崖山数据库系统YashanDB与慧点科技顺利完成兼容性互认证。经严格测试,双方产品完全兼容,稳定运行,共同支撑政府、企业、金融等办公应用场景下的数字化转型升级,为企业的信息技术应用创新提供坚…

石油化工巡检机器人:应对挑战的创新力量

在石油化工领域,安全始终是高悬的达摩克利斯之剑。人工巡检面临诸多痛点,如高危环境对人身安全的巨大威胁,复杂工况下难以做到全面细致监测,对有害气体检测存在滞后性,还有恶劣天气对巡检工作的严重干扰。而这些痛点&a…

绕过最新版bilibili app反frida机制

问题说明 截止到2024年5月1日,B站最新版的安卓APP(7.76.0)有反Frida机制,不管是spawn还是attach,都无法注入frida,如下图所示。本文介绍一下如何绕过它 方法 定位检测点 检测Frida的机制一般在Native层实…

GS5812G 21V、2A同步降压DC/DC转换器芯片IC

一般描述 该GS5812G是一个同步降压DC/DC转换器与快速恒定的时间(FCOT)模式控制。该器件提供4. 5V至21V的输入电压范围和2A连续负载电流能力。它是恒定时间脉宽调制(PWM)控制器,支持 FCOT模式控制。工作频率取决于输入和输出电压条件。 该GS5812G故障…

ARM-2

c语言实现三盏灯的控制 #ifndef __LED_H__ #define __LED_H__typedef struct {volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigned int OSPEEDER;volatile unsigned int PUPDR;volatile unsigned int IDR;volatile unsigned int ODR;volatile unsig…

顶顶通实时质检系统-黑名单拦截功能配置流程

文章目录 前言联系我们配置流程一、黑名单导入二、白名单导入三、外部黑名单四、靓号规则五、创建拦截规则六、拦截条件七、功能配置 拦截记录与统计拦截记录拦截统计 前言 上篇文章讲解了顶顶通实时质检系统黑名单的功能介绍,本篇文章主要讲解顶顶通黑名单拦截功能…

docker 安装 SonarQube

文章目录 docker 安装 SonarQube一、修改句柄二、创建挂载文件夹三、拉取镜像四、修改 PG 库4.1、创建用户4.2、创建库 五、启动和挂载六、访问七、安装插件 docker 安装 SonarQube 版本:8.9 对 JDK 8 最大支持为 8.9 版本 一、修改句柄 #修改文件句柄数量&#…

智能合约语言(eDSL)—— 并行化方案 2

这个并行算法最初其实是在aptos上实现的,aptos上使用的是move虚拟机,后来我把它移植到我们链上了,但是wasm虚拟机。还是费了不少事情。 目前evm并行也比较火,像monad,sei等。经过调研发现,其实evm的并行&am…

Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 404 错误

在对用户数据通过 SSO 同步的时候,调用提示 404 错误。 我们使用的是 Java 的代码。 2024-05-23_16-34-421340802 70.3 KB 如上图,返回显示的代码为 404。 问题原因 出现上面错误的原因是安装的 Discourse 实例的 discourse connect 没有启用。 2024-…