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.

[参考译文] LAUNCHXL-F280049C:同时使用 CANA 和 CANB、CANA 将会出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/905599/launchxl-f280049c-use-cana-and-canb-together-cana-will-have-error

器件型号:LAUNCHXL-F280049C

您好专家、

我的客户需要在 F280049上使用2个 CAN 模块、但它们会偶尔发生数据更改。

他们使用 CANA 继续发送0101010101010101、我只使用 PC 发送数据02020202020202到 CANB 1000次、间隔为10ms。 数据速率均为500kbps。

但是、C2000 CANA 发送的数据变化率很高、我会记录 CAN 分析仪的数据、这可以支持2个 CAN。

通道0 (PC)<-> CANA (GPIO32 GPIO33)、通过 F280049 Launchpad 上的 CAN 收发器实现。

通道1 (PC)<-> CANB (GPIO58 GPIO59)、通过另一电路板上的 CAN 收发器。

分析如下、并随附了记录的 excel.e2e.ti.com/.../HYNN1.xlsx

您可以看到通道0接收到的数据已被通道1发送的数据更改。

但 CANA 和 CANB 寄存器都没有错误。

如果您需要、我可以通过电子邮件发送我测试的数据。 很容易重现。

我还更改了位时间、但也会重现相同的错误。

CAN_setBitRate (CANABSEADDR、100000000、500、10);
// CAN_setBitRate (CANABSEADDR、100000000、 500,000,20);
/* CAN B*/
//CAN_setBitRate (CANBBSEADDR、100000000、50000020);
CAN_setBitRate (CANBBSEADDR、100000000、 500,00010); 

您能不能指出为什么会发生这种情况?

BR

Emma

 

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

    尊敬的 Emma:

    在 CANA 始终处于传输模式且 CANB 刚刚接收数据的情况下、CAN 分析仪是否应该查看通道0 (CANA)的 TX 数据和通道1 (CANB)的 RX 数据?  我对所附的图表有点困惑。  看起来通道是切换的?

    谢谢、

    Joseph

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

    您好、Joseph、

    感谢您的回复。

    实际上、CANB 也会向 PC 发送数据、我只是从 PC 发送数据进行测试。

    [引用用户="Joseph Casuga"]似乎信道被切换了?

    客户和我也很困惑、为什么 CANB 接收到的数据会影响 CAN 发送数据?

    CANA 和 CANB 的 RAM 或 FIFO 是否可以重叠?

    我将通过电子邮件向您发送测试代码。

    BR

    Emma

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

    尊敬的 Emma:

    以下是我理解的测试目的和设置:

      CANA 始终在传输数据。  在这种情况下、始终发送数据  0101010101010101。 CANA 连接到 CAN 分析仪的 CH0

      -PC 正在发送和接收。  在这种情况下、始终发送数据   0202020202020202。

       CANB 正在接收数据。   CANB 连接到 CAN 分析仪的 CH1

    所有三个节点(CANA、CANB 和 PC/CAN 分析仪)均通过 CANBUS 进行连接。  您能否确认这是否正确?

    如果这确实是目的、并且测试用例写入正确、则 CANB 不应发送任何数据。  我在处理您发送的链接时遇到问题、并收到错误消息、指出找不到文件。  您能否向我发送 F280049上运行的 CAN 测试用例?

    谢谢。

    Joseph

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

    您好 Joseph,

     感谢你的善意帮助。

    您的理解是正确的。 我禁用了 CAN TX 功能。 您可以在函数中找到这些代码

    void SlaveCan_sEncodeCanTxData (uint16 uiSendLen)

    //uiMailBoxCnt++;
    //uiMailBoxCnt = uiMailBoxCnt%6;//¶ÔÖÐλ»úÐèÒªµÄÓÊÏä¹ý¶à£¬Ö»ÄÜÕâÑù·ÖÅäÁË
    // CANMessageSet (CANAASEADDR、uiLoopCnt+11、&TXCANMessage_SlaveCan、MSG_OBJ_TYPE_TX);
    // CANMessageSet (CANAASEADDR、uiLoopCnt+11、&TXCANMessage_SlaveCan、MSG_OBJ_TYPE_TX);
    // CANMessageSet (CANBBSEADDR、uiLoopCnt+27、&TXCANMessage_SlaveCan、MSG_OBJ_TYPE_TX); 

    仍然是类似的问题。

    您能告诉我为什么会发生这种情况。

    BR

    Emma

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

    您好 Joseph

    有更新吗?

    BR

    Emma