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.

[参考译文] AWR2944EVM:mcan_external_loopback 示例问题

Guru**** 2531950 points
Other Parts Discussed in Thread: MMWAVE-MCUPLUS-SDK

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1563442/awr2944evm-mcan_external_loopback-example-issue

器件型号:AWR2944EVM


工具/软件:

大家好、团队

我尝试 从  AWR294x MCU+ SDK  10.01.00.04 (MMWAVE-MCUPLUS-SDK 4.07.01.03) 运行 mcan_external_loopback 示例。
我已 连接 CAN_A 和 CAN_B 信号对、如示例说明中所述。
我在两个内核 r5fss0_0 和 r5fss0_1 上加载程序 并运行它。

配置 CAN STB 引脚通过 PMIC 完成、不会出现错误。

程序 Tx 侧执行 (r5fss0_1) 时、会卡 在信标挂起状态
我发现这是因为 MCAN 
在 ISR 中未返回中断状态 MCAN_INTR_SRC_TRANS_COMPLETE。


我可以看到 ISR 正在调用多次、并具有以下中断状态:

MCAN_INTR_SRC_PROTOCOL_ERR_ARB   /**<仲裁段中断中的协议错误*/
MCAN_INTR_SRC_PROTOCOL_ERR_DATA/**<  数据段中断中的协议错误*/
MCAN_INTR_SRC_ERR_PASSIVE           /**<错误无源中断*/
MCAN_INTR_SRC_WARNING_STATUS       /**<警告状态中断*/

Rx 侧的 ISR (r5fss0_0) 根本无法控制。
我运行了带有中断和轮询的内部 MCAN 环回示例、成功完成了。
变速器故障的原因可能是什么?

此致、

Dmitry

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

    尊敬的 Dmitry:

    您是否使用 SDK 中提供的默认示例或对代码进行了任何修改? 另外、请检查一次硬件连接。

    此致、

    Shruti

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

    尊敬的 Shruti:

    起初使用了默认示例、但当失败时、我修改了代码以尝试标准 CAN 接口。
    我只对 
    App_mcanConfig 函数进行了以下设置

     

    /* CAN FD Mode and Bit Rate Switch Enabled */
    initParams.fdMode = FALSE;
    initParams.brsEnable = FALSE;

    并将 Tx msg 格式更改为使用 8 字节 DLC:

    static void App_mcanConfigTxMsg(MCAN_TxBufElement *txMsg)
    {
        uint32_t i;
    
        /* Initialize message to transmit */
        MCAN_initTxBufElement(txMsg);
        /* Standard message identifier 11 bit, stored into ID[28-18] */
        txMsg->id  = ((APP_MCAN_STD_ID & MCAN_STD_ID_MASK) << MCAN_STD_ID_SHIFT);
        txMsg->dlc = MCAN_DATA_SIZE_8BYTES; /* Payload size is 64 bytes */
        txMsg->fdf = FALSE; /* CAN FD Frame Format */
        txMsg->xtd = FALSE; /* Extended id not configured */
        for (i = 0U; i < gMcanTxDataSize[MCAN_DATA_SIZE_8BYTES]; i++)
        {
            txMsg->data[i] = i;
        }
    
        return;
    }

    但结果与 CAN FD 案例相同 — 传输失败。

    对于硬件、我刚刚将 CANA_H 连接到 CANB_H、将 CANA_L 连接到 CANB_L

    我还测试了 mcan_external_read_write 示例与标准 CAN 修改、如上所述(我没有 FD 适配器)、它成功执行。

    此致、

    Dmitry

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

    尊敬的 Dmirty:

    您能否将所有三个引脚(即高电平,低电平和接地)连接到相应的引脚? 此外、请勿对默认代码进行任何修改、一旦生效、您还可以测试您的修改。

    此致、

    Shruti

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

    尊敬的 Shruti:

    我恢复了原始代码并连接了接地。
    但结果是一样的

    卡在 信标处、挂起

    此致、

    Dmitry