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.

[参考译文] AWRL6432:短接 CANH 和 GND 后、CAN 消息无法成功发送出去

Guru**** 2539500 points
Other Parts Discussed in Thread: AWR6443

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1495359/awrl6432-can-message-can-not-send-out-successfully-after-shorting-canh-and-gnd

器件型号:AWRL6432
主题:AWR6443 中讨论的其他器件

工具/软件:

尊敬的 TI 专家:

当我们对新产品进行 BUSOFF 恢复的 PV 测试时、我们发现 在短接 CANH 和 GND 后无法成功发送 CAN 消息

详细的测试用例如下:

1 发送包含 100ms 周期的诊断消息请求  

2 将 CANH 和 GND 短接大约 60s

3 检查应用程序消息和诊断消息是否已恢复  

结果:应用程序消息可以恢复、但诊断消息无法恢复。

我们使用 MCAL 和 MCAL 版本是“MCAL 和 REL_03.00.03.02_ENGINEER_RELEASE“。

我们在 Can_Write API 中添加了一些打印件、发现问题发生时所有 API 都被正确调用。

最后、我们在 can_mcanWriteTxMailbox 末尾添加打印、以检查 API MCAN_txBufAddReq 的 CAN ID 和状态  

 

当发生此问题时、ID 是我们的诊断 CAN ID、状态为 0。

我们的 diag CAN 邮箱配置如下:

CAN 控制器配置如下:

将配置更改为全 CAN 后、问题 似乎消失了。

但是还有其他一些问题、在消除短错误注入后、诊断 CAN 消息需要更多时间恢复才能发送。

