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.

[参考译文] TCAN1145-Q1:当不应设置 CANINT 标志时会设置该标志

Guru**** 2393725 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1513743/tcan1145-q1-canint-flag-is-set-when-it-is-not-supposed-to-set

器件型号:TCAN1145-Q1

工具/软件:

尊敬的团队:

我们的 ECU 中有2个 TCAN1145 CAN 收发器、每个收发器连接一个单独的 CAN 通道。 这些器件均配置为特定 CAN 帧的选择性唤醒、并需执行所有必要的步骤、如将 SWCFG 位设置为1、清除中断寄存器、在进入睡眠模式之前将 SW_EN 设置为1。

CAN 1:WUF 为0x123 ID

CAN2:WUF ID 为0x456。

在这些器件中接收到的唤醒帧打开 MCU、作为 MCU 初始化的一部分、这两个器件的中断寄存器被清除、切换到正常模式、选择性唤醒配置完成。

我们在测试设置中观察到一种奇怪的行为、以下步骤对此进行了说明。

1. ECU 的两个通道都连接到测试设备。 Vector CANoe 用作测试环境。

2.收发器处于睡眠模式。 MCU 现在已关闭。

发送 CAN 帧0x123 CAN2 从独木舟。 独木舟中的跟踪窗口显示确认错误(没有接收器、这是为什么?)。

4.看起来像在后台该工具不断重试发送同一帧、并可以观察到该工具统计窗口中的发送错误计数器达到128且状态更改为被动。

5.现在发出 WUF 0x123 CAN1 从独木舟。 这是的有效 WUF CAN1 。 独木舟中的跟踪窗口一次显示相同的确认错误。 与上述步骤类似、工具再次尝试发送、MCU 现在唤醒。 (假设第一个错误帧被视为 WUP、下一帧被视为 WUF、并且由于它是有效的 WUF、MCU 会唤醒)。

6.此时我们读取两个收发器中断寄存器。 并且两个收发器中都设置了 CANINT 标志。  此外、已验证帧错误计数器溢出位是否为 未设置 为了确保 SW_EN 未被禁用、并且因此、任何 CAN 帧都被视为 WUF 并设置 CANINT。

查询如下:

1。CAN1中的 CANINT 位= 1是可以接受的。 但是、当没有有效的 WUF 时、我们不知道即使在 CAN2中 CANINT 位也是1的原因。  

2.独木舟中的确认错误是否会影响收发器的选择性唤醒配置?

此致、

