This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049: F280049 DCAN寄存器版收发问题

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

你好!附件是我使用寄存器配置F280049 DCAN收发的工程,但是收发失败,监控寄存器没有数据,请帮忙分析一下原因,看看配置哪里出了问题,谢谢!

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "F28x_Project.h"
    #include "device.h"
    #include "math.h"
    ///////////DCan////////////////////////////
    typedef struct{
    Uint32 cob_id_ext:18;
    Uint32 cob_id:11;
    Uint32 rtr:1;
    Uint32 rsvd1:2;
    }CanFrameIdStr;
    typedef union{
    Uint32 frame_id;
    CanFrameIdStr strct;
    }CanFrameId;
    typedef struct{
    CanFrameId id;
    Uint8 len;
    Uint32 hdata;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 8204.F280049C_Template.zip附件是整个工程,盼望回复,谢谢!

  • 你好,具体是transmit还是receive的寄存器没有反应?

    一般这款芯片都是基于driverlib编写的,看寄存器的话得花点时间,你有大概的方向说明一下吗?

  • 你好!收发寄存都没有数据。我是想参照库函数版本完成DCAN数据的收发功能,用1-16号邮箱作为接收,17-32号邮箱作为发送。其中发送时要先查询邮箱是否可用,不需要等待发送,譬如:当前是想用17号邮箱发送先看看17号邮箱是否空闲如果空闲就直接发送,如果17号邮箱正忙就自加到18号邮箱以此类推。谢谢!

  • 7701.F280049C_Template.zip我对照手册发现了几个问题,并更新了代码,但是还是没能实现DCAN报文的发送和接收功能,请帮忙看看分析一下原因,谢谢!

  • 你好,因为没经手过这款芯片的DCAN寄存器方式编程,我将你的工程的关键代码发送到英文E2E论坛咨询了一下,但是对方也没给出具体的问题所在,但是给出了2点建议,你可以参考一下:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1026132/tms320f280049-configure-can-module-in-register-mode 

  • 好的,感谢。其实,硬件是没有问题的,通过库函数配置已经验证过没有问题,现在就是想通过寄存器来配置,可以跟英文E2E论坛人员沟通一下c200ware的demod都是库函数配置,能否把C200WARE里面的这些DEMO出个寄存器版本的,谢谢!

  • 其实有些模块是有寄存器版本的,比如SCI,寄l存器版本的例程可以在这个路径找到:C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f28004x\examples

    但是例程不多,而且没有CAN模块的,不知道后续会不会更新。