因此、我们想知道 CAN 句柄类型是否存在一些限制、以及 在消除短错误注入后诊断 CAN 消息需要更多时间恢复才能发送的原因。

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

    嗨、永恒:

    感谢您发布有关 MCAL CAN 使用情况的问题。 我已经邀请了我们的一位 MCAL 专家来帮助您、但我也想问几个问题来收集更多信息。

    1. 您提到、有一条应用程序消息可以在您执行的第一次测试中正常恢复。 此应用消息是否也通过 CAN 发送、是否也定期发送?
    2. 您能否详细介绍一下您所做的似乎已解决问题的配置 — 即什么是完全 CAN?  
    3. 配置为全 CAN 后、在删除短错误注入后、诊断 CAN 消息恢复需要多长时间?

    可能影响时序的一点是 BUSOFF 恢复本身。 由于要求在恢复正常运行之前等待至少 128 次出现总线空闲条件、BUSOFF 恢复会导致一些固有延迟。  

    此致、

    Kristien

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

    尊敬的 Kristien:

    感谢您的答复。

    对于您的问题:

    1 是。 上述应用消息由 CAN 发送、消息周期时间为 10ms。

    2 全 CAN 和基本 CAN 如下快速短路。 Full-CAN  通常表示专用 ID CAN 邮箱配置。 但是、BASIC CAN 可以包含更多 CAN ID 或消息作为 FIFO。

    新增信息:从基本 CAN 更改为全 CAN 后、存在总线负载高时偶尔无法发送消息的问题。 不同之处在于、即使最后一条消息没有成功发送、Full-CAN 也可以恢复。 但是、basic-CAN 具有更好的实时性能、但是 不能 从 CANH 短接至 GND、除非电路板重新启动

    3 无法给出准确的值、因为时间还取决于实际 CAN 总线状态。 总线状态可能是“总线关闭“或不是、这可能导致 ECU 进入睡眠状态或保持活动状态。 一般而言、如果没有睡眠模式、则时间在 300ms 以内。

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

    嗨、永恒:

    应用是直接调用 CAN MCAL 模块、还是 CAN MCAL 之上有 CAN IF 堆栈、而应用是否调用上层栈 API?  

    可能是上层袋正在处理重传,在这种情况下,您必须在堆栈中查找重传处理。

    此致、

    Ajay

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

    尊敬的 Ajay:

    1 我们使用 Autosar 堆栈。 应用程序调用上层栈 API。

    2 我想不是。 因为我们不会为比 CANTP 更高的级别配置 Tx 确认通知。 如果在诊断响应丢失后停止诊断请求、can_write requset 就会打印一次。

    附加信息:在 can_mcanWriteGetFreeMsgObj() 中注释代码后、问题就会消失。

    但我很困惑。 因为我 在前面打印 can_mcanWriteGetFreeMsgObj() 的状态、并且状态为“正常“而不是“忙碌“。

    我仍然不明白为什么诊断消息有时无法成功发送、当它配置为全 CAN 时、甚至在我注释掉相同的“避免嵌套“代码后也无法成功发送。

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

    尊敬的 TI 专家:

    是否有任何更新?

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

    尊敬的 TI 专家:

    是否有任何更新?

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

    嗨、永恒:

    很抱歉耽误你的时间。

    由于即将到来的节假日、将需要一段时间到下周中才能重新开始。

    同时、您能否附上 Tresos 生成的完整配置文件。

    此致、

    Ajay

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

    e2e.ti.com/.../Can_5F00_PBcfg-copy.c

    e2e.ti.com/.../Can_5F00_Cfg.h

    尊敬的 Ajay:

    EB 配置对应于附件。 请注意、所有 Rx ID 均已更改为 0x7FF 以确保客户机密性。 如果您想进行测试、请随时调整 Mailbox CanHwFilterCode。

    此致、

    永恒

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

    尊敬的 Yongheng:

    我尝试使用 MCAL 软件包中的 CAN 示例重新生成相同的文件、在通过短接 CANH 和 GND 超过 60 秒来引入 BusOff 时没有看到任何问题。

    我可以看到、60 秒后、CAN 能够进行传输。

    请查找我用于测试的文件。 您可以通过在 MCAL 安装程序之上复制和替换这些文件来进行相同的测试。

    tidrive.ext.ti.com/.../d5129c6c-436e-4bfa-9e31-f1238075ec42

    密码:

    *BKBU8j2.

    是否可以尝试在应用程序上复制相同的配置并检查它是否解决了问题?

    此致、

    Ajay

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

    Ajay,上面的 tidrive 中的共享链接已过期,您是否可以在这里帮助更新和分享,谢谢。

    永恒

    请尝试使用 Ajay 的文件并在此处更新您的状态、谢谢。

    Andy

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

    您好、

    请查找新链接:

    tidrive.ext.ti.com/.../d5129c6c-436e-4bfa-9e31-f1238075ec42

    密码:

    *xGb69Rt

    此致、

    Ajay

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

    尊敬的 Ajay:

    很抱歉回复太晚了。 我想我会错过这个消息通知。

    对于该代码、主要变化仍然是时钟频率。 我稍后再试。

    但我想补充一些信息。 我们在前一年也在 AWR6443 MCAL 中遇到了这个问题。

    我们还对  can_mcanWriteGetFreeMsgObj 执行代码注释。

     

    此致、

    永恒

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

    尊敬的  Yongheng:

    您是否还可以更改“Autoretrasmission"配置“配置并告诉我这是否会改变您的行为?

    此致、

    Ajay

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

    尊敬的 Ajay:

    现在启用“Autoretrasmission"。“。 如果我们禁用了该功能、则在 BUSOFF 恢复后无法发送消息。

    此致、

    永恒

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

    尊敬的  Yongheng:

    抱歉、您能澄清一下。 如果上述配置设置为 true、则行为是什么;如果设置为 false、则行为是什么。 根据您之前和现在共享的配置、看起来它始终设置为 false。 将其设置为 true 应具有与注释代码相同的效果。

    此致、

    Ajay

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

    尊敬的 Ajay:

    我同意将其设置为 true 应与注释代码具有相同的效果。

    但如果我们将其设置为 true、则有时当总线状态正常时、某些帧发送失败。 因此、我们必须将其设置为 false 才能启用“自动重传“。

    此致、

    永恒

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

    尊敬的 Ajay:

    我想我已经找到了这个问题的历史。  

    请查看以下链接。

    根据我们同事的描述、新版本 MCAL 仍然无法解决此问题。

    此致、

    永恒

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

    嗨、永恒:

    您能否确认 禁用自动重新传输是否能解决 CAN 无法 从 CANH 短接至 GND 恢复(除非电路板重新启动)的问题? 此外、您是否设置了任何任务、以便在闲置一段时间时将器件置于睡眠状态?

    此致、

    Kristien

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

    Kristien、

    每次与客户通话时、他们表示此问题与以下链接中的问题完全相同、还 在 BUSOFF 错误期间发生两次中断。他们有自己的权变措施、但也希望 TI 有解决方案来解决此问题、因为他们担心在本文中报告的 CANH 到 GND 短接后无法传输数据的相同原因。 谢谢。

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

    Kristien、

    为了在短接 CANH 和 GND 后能够恢复、他们将检查并遵循欧洲的权变措施、但对于两次中断发生、您可以在此处发表评论、谢谢。

    Andy

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

    嗨、Andy、

    关于中断触发两次、这以前是 MCAL 版本中的问题、但我们无法在 MCAL 3.0.3.2 及更高版本上重现此问题。 他们可以尝试更新至最新的 MCAL 3.0.5.0、因为我们解决了其他错误、这些错误可能间接影响了此行为。

    此致、

    Kristien

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

    尊敬的 Kristien:

    我 根据 MCAL 3.0.3.2 测试中断触发两个问题。

    我在  can_mcanProcessISR () 处添加 gCounter。 每个总线提供中断都将导致  gCounter++。

    我添加了 printing at 10ms task 来打印 gCounter 的值。

    结果如下:

    BUSOFF 时间的两倍间隔约为 10ms、但 我们 将 BUSOFF 短恢复时间设置为 50ms。

    我们是否仍需要尝试使用  MCAL 3.0.5.0 来解决此问题?

    如果是、请帮助提供新版本的 EB 工具来生成 MCAL 配置。

    此致、

    永恒  

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

    嗨、永恒:

    我们始终建议使用最新软件来确保最新且稳定的开发环境、因此我建议使用 MCAL 3.0.5.0。 MCAL 3.0.5.0 不需要新的配置程序版本、因为它仍使用 Elektrobit Tresos 29.2。

    此致、

    Kristien

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

    尊敬的 Kristen:

    似乎有一个误解。 波特率的结构已修改。 如果不更新 EB、则无法成功编译代码。 左 Engineering_Release 侧是 mcal-03_00_03_02_mcal-03_00_GA 。  我们将  Elektrobit Tresos 29.2 用于 mcal-03_00_03_02_tc Engineering_Release  。

    此外、如果软件版本未对齐、则会导致编译错误。

    或者、是否有适用于这两个版本的配置设置?

    此致、

    永恒

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

    嗨、永恒:

    MCAL 团队提供了一些关于 ISR 触发两次的更新。 CAN_mcanProcessISR 仅在启动时捕获中断状态寄存器、并根据该快照清除中断状态寄存器。 因此、如果在 ISR 期间发生新的中断、则可能会导致 ISR 结束后立即重新触发。 BUSOFF 条件往往会通过 ISR 在不同点发生多个错误。

    这种重触发行为应该在中断处理过程中体现出来。

    我已通过电子邮件与您联系、分享有关获取新版本 EB 工具的详细信息。

    此致、

    Kristien

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

    尊敬的 Kristen:

    我注意到 MCAL 3_0_5_0 的总线关闭过程发生了变化。 在获得 EB 工具并运行测试后、我将向您提供反馈。

    此致、

    永恒

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

    嗨、永恒:

    明白了、感谢您让我知道。 我将在下周离开、但我已经邀请了另一位工程师来帮助您解决任何后续问题。

    此致、

    Kristien

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

    尊敬的 Kristien:

    我想知道 MCAL  03_00_05_00_GA 应该下载哪个文件。

    并且这里没有许可证适用链接。 如何应用 EB 新许可证?

     我  

    此致

    永恒  

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

    尊敬的 Yongheng:  

    我邀请了一个熟悉 MCAL 版本和许可信息的人参加培训。 请允许他们在一天左右的时间内进行审核和回复。

    此致、

    Vignesh K.

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

    尊敬的  Yongheng:

    EB Tresos 的安装程序是 mcal-config_03_00_05_00_GA 安装程序的一部分、位于“C:\ti\mcal-config_03_00_05_00_GA\Elektrobit\installer“位置。

    请安装此确切版本的 EB Tresos。

    许可证不能通过公共论坛共享。 请向您的 FAE 发送一封电子邮件、要求填写相同信息。

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

    尊敬的 Ajay:

    安装  CONFIG_03_00_05_00_GA 后 、我找不到该文件夹。 安装通过  https://www.ti.com/drr/opn/PROCESSOR-SDK-MCAL-EB-TRESOS 应用的 MCAL。 安装程序名为 mcal-03_00_05_00_GA-windows-x64-installer.exe

    此致、

    永恒

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

    大家好、TI 专家。

    你对 mcal EB 版本有什么建议吗? 确认后、我们可以联系我们的 FAE 以申请许可证。

    此致、

    永恒

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

    尊敬的  Yongheng:

    MCAL 详细信息无法通过公共 E2E 共享、因为这受到 NDA 限制、请联系 FAE 以获取正确的 MCAL 软件包和 EB Tresos。 上面共享的链接不是获取 EB Tresos 的正确位置。

    此致、

    Ajay