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.

[参考译文] TMS320F280039C:MCAN Rx 中断无法正常工作、但 Tx 正在正常工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1510779/tms320f280039c-mcan-rx-interrupt-not-working-but-tx-is-working

器件型号:TMS320F280039C

工具/软件:

1.我有一个自定义的引导加载程序,我正在使用闪存 API 将新的应用程序代码加载到闪存(OTA)中。
2.成功加载应用程序代码后,代码跳转到应用程序的起始地址,以便开始执行应用程序  
3.在将近1700次 OTA 尝试中、我发现7次尝试、其中应用程序开始运行 MCAN Rx 中断不起作用、但 Tx 正常。  
4.这里的主要问题是,如果我做了上电复位没有再次加载应用在该尝试中,然后问题得到解决, Rx 中断开始工作。  
5.我在跳转到应用程序之前在引导加载程序中禁用 MCAN 中断、然后再次启用该中断。

可能的原因是什么  
 

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

    您好、Tanmay、

    您是否能够在 OTA 尝试失败的情况下检查 MCAN 寄存器?  或者、您是否可以在 OTA 尝试失败时放置 ESTOP0或断点、以便通过 Code Composer 和仿真器显示 MCAN 寄存器内容?

    此致、

    Joseph

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

    您好、Joseph:   

    该 PCB 中没有调试器。 我将尝试直接在 CAN 总线上发布 MCAN 寄存器。 您能帮您解决直接攻击哪些寄存器的问题吗?

    此致
    Tanmay

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

    您好、Tanmay、

    请检查 MCAN 位时钟源配置寄存器 CLKSRCCTL2。  对于中断状态、请检查 MCANSS_IRS、MCANSS_IES。  此外、监控错误计数器寄存器 MCAN_ECR、并检查协议状态寄存器 MCAN_PSR。  这些只是需要查看的最小寄存器、还会检查其他配置寄存器、以确保将所配置的内容写入 MCAN 寄存器。

    此致、

    Joseph

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

    您好、Joseph:

    我试图调试和以下是我的意见..
    1.从引导加载程序跳转到应用程序之前.. 我正在禁用所有中断、似乎在此期间引导加载程序的其中一条 CAN 消息存储在缓冲器中而不是清除。  
    2.我正在引导加载程序和应用程序中将 CAN 邮箱1初始化为不同的 CAN ID。
    3.我调试并发现在新的数据寄存器 MCAN_NDAT1中输入应用程序时值为1 (第1个邮箱) 、而不发送应用程序的任何 CAN ID ...其中显示引导加载程序 msg 仍存储在缓冲器中  

    现在我想在应用程序中再次初始化 MCAN 时清除引导加载程序的所有缓冲区。 我该怎么办? 我只清理了新的数据寄存器,但没有帮助。 如何清除中断和所有缓冲区   

    谢谢。此致、
    Tanmay Parekh

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

    您好、Tanmay、

    只是想澄清,所以我们在同一页和道歉,我没有问这之前。  当您说您有自定义 MCAN 引导加载程序时、您是否参考自定义引导模式 #8 (CAN-FD/MCAN 引导模式)并使用闪存内核对代码进行编程?  这将告诉我们如何继续调试您的 idduse。

    谢谢、

    Joseph

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

    您好、Joseph:

    没有。。 我指的是我设计的引导加载程序、其中还有一个 TI 微控制器通过 CAN 将数据发送到引导加载程序设计的 TI MCU (这里是 MCAN)、我使用闪存 API 库在闪存存储器中写入通过 MCAN 发送的数据。 次级引导加载程序。 不使用任何内置的 TI 引导模式

    谢谢、
    Tanmay

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

    您好、Tanmay、

    感谢您的澄清。  您是否正在使用 TX 缓冲器发送邮箱?  在我们的勘误表中、有一条有关 MCAN 的已知公告:

    此致、

    Joseph