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: CAN 波特率

Part Number: TMS320F280049

你好,我最近在调试F280049CAN通信的时候,为什么相同的程序在开发板上波特率是500k,换到我们自己的板子上就成了100k呢?我们的板子外部晶振也是20M的,用的是GPIO30、31来作为收发引脚的。两块板子程序配置出了引脚不一样,其他都是一样的,还有什么因素会影响实际波特率吗?

  • 调试时发现程序在开发板上运行时CANABCLKSEL寄存器值为0(此时时钟频率为100M),但是在我们自己板子上时该寄存器值为1,此时时钟为20M,最终导致CAN波特率不一样。程序中没有对这个寄存器进行配置,为什么在不同的板子上运行时值不一样呢?

  • 你好,你是说在代码没有对CANABCLKSEL寄存器进行配置的情况下,运行程序会自动将CANABCLKSEL寄存器的值修改为0或者1?

  • 从目前调试情况看新的DSP CANABCLKSEL寄存器默认是1,而且对于CANABCLKSEL,只要程序中对其配置一次0或者1,然后删除该配置重新上电烧写程序,该位会一直维持上次的配置不变。但是CANBBCLKSEL不会出现这种情况,只要程序中不对CANBBCLKSEL进行配置,该位就等于0,这与手册上描述是一致的,但CANABCLKSEL貌似与手册描述不一致。

  • 抱歉我也没有找到其他关于这两个寄存器位的说明,目前只能按照你的理解去设置程序。

    但是你提到在开发板上可以正常运行,在你自己的板子上会出问题,这点也挺奇怪的

x 出现错误。请重试或与管理员联系。