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.

[参考译文] AM2634-Q1:AM2634 MCAL CAN 模块中断模式问题:首次数据传输后无法进入中断

Guru**** 2538950 points
Other Parts Discussed in Thread: AM2634

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1455224/am2634-q1-am2634-mcal-can-module-interrupt-mode-issue-unable-to-enter-interrupt-after-first-data-transmission

器件型号:AM2634-Q1
主题中讨论的其他器件:AM2634

工具与软件:

我目前使用 AM2634开发板并使用 MCAL CAN 模块。 最初、我使用轮询模式、它运行起来没有问题。 稍后、我想尝试中断模式、但在执行以下代码以发送数据后、它第一次只成功发送数据、无法进入中断处理程序。 您能否帮助我确定我的配置中可能缺少什么? 谢谢你。

此外、我使用 MCAL 版本 MCAL_AM263X_10.00.00。

MCAN 的配置如下所示。

下面是我的代码:

void CanExample_InterruptConfig(void)
{
    vimInit();
    Vim_IntCfg Can_IntCfg;
    Can_IntCfg.map = VIM_INTTYPE_IRQ;
    Can_IntCfg.type = VIM_INTTRIGTYPE_LEVEL;
    Can_IntCfg.intNum = MCAN0_MCAN_LVL_INT_0;

    Can_IntCfg.intNum = MCAN0_MCAN_LVL_INT_0;    
    Can_IntCfg.handler = Can_0_Int0ISR;
    Can_IntCfg.priority = VIM_PRIORITY_0;
    vimRegisterInterrupt(&Can_IntCfg);
}

 Mcu_Init(&McuModuleConfiguration);
    Mcu_InitClock(McuConf_McuClockSettingConfig_McuClockSettingConfig_MCAN0);
    while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() )
    {
        /* wait until all enabled PLLs are locked */
    }
	Mcu_DistributePllClock();
	Port_Init(&PortConfigSet_0);
	Can_Init(&CanConfigSet);
   
    Can_SetControllerMode(0, CAN_CS_STARTED);
	CanExample_InterruptConfig();
    vimEnableInterrupt(MCAN0_MCAN_LVL_INT_0);
	
	// Send data 
	while(1){
        
        while(writerCounter < 100000){
            writerCounter++;
        }
        writerCounter = 0;
        ret = Can_Write(CAN_HTRH_0,&pdu);
    }

此外、我在运行时包含了一些寄存器值。 MCAN 中断似乎已启用并被触发。

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

    您好!

    请共享您生成的配置文件、以便我们在最后查看

    谢谢!
    Gunjan

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

    Gunjan、您好!  

    感谢您的答复。 附件是我使用 EB 的配置、包括生成的配置。 此外、我使用 MCAL 版本10.00.00。 谢谢你。

     e2e.ti.com/.../am263mcal10.zip

    此致、

    pH 曾

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

     Gunjan、您好!
    有更新吗?

    另外、当使用 GPT 模块时、我会遇到一种类似的情况、在 GPT 到期后、它会触发中断、但 CPU 不会跳转以执行中断处理程序、并将中断保持在挂起状态。
    感谢您的答复。
     

    此致、

    pH 曾

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

    我已经解决了这个问题。 我使用的是 TI Clang v4.0.0.LTS 编译器、当使用 VIM 驱动程序时、TI Clang 编译器无法应用任何优化。 否则、它会导致 VIM 驱动程序的调度程序进入错误。 此外、当我将编译器切换到 TI v20.2.7.LTS 时、可以使用优化。

    我不知道当使用 TI Clang 编译器时、无法对 VIM 驱动程序使用任何优化是否被视为错误。