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.

[参考译文] SK-AM62A-LP:MCU-mCAN CAN't no receive data from CAN Box

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1310894/sk-am62a-lp-mcu-mcan-can-t-no-receive-data-from-can-box

器件型号:SK-AM62A-LP
主题中讨论的其他器件:SysConfig

Flollow 情况:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1310883/sk-am62a-lp-mcan-mcan_loopback_interrupt-can-t-boot-up

I 端口  

examples\drivers\mcan\mcan_loopback_interrupt\am62ax-sk\mcu-r5fss0-0_freeRTOS

至  

examples\drivers\ipc\ipc_rpmsg_echo_linux\am62ax-sk\mcu-r5fs0-0_freeRTOS

这样我就可以调试 CAN,调试使用 CAN1,pinmux 正确,但我发现无法从 CAN Box 接收数据

root@am62axx-evm:/opt/edgeai-gst-apps# devmem2  0x0408403C
/dev/mem opened.
Memory mapped at address 0xffff9954b000.
Read at address  0x0408403C (0xffff9954b03c): 0x00010000
root@am62axx-evm:/opt/edgeai-gst-apps# devmem2  0x04084040
/dev/mem opened.
Memory mapped at address 0xffff8ef1f000.
Read at address  0x04084040 (0xffff8ef1f040): 0x00050000
root@am62axx-evm:/opt/edgeai-gst-apps# 

mcan_loopback_interrupt_main 代码为:

void ipc_rpmsg_echo_main(void *args);
void mcan_loopback_interrupt_main(void *args);

void freertos_main(void *args)
{   mcan_loopback_interrupt_main(NULL);
    ipc_rpmsg_echo_main(NULL);

    vTaskDelete(NULL);
}

e2e.ti.com/.../0763.mcan_5F00_loopback_5F00_interrupt.c

当我向 mcan (soc)发送数据时、CAN 框通知发送失败、所以 CAN 有问题

并且 ISR 没有 IRQ 更新

[MCAN] Loopback Interrupt mode, application started ...
configParams 0 2 5 7 0 2 3 1!!
[MCAN] Wait for Rx 1completion, application started ...

您可以查看我的代码、以了解有关  

