zoukankan      html  css  js  c++  java
  • ECAN模块学习

    ## 前提说明:

      本实验基于28335进行

    ## 难点1:ECAN模块数据发送

      简述:CAN通过邮箱进行数据发送,一次可以发送8个字节的数据。

          在DSP28335的ECAN模块中将这8个字节数据分为DL(低4字节) 和 DH(高4字节)

          可以在程序中对其进行先后赋值,如:

    ECanbMboxes.MBOX0.MDL.all = 0x0000001;//
    ECanbMboxes.MBOX0.MDH.all = 0x0000002;//

    那么此时数据如下图所示(这里的高4字节和低四字节是反的,这个仍然需要进一步研究):     

    从图中可以看出当DBO = 0时,8个字节正常赋值。                                              

                                                                                           

    第二种情况,当DBO = 1时,如下图所以:

                                                                                             

    总结:DBO = 0,假设此时MDL = 0x00000001,那么发送的时候MDL就是0x00000001;

         当DBO = 1,那么发送的时候MDL就是0x10000000;

              

     ## 难点2:ECAN模块ID设置

      简述:CAN通讯中有好几种类型的帧数据,这里只说一种--------》数据帧

        数据帧根据ID长度不同又分为

          1. 标准帧

            - ID长度为11位

          2. 扩展帧

             - ID长度位28位

        说明:扩展帧如果要在程序中使用的话需要将MSGID的IDE位置为1,才能起效,否则扩展帧无效,请参考图:

                                                              

     

                                                                         

    ## ECAN 模块学习总结:

    ### ECAN发送数据程序配置步骤:

      1. 配置GPIO

        2. 配置邮箱

            2.1 邮箱ID配置

            2.2 邮箱类型配置(是作为发送邮箱还是接收邮箱)

            2.3 邮箱使能

            2.4 邮箱单次发送的数据量DLC(如:8个字节)

            2.5 邮箱是否为远程帧设置

            2.6 邮箱数据填充

              如果该邮箱为发送邮箱的话,需要提前准备数据(MDL,MDH)

              补充这里的MDL,MDH设置之后,发送出去的数据用USB-CAN适配器检测到的数据是MDL,和MDH相反的,这个

              仍然没有找出原因,需要注意一下。

           2.7 邮箱中断掩码设置

            

       3. 波特率设置

                需要按照一定的顺序开启和关闭CCR和CCE,如下图所示:

                                         

        4. ECAN模式配置

          如:自测模式,正常模式

        5. 开始发送数据  

          5.1 邮箱发送使能

            ECanbRegs.CANTRS.bit.TRS0 = 1;//邮箱0发送使能

          5.2 等待发送完成标志位被置1

            while(ECanbRegs.CANTA.all != 0x00000001 ) {}  // Wait for all TAn bits to be set..
         5.3 清除标志位
            ECanbRegs.CANTA.all = 0x00000001;//0x0000FFFF;   // Clear all TAn    清除所有TA

        

        

      

    Fist day
  • 相关阅读:
    Web Api 模型绑定 二
    C#关键字
    ASP.NET Core MVC 过滤器
    EF性能优化篇一
    Linq
    HTTP协议
    Linux进程管理(11)
    Linux网络配置(10)
    Django模板修炼
    递归
  • 原文地址:https://www.cnblogs.com/NULL-ROOT/p/11727103.html
Copyright © 2011-2022 走看看