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.

[参考译文] TMS320F280023C:有关 CAN 错误帧的问题

Guru**** 2387080 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1063348/tms320f280023c-question-about-can-error-frame

器件型号:TMS320F280023C

尊敬的团队:

当我的客户在两个80引脚和60引脚芯片(CAN:GPIO4、GPIO5)上测试 CAN_ex1_loopback 例程时、他们发现屏蔽以下语句后、该程序可以在80引脚芯片上正常运行、但在60引脚芯片上无法正常运行。 发生错误帧。

但是、如果使用原始程序、两个电路板通常都可以发送 CAN 消息、而不会出现错误帧。

// txMsgData[0] = 0x01;
// txMsgData[1] = 0x02;

修改例程的位置:

1.在 board.c 中修改:CAN 引脚+发送8字节+ 250K 波特率。

2.芯片使用内部晶体振荡器 OSC2、配置如下:

//*****************************************************************************
//
// Defines related to clock configuration
//
//*****************************************************************************
//
// 20MHz XTAL on controlCARD. For use with SysCtl_getClock().
//
#define DEVICE_OSCSRC_FREQ          10000000U

//
// Define to pass to SysCtl_setClock(). Will configure the clock as follows:
// PLLSYSCLK = 20MHz (XTAL_OSC) * 30 (IMULT) / (2 (REFDIV) * 3 (ODIV) * 1(SYSDIV))
//

#define DEVICE_SETCLOCK_CFG          (SYSCTL_OSCSRC_OSC2 | SYSCTL_IMULT(30) | \
                                      SYSCTL_REFDIV(1) | SYSCTL_ODIV(3) | \
                                      SYSCTL_SYSDIV(1) | SYSCTL_PLL_ENABLE | \
                                      SYSCTL_DCC_BASE_0)

//
// 100MHz SYSCLK frequency based on the above DEVICE_SETCLOCK_CFG. Update the
// code below if a different clock configuration is used!
//
#define DEVICE_SYSCLK_FREQ          ((DEVICE_OSCSRC_FREQ * 30) / (1 * 3 * 1))


//
// 25MHz LSPCLK frequency based on the above DEVICE_SYSCLK_FREQ and a default
// low speed peripheral clock divider of 4. Update the code below if a
// different LSPCLK divider is used!
//
#define DEVICE_LSPCLK_FREQ          (DEVICE_SYSCLK_FREQ / 4)

此外、测试发现在另一个48引脚芯片上测试代码的效果更差、偶尔只有一帧正确的消息。

这是为什么?

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的提问、下面以粗体突出显示的行动项目:

    从软件的角度来看、三个芯片(80、60和48)之间应该没有区别。

    1.您能否提供有关软件中3个芯片之间发生了哪些变化的信息?

    基本上、如果三个芯片之间的软件没有变化、那么这很可能是一个硬件问题、这与每个电路板上的不同东西相关、这些东西也连接到 GPIO4/GPIO5引脚。

    2.您能要求获得全部三个芯片板上 GPIO4和 GPIO5引脚的原理图(80、60、48)吗?

    请注意:我将在接下来的两周内休假、直到2022年1月3日返回为止、我将无法提供支持。

    此致、

    Vince