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.

[参考译文] TCAN4550:TCAN4550器件中断配置问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1291306/tcan4550-tcan4550-device-interrupt-configuration-problem

器件型号:TCAN4550

大家好!

我正在尝试为 TCAN 器件配置中断。 目前、我的程序只执行针对 TCAN (演示代码中提供的 Init_TCAN 函数)的配置。 我意识到运行代码后、一段时间后、将设置 CANto 中断、并且 TCAN 升压模块上的蓝色 LED 亮起。 我希望对其进行配置、以便可以忽略 Canto 中断。 我将使用以下代码来实现这一点。

TCAN4x5x_Device_Interrupt_Enable dev_ie = {0}; // Initialize to 0 to all bits are set to 0.
dev_ie.CANTOEN = 1;
CHECK_AND_HANDLE_ERROR(TCAN4x5x_Device_ConfigureInterruptEnable(&hspi2, &dev_ie));	  // Disable all non-MCAN related interrupts for simplicity
  

这是配置中断寄存器的正确方法吗? 虽然很简单、但我希望确保我理解正确、这样以后在开发过程中就不会遇到问题。

谢谢!

 

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

    尊敬的 Nivant:

    演示代码的 CANTO (CAN 超时)是 中断寄存器中的 CANSLNT (CAN 静默)位。  该位表示大约1秒内没有 CAN 活动、这可能表示存在错误、例如线束损坏。  

    当您通过 SPI 读取寄存器时、无法防止在寄存器0x0820中设置该位。  但是、您可以"屏蔽"或防止其导致 nINT 引脚上的状态更改。  这通过将中断使能寄存器(0x0830[10])的 CANSLNT 位设置为"0"来完成。  

    默认情况下、所有中断都启用且位值为"1"、因此、您需要通过向寄存器0x0830中的相应位写入"0"来禁用任何不希望反映在 nINT 引脚上的中断。

    通过写入"DEV_IE.CANTOEN = 1;"、您实际上是使 CANTO 位反映在 nINT 引脚上、而演示代码则禁用了所有其他中断。

    因此您需要设置 CANTOEN = 0。

    此致、

    乔纳森