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.

[参考译文] TDA4VL-Q1:MCAL 中 MCAN 模块的部分问题确认

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1506066/tda4vl-q1-partial-problem-confirmation-of-mcan-module-in-mcal

器件型号:TDA4VL-Q1

工具/软件:

您好、 团队、

MCAL 版本10.1

有几个 MCAN 模块问题需要咨询。

在 CAN 模块 MCAN_INIT 函数中、下图中红色框中的寄存器是 j721s22 Registers_Public_ 20250116文件中的保留位。

您能看一下这些寄存器的功能吗?

2、

在函数 CAN_writeGetFreeMsgObj 中、当确认发送 BF 是否空闲时、检查 TXBCF (取消发送完成)寄存器而不是 TXBRP 寄存器。

在该 函数中确定寄存器的注意事项是什么

谢谢  

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

    您好:

    1)我提出了内部 TT jira.itg.ti.com/.../MCAL-30470 来解决这个问题。

    2)我们在这里检查是否有任何取消设置由于某些公共汽车关闭或任何故障情况。

    Uint32 MCAN_txBufCancellationStatus (Uint32 baseAddr)

    返回(HW_RD_REG32 (MCAN_CfgAddr (baseAddr)+ MCAN_TXBCF));
    }

    如果发生总线关闭且 CAN 总线已恢复、则可能会设置取消以清除先前的事务并重新开始。 这就是进行此检查的原因。

    此致

    Tarun Mukesh

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

    感谢您的答复。

    关于问题2)、我们需要确认在此处调用 MCAN_txBufCancelationStatus 后、已清除的 canTxStatus 是本地变量。

    如果我们不清除 CANcontroller -> canTxStatus [loopCnt]?

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

    是的、这是真的。 我将与内部团队核实一次、并为此提交工单。

    此致

    Tarun Mukesh

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

    实际上、在 can_mcan_BusOffProcess API 中、我们做到了这一点  


    /*清除传输状态待处理消息*/
    CANcontroller->canTxStatus[TxStatusCount]= 0;

    因此,在这个 API  can_writeGetFreeMsgObj,它只是 检查取消状态,在 if 条件内不做任何事情。

    此致

    Tarun Mukesh

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

    谢谢、明白了。

    我还有一个问题要问

    在 can_mcan_SusOffProcess 函数中、需要调用 MCAN_setOpMode (baseAddr、MCAN_OPERATION_MODE_SW_INIT);?

    该寄存器需要在 TRM 手册中设置。

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

     can_mcan_BusOffProcess 函数中的 Sry 不在 can_mcan_SusOffProcess 函数中。

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

    您好:

    在总线关闭过程中、我们不需要此 API 调用、但如果您从总线关闭序列中恢复、则应使用它。 目前、MCAL 没有在驱动程序中写入任何恢复机制、而是依靠应用程序从 总线关闭中恢复、然后可以启动新序列。

    此致

    Tarun Mukesh

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

    明白了 。谢谢