CAN双机通讯调试小结(SJA1000与MCP2515通讯)
2011-12-07 21:36:02、
效果图:

1,51的SJA1000自收自发测试完成,见上一篇小结。
2,SJA1000自测完成后,再自测MCP2515就非常容易。主要是设置工作模式为回环模式即可。测试ok。
3,开始SJA1000和MCP2515的双机通讯
先做最简单的实验。SJA1000发送,MCP2515接收,并通过串口显示接收ID及接收数据。我把调试成功的结果写出来。
步骤1:(主要改波特率)
1) 设置波特率使2者一致。
2) SJA1000及MCP2515由自测模式改成正常模式。
3) MCP2515设置关闭屏蔽接收所有帧,RXB0CTRL.RXM。
CAN通讯成功。证明我的双机硬件连线都正确。
步骤2:(主要改滤波)
在步骤1的基础上
1)修改MCP2515的RXB0CTRL.RXM,使其只接收符合滤波器条件的带有扩展标识符的有效报文。
2)修改屏蔽寄存都为0,对应的标识符位将被自动接收而不进行滤波。
CAN通讯成功。
步骤3:(主要改滤波)
在步骤2的基础上
1) 修改SJA1000的ID,改成ID1=1.即
unsigned char Send_CAN_Info_ID[5]={0x88,0x00,0x00,0x0,0x11};地址20是0x11,就是设置ID1=1.
2) 修改MCP2515的ID,把滤波屏蔽全0改成全1,一定要接收ID与验收滤波一致才可通讯。SPIByteWrite(RXF0EID0,0x02);就是设置ID1=1.
CAN通讯成功。
步骤4:(主要修改ID)
在步骤3的基础上
1)修改SJA1000的ID,改成ID1=1.即
unsigned char Send_CAN_Info_ID[5]={0x88,0x00,0x40,0x0,0x11};地址20是0x11,就是设置ID19=1.
2)修改MCP2515的ID SPIByteWrite(RXF0SIDL,0x48);就是设置ID19=1. EXIDE要设置为1.

说明:ID一致才能接收。
步骤5:(配合滤波修改ID)
在步骤4的基础上
1)修改MCP2515的ID SPIByteWrite(RXF0SIDL,0x68);就是设置ID19=1. EXIDE要设置为1.
由于ID通过滤波后是不同的,所以通讯应该失败。验证ok。
2)修改滤波,使其对ID19,ID20,ID21忽略,设置SPIByteWrite(RXM0SIDL,0x0F);
CAN双机通讯成功。打印时候显示接收的ID及数据,见最终效果图。
CAN双机通讯调试小结(SJA1000与MCP2515通讯)的更多相关文章
- 高通平台 lcd driver 调试小结
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2 开发环境 And ...
- Android 即时通讯开发小结(二)
<Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对IM 开发做一个全面的总结. 相关推荐阅读:. Android 即时通讯 ...
- Android 即时通讯开发小结(一)
<Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对IM 开发做一个全面的总结. 相关推荐阅读:. Android 即时通讯 ...
- 使用iCamera 白平衡调试小结 CC1603@AR0134
使用iCamera 白平衡调试小结 CC1603@AR0134 iCamera有强大的各种摄像头调试功能 之前演示过的有:曝光.增益.各种寄存器测试.RAW.yuv输出 今天测试下白平衡功能 绝大多数 ...
- 基于iCamera测试光电大赛官方指定摄像头mt9m001调试小结
基于iCamera测试光电大赛官方指定摄像头mt9m001调试小结 先看看官方的接口 组委会指定的模块接口 信号定义说明: VDD:3.3v GND:地 SCK:摄像头寄存器的iic配置信号的时钟线 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
1.1 应用场景 通讯平台的交互对象包括两方面:第一.与硬件产品交互.第二.与软件产品交互.基本这两方面考虑,通讯平台一般会应用在两个场景: 1)通讯平台应用在PC机上 主要应用在自动站的工控机 ...
- Vue最常用的组件通讯有三种:父->子组件通讯、子->父组件通讯,兄弟组件通讯.(template用的pug模板语法)
Vue组件通讯 Vue最常用的组件通讯有三种:父->子组件通讯.子->父组件通讯,兄弟组件通讯.(template用的pug模板语法) 1.父->子组件通讯 父->子组件通 ...
- 台达PLC开发笔记(二):台达PLC设置主机通讯参数为RTU并成功通讯
前言 前面使用485和网口与台达成功建立通讯,但是485是使用用的ASICC模式,多数情况下是使用RTU模式提升通讯效率. 下载安装台达ISPSoft软件 官网下载地址:https://d ...
- 鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽 | 百篇博客分析OpenHarmony源码 | v28.03
百篇博客系列篇.本篇为: v28.xx 鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽 | 51.c.h .o 进程通讯相关篇为: v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当 ...
随机推荐
- vue菜鸟从业记:公司项目里如何进行前后端接口联调
最近我的朋友王小闰进入一家新的公司,正好公司项目采用的是前后端分离架构,技术栈是王小闰非常熟悉的vue全家桶,后端用的是Java语言. 在前后端开发人员碰面之后,协商确定好了前端需要的数据接口(扯那么 ...
- 如何将WORD表格转换成EXCEL表格
WORD和EXCEL都可以制作表格,但WORD表格与EXCEL表格之间有着很明显的差距,所以在办公中经常会需要将WORD转换成EXCEL,今天小编就教大家一招将WORD表格转换成EXCEL表格. 操作 ...
- workerman 安装event 扩展
2018年7月31日10:07:47 一些小技巧 命令行直接运行PHP代码 php -r "phpinfo();" 交互模式运行PHP php -a PHP脚本作为shell脚本运 ...
- 关于vue页面多了之后,webpack热更新速度慢的解决办法
vue项目大了之后,每次热更新都要10多秒的时间, 网上找了一大堆发现一个有用的办法 "env": { "development":{ "plugin ...
- JavaScript关于md5加密
/*中文加密 *181009 * */ function md5(string) { var x = Array(); var k, AA, BB, CC, DD, a, b, c, d; var S ...
- MS17-010 漏洞研究——免考课题 20155104 赵文昊
免考实验与研究--MS17-010漏洞研究 研究内容 ·MS17-010漏洞的来源 ·MS17-010漏洞的攻击实例 ·MS17-010漏洞原理分析 ·MS17-010代码分析 写在前面:这次对一个漏 ...
- RoR - Nested Resources, Security ,pagination
root to: 'xxx' 默认root路径 Nested Resource: Rails.application.routes.draw do resources :books do resou ...
- npm run dev没反应
npm config set registry https://registry.npm.taobao.org npm install npm run dev
- ajax的get和post请求 -- 基于flask 简单示例
需求:在浏览器端输入姓名,将数据发送给后端,后端将内容追加到 user.json 中,并将该文件中的数据,返回到浏览器打印 1.浏览器端(html文件) index.html文件 <!DOCTY ...
- zabbix监控特定脚本有无生成
1.由于权限问题,zabbix不能直接查看其它用户目录下的文件,修改sudo文件使zabbix用户能以root身份执行test命令 visudo zabbix ALL=(root) NOPASSWD: ...