• 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"置位,然后按照"全局自测试"发送方法发送数据,就可以实现自收自发了。
    
        至此,记录完毕。
    
    记录时间:2016-12-5
    记录地点:深圳WZ
  • 相关阅读:
    SQL面试题---比较上午vs下午的交易量
    SQL---子查询(subquery)
    SQL创建语句
    数据结构---array与python list的区别
    对比SQL查询语句与Pandas语法(SQL vs Pandas)---基础篇
    python解析图片二维码
    更改mysql数据库主键自增时报错ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'
    Linux添加vip快捷方式
    mysql8.0.23克隆插件的实践
    gtid多源复制Last_Errno: 1007故障处理
  • 原文地址:https://www.cnblogs.com/ChYQ/p/6133242.html
Copyright © 2020-2023  润新知