Punith Chandra

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

    您好 Punith、

    1.当您看到 CANINT 设置在 CAN2上时,它处于什么模式? 仍处于睡眠模式但 CANINT 被设置、或者也被唤醒? 还设置了什么中断?

    2.不应影响选择性唤醒配置。 您是否还可以读取0x45中的 FRAME_CNTx 来检查错误计数器的值?

    此致、

    Sean

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

    您好 Sean、

    我尝试了两种方法。 以下是相关步骤。

    场景1:

    1、读取器件模式、FRAME_cnt 寄存器和中断寄存器、清除中断寄存器。 突出显示  红色框 。 TCAN1中的模式为 待机 (2)而在 TCAN2中则为 睡眠 (1)。 帧计数器为0。 CANINT 仅在中设置 TCAN1 1安培。 (trcv0中的内部寄存器…… 此打印语句打印 GLOBAL_INT、INT1、INT2、INT3寄存器字节值。) TCAN2中未设置中断寄存器。

    两个收发器都配置为针对部分网络帧唤醒(选择性唤醒寄存器配置、SWCFG 为1、SW_EN 为1)。 注意: 不会发送 SPI 命令以将收发器更改为正常模式。

    3.之后,观察到即使是 TCAN2 n OW 转换到待机(2)。  在黄色框中突出显示。 不确定如何操作 。 不会发送 SPI 命令来更改其模式。 为什么会发生这种变化?

    4.再次读取两个收发器的模式、帧错误计数器和中断寄存器。 其中绿色框突出显示。 发现这次两个收发器中都找到了 CAN 总线唤醒事件。 不确定如何操作。 因为预计工具正在尝试发送的确认错误帧、所以测试仪器件没有发送其他 CAN 消息。 为什么在 TCAN2中检测到总线唤醒事件? 此外、TCAN1中断寄存器在步骤1中自行清零、那么为什么 TCAN1还设置了 CANINT 位?

    场景2:

    与场景1类似、增加了两个 TCAN 器件的发送方式 正常 在步骤2中完成选择性唤醒配置后。

    1.帧是在两条 CAN 总线上的 TCANS 处于睡眠模式时从独木舟测试仪工具发送的。 但由于确认错误而失败、并且工具正在尝试在后端发送它。

    2.对 ECU 执行下电上电。 因此、MCU 会唤醒、软件开始运行。

    3.读取设备模式和 FRAME_Cnt 寄存器以及中断寄存器,清除中断寄存器。 突出显示   红色框 。 TCAN1中的模式为  待机  (2)而在 TCAN2中则为  待机 (2)。 帧计数器为0。  CANINT  和 PWRON  两者都是在中 设置的  TCAN1  和 TCAN2 。 (trcv0中的内部寄存器…… 此打印语句打印 GLOBAL_INT、INT1、INT2、INT3寄存器字节值。)

    这两个收发器都配置为针对部分网络帧唤醒(选择性唤醒寄存器配置、SWCFG 为1、SW_EN 为1)。 注意:  SPI 命令 同时将收发器更改为 0:正常模式。

    5.之后,观察到两个 TCAN n OW 转换至正常(4)。  在黄色框中突出显示。

    6.再次读取两个收发器的模式、帧错误计数器和中断寄存器。 其中绿色框突出显示。 发现这次两个收发器中都找到了 CAN 总线唤醒事件。 不确定如何操作。 因为预计工具正在尝试发送的确认错误帧、所以测试仪器件没有发送其他 CAN 消息。 两个 TCAN 器件中断寄存器在步骤3中自行清零、那么为什么设置 CANINT 位呢?

    如果您想了解有关环境的更多信息、请向我发送周一上午的会议邀请(如果您有空)。 我在印度工作。

    此致、

    Punith Chandra。


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

    嗨、 Sean Guo、您能检查一下吗?

    此致、

    Punith Chandra

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

    您好 Punith、

    对于这两种情况、无论收发器处于何种模式(睡眠、待机或正常) 、当存在有效的 WUP (如果启用了选择性唤醒、则为 WUF)时、CANINT 标志都将被设置。  

    在场景1中、在步骤3之前、总线上是否可能存在一些 CAN 通信(可以是任何帧)、因此 CAN2在 SW_EN = 1之前已经唤醒?

    在场景2中、 在步骤3之前、总线上是否可能存在一些 CAN 通信(可以是任何帧)、从而在两个 TCAN 器件中设置 CANINT?

    此致、

    Sean

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

    您好 Sean Guo

    在第1点、据我所知、用户手册中的 WUP 和 WUF 仅在收发器处于睡眠或待机模式而不处于正常模式时才起作用。  请确认这一点。 即使在我的测试中、我也观察到了这个。 它不会设置为正常模式。

    在这两种情况下、当代码首次运行时、将完成与选择性唤醒相关的配置、器件将保持睡眠模式。 下次器件只应唤醒以获得有效的 WUF (因为在器件进入睡眠模式之前、首次运行中会启用 SW_EN)。


    如上所述、每当 TCAN2的 CAN 工具中出现确认错误并一直尝试发送不是有效 WUF 的相同 CAN 帧时、当 MCU 开启时、TCAN2中仍会设置 CANINT 标志、因为 TCAN1上的 WUF 有效、TCAN2中不应该如此、因为 SW_EN 仍处于启用状态、发生确认错误的帧甚至根据 WUF 配置无效。 此外、在两个 TCANS 中、帧错误计数器都为0。

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

    您好 Punith、

    是的、您是正确的、CANINT 将不会设置为正常模式。

    当您观察到由于 CAN1上的有效 WUF 而唤醒 CAN2后、您能否检查 CAN2上的 SWCFG 是否仍然为1?  

    如果可能、读取所有相关的软件配置寄存器、以查看在步骤2之后是否更改了这些值。

    此致、

    Sean

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

    你好 Sean Guo

    我发现了这个问题。 当我们配置选择性唤醒寄存器时、即 SWCFG 位是 自动清除  设置为0、直到我们将其重新设置为1、然后将 SW_EN 设置为1。

    由于我们测试环境中的工具不断尝试发送帧、因此在期间 SWCFG 为0时的持续时间较小  任何接收到的 CAN 帧都被视为有效的 WUF 和 CANINT 标志已设置。

    此致、

    Punith Chandra