LPC1769 CAN的自测试模式
一、背景
客户要了一块单路CAN的板子,他希望在没有其他板子的情况下进行自行测试,然后按照我写的
APP选择自收发测试选项,却无法接收到发送的信息,但是外接了一块板子就可以接收到自己发送的
信息;由于开发时间久远,之前又没做记录,所以一时间没有解释出个子丑寅卯来,惭愧。现在重
新查看资料,便有了此文。 二、正文
LPC1769有"Gloable self test(全局自测试)"和"Local self test (本地自测试)"两种测试模
式:
--> "Gloable self test(全局自测试)",连接模式如下图:

如上图所示,这种测试模式需要总线上有节点进行应答,即发送数据成功后,它才会把刚刚发
送出去的数据接收进来,若是接收中断被使能,则会和收到正常的CAN数据一样,产生接收中断
,提醒CPU来读数据。当然,相应的滤波设置要做好,
具体设置方法,就是在发送的时候,"CANxCMR"寄存器不再置位"TR"位,来提醒CAN控制器发送
数据,而是置位"SRR"位来提醒CAN控制器发送数据。 --> "Local self test (本地自测试)",连接模式如下图:

如上图所示,这种测试模式是不需要总线上有节点进行应答的,只要发送出去,CAN控制器不去理
会总线上是否有节点收到信息,而是直接将发送的数据取回来放到接收buffer内。
注意:由于不需要节点响应,所以必须要将CAN high与 CAN low的线通过一个终端匹配电阻给连接
起来。
具体设置方法,比"全局自测试"多一个步骤,即在CAN控制器进入复位模式后,将"CANxMod"寄存
器的"STM"置位,然后按照"全局自测试"发送方法发送数据,就可以实现自收自发了。 至此,记录完毕。 记录时间:--
记录地点:深圳WZ
LPC1769 CAN的自测试模式的更多相关文章
- MEMS陀螺仪(gyroscope)的工作原理
传统的陀螺仪主要是利用角动量守恒原理,因此它主要是一个不停转动的物体,它的转轴指向不随承载它的支架的旋转而变化. 但是MEMS陀螺仪(gyroscope)的工作原理不是这样的,因为要用微机械技术在硅片 ...
- saltstack其他运行模式
除了常规的运行模式外,salt还有几种运行模式 salt-call --local可以直接在minion上自执行,多用于本机自测试,此方式几乎不用,知道即可 [root@linux-node2 ~]# ...
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...
- MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息
MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...
- MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信
MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式和在WPF中的实现(二)数据绑定
MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
随机推荐
- STL基础
vector: 1.头文件#include<vector> 2.声明vector对象,vector<int> vec; 3.尾部插入a:vec.push_back(a); 4. ...
- Laravel与Repository Pattern(仓库模式)
为什么要学习Repository Pattern(仓库模式) Repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处: 把数据处理逻辑 ...
- 利用sharding-jdbc分库分表
sharding-jdbc是当当开源的一款分库分表的数据访问层框架,能对mysql很方便的分库.分表,基本不用修改原有代码,只要配置一下即可,完整的配置参考以下内容: <?xml version ...
- [LeetCode] Nim Game 尼姆游戏
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- [LeetCode] Single Number III 单独的数字之三
Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...
- Ubuntu下git的安装与使用
Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...
- 如何在一台新电脑上配置JAVA开发环境
对于JAVA新手来说,刚开始要学JAVA,而自己的电脑上毫无与JAVA开发有关的环境,应该如何进行配置呢? (安卓新手也需要JAVA开发环境) 第一步,下载.安装java JRE JRE (Java ...
- Mysql基本语句的总结
1---------------创建一个表------------------------------------ drop table if exists 表名 create table 表名( ...
- mac 多php版本安装
mac上自带又apache和php. 自带的php缺少一些扩展(freeType),安装起来因为mac本身有一些sudo su都不可触及的权限,所以决定不动系统本身php,再装一个新的php不同版本. ...
- 最全的 JavaScript 知识总结
来源于:http://gcdn.gcpowertools.com.cn/showtopic-28404-1-3.html?utm_source=gold.xitu.io&utm_medium= ...