/*    if (TRUE == enableInternalLpbk)
    {
        MCAN_lpbkModeEnable(gMcanBaseAddr, MCAN_LPBK_MODE_INTERNAL, TRUE);
    }*/

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

    您好!

    能否详细介绍一下已连接的硬件设置和引脚?

    要在 AM62A SK 上测试 MCAN、 我们使用 AM62A 上的 CAN-FD 控制器和1个外部 CAN 收发器、这完成了 CAN 总线上的一个节点。 如下图所示、将 CAN 收发器连接到 AM62A:



    然后、收发器的 MCAN_H 和 MCAN_L 引脚可连接至 CAN 转 USB 连接器、以通过 PC 发送/接收数据。

    此致、
    阿帕拉纳

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

    硬件连接图

    _H _L 连接至 USBCANFD U200u 的 CAN 盒

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

    您好!  

    在 mcan_loopback_interrupt.c 中所做的代码更改看起来正确。

    请参阅以下文档:

    1) 1)探测引脚以消除任何与硬件相关的故障。  

    2) 2) 确保 使用的 MCU_MCAN 实例与在 syscfg 中设置的实例相同。

    此致、  
    阿帕拉纳

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

    1:我认为外围电路没有问题

    对于 Rx、我可以为 PC CAN 接线盒接收信号、

    2.关于 pinmux,我添加了打印,还可以

    适配器地址正确,我使用 MCU mcan1

    #define APP_MCAN_BASE_ADDR (CONFIG_MCAN1_BASE_ADDR)
    #define APP_MCAN_INTR_NUM (CONFIG_MCAN1_INTR)

    #define CONFIG_MCAN1_BASE_ADDR (CSL_MCU_MCAN1_MSGMEM_RAM_BASE)
    #define CONFIG_MCAN1_INTR (46U)

    #define CSL_MCU_MCAN1_MSGMEM_RAM_BASE (0x4e10000UL)

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

    1:我认为外围电路没有问题

    对于 Rx、我可以为 PC CAN 接线盒接收信号、

    2.关于 pinmux,我添加了打印,还可以

    适配器地址正确,我使用 MCU mcan1

    #define APP_MCAN_BASE_ADDR (CONFIG_MCAN1_BASE_ADDR)
    #define APP_MCAN_INTR_NUM (CONFIG_MCAN1_INTR)

    #define CONFIG_MCAN1_BASE_ADDR (CSL_MCU_MCAN1_MSGMEM_RAM_BASE)
    #define CONFIG_MCAN1_INTR (46U)

    #define CSL_MCU_MCAN1_MSGMEM_RAM_BASE (0x4e10000UL)

    上次更新:

    当 Canbox PC 发送 canfd 数据到电路板,它有 ISR,我打印 ISR 状态  

    我在 CAN Box 上的设置正确吗?

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

    您好!  

    MCAN 配置模板文件不包含 将十进制值转换为十六进制值的代码。 请更新  mcan_config.c.xdt  生成 PMBus 文件。  

    %%{
        let module = system.modules['/drivers/mcan/mcan'];
    %%}
    /*
     * MCAN
     */
    /* MCASP Default Bit timing Parameters */
    MCAN_BitTimingParams gMcanBitTimingDefaultParams =
    {
        .nomRatePrescalar   = 0x`module.$static.nomRatePrescalar.toString(16).toUpperCase()`U,
        .nomTimeSeg1        = 0x`module.$static.nomTimeSeg1.toString(16).toUpperCase()`U,
        .nomTimeSeg2        = 0x`module.$static.nomTimeSeg2.toString(16).toUpperCase()`U,
        .nomSynchJumpWidth  = 0x`module.$static.nomSynchJumpWidth.toString(16).toUpperCase()`U,
        .dataRatePrescalar  = 0x`module.$static.dataRatePrescalar.toString(16).toUpperCase()`U,
        .dataTimeSeg1       = 0x`module.$static.dataTimeSeg1.toString(16).toUpperCase()`U,
        .dataTimeSeg2       = 0x`module.$static.dataTimeSeg2.toString(16).toUpperCase()`U,
        .dataSynchJumpWidth = 0x`module.$static.dataSynchJumpWidth.toString(16).toUpperCase()`U,
    };


     mcan_config.c.xdt  文件位于以下路径中:  {MCU+SDK}/source/drivers/.meta/mcan/templates.  更新文件后、重新启动 SysConfig 工具、可以正常运行。

    请告诉我、该解决方案是否适合您。

    此致、
    阿帕拉纳

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

    更新了 mcan_config.c.xdt  到{ MCU+SDK}/source/drivers/.meta/mcan/templates/mcan_config.c.xdt  

    make -j、更新 mcu_plus_sdk_am62ax_08_06_00_18\examples\drivers\ipc_rpmsg_echo_linux\am62ax-sk\mcu-r5fss0-0_freertos\ti-arm-clang\am62a-mcu-r5f0_0-fw 至/lib/firmware/pdk-ipc/am62a-mcu-r5f0_0-fw

    在另外一边、我打印 CAN 的参数、

     

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

    您好!  

    是否有任何有关此问题的更新?
    您是否能够解决该问题或需要任何帮助?

    此致、
    阿帕拉纳

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

    您好

    很抱歉回复晚了,还没有解决这个问题。

    在我们的测试中、我们尚未能够接收到电路板上的数据并保持问题的原始状态

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

    您好!  

    很遗憾听到这个消息!

    不太清楚为什么未在此处建立外部 MCAN 连接。  
    如果有任何相关信息、我会向您提供最新信息。

    此致、
    阿帕拉纳

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

    您好!  

    我已经测试了外部环回示例(使用不同的收发器器件)、并在对该示例进行了一些修改:  
    examples\drivers\mcan\mcan_loopback_interrupt\am62ax-sk\mcu-r5fss0-0_freeRTOS
    它对我有用。  

    我已使用 MCU_MCAN0实例在外部环回设置中测试了 MCAN。 我已正确设置 MCAN 位时序参数(比特率和采样点)。

    要计算采样点、请使用以下公式:

    采样点(%)=(1 + TSEG1)/(1 + TSEG1 + TSEG2)

    参考代码:

    e2e.ti.com/.../5710.empty_5F00_am62ax_2D00_sk_5F00_mcu_2D00_r5fss0_2D00_0_5F00_freertos_5F00_ti_2D00_arm_2D00_clang.zip

    硬件设置图像:



    输出图像:



    此致、
    阿帕拉纳