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:选择性唤醒、WUP 和 WUF 时序

Guru**** 2463330 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1481482/tcan1145-q1-selective-wakeup-wup-and-wuf-timing

器件型号:TCAN1145-Q1

工具与软件:

大家好、团队成员:

我已配置选择性唤醒寄存器、以在接收到 CAN ID:0x123、DLC = 8、数据字节7掩码= 0x01标准 CAN 时将收发器从睡眠模式唤醒。 这按预期运行。 但在测试过程中观察到以下情况。

1.根据上述配置和波特率等配置所有选择性唤醒相关寄存器

2.设置 DATA_MASK_EN

设置 SWCFG

4.启用 SW_EN 位

5.通过 SPI 更改为正常模式

6.通过 SPI 更改为待机模式

7.立即通过 SPI 更改为睡眠模式

8.发送无效 WUF ->设备未唤醒

9.发送一次有效的 WUF ->器件未唤醒

10.发送两次有效 WUF、其间隙约为1秒->器件未唤醒

11、发送两次有效的 WUF、它们之间的间隙约为800ms ->器件唤醒。

即使我在它们之间的800ms 间隔内发送无效的 WUF 后跟有效的 WUF、器件也会唤醒。 但是、如果这2个帧之间的延迟更长、则器件也不会使用有效的 WUF 唤醒。 这一观察导致以下问题。

根据手册、对于选择性唤醒、我们需要发送 WUP 后跟 WUF、以便完全转换到待机模式。 否则、如果 tSILENCE (大约1.2s)到期、则器件切换回低功耗模式。



1.这是否意味着在我们的测试中、发送的第1个 CAN 帧被视为 WUP、而收发器期望 tSILENCE 内有下一个有效的 WUF? 原因是、测试在步骤11中有效、而在步骤10中无效吗?

tSILENCE 介于0.6到1.2s 之间。 我观察到的是、如果我在840ms 内发送 WUF、器件会唤醒、否则不会。 考虑到 tSILENCE 值直到1.2秒、这是否是预期的行为?

3.当我在唤醒后进行读取时(即使我在发送第一个 WUP 后发送连续的 WUF 帧而没有使 tSILENCE 到期时也是如此)、INT_1寄存器位 CANINT、CANSLNT、CANTO 会被置位。 预计为 CANINT。 然而、为什么 CANSLNT 和 CNTO 位被置位呢? 在器件进入睡眠状态后、会从测试环境每100ms 持续发送一次唤醒帧。

此致、

Punith Chandra

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

    尊敬的 Munith:

    Unknown 说:
    1. 这是否意味着在我们的测试中、发送的第1个 CAN 帧被视为 WUP、收发器期望 tSILENCE 内的下一个有效 WUF? 原因是、测试在步骤11中有效、而不是在步骤10中有效?

    是的、您回答正确。 在总线处于非活动状态的睡眠模式下、TCAN1145将关闭其内部振荡器并进入"深度睡眠"模式、以节省功耗、仅使低功耗 WUP 接收器保持开启状态。 当器件检测到 CAN 活动(WUP)时、会激活该振荡器并进入主动侦听模式。 此时、器件正在解码 CAN 帧并搜索正确的 WUF。 如果总线恢复到空闲状态的时间足够长(tSILENCE)、器件将返回深度睡眠模式以节省功耗、并将需要另一个 WUP 以允许器件再次开始对 CAN 帧进行解码。  

    Unknown 说:
    2. tSILENCE 介于0.6至1.2s 之间。 我观察到的是、如果我在840ms 内发送 WUF、器件会唤醒、否则不会。 考虑到 tSILENCE 值直到1.2sec、这是否是预期的行为?

    此规范受赠者指出、如果帧之间在600ms 内发送、则第二个帧将及时到达以进行解码。 在电源电压和温度等所有工作条件下都是如此。 不过、该时间会随着工作条件的变化而变化、在某些情况下会更长。 在一个角上、可以在两个帧之间等待1.2秒、而第二个帧仍然可以被识别。 但是、如果温度或电源电压发生变化、同样的测试可能会导致非唤醒。 为了在系统中对此进行规划以保证唤醒、请确保 WUF 在发送初始帧后最多600ms 到达收发器。 例如、如果系统不希望器件在第二个帧上唤醒、则应在两帧之间留出1.2秒的时间以确保器件永远无法识别第二个帧。  

    Unknown 说:
    3. 当我在唤醒后进行读取时(即使我在发送第一个 WUP 后发送连续的 WUF 帧而没有使 tSILENCE 到期时也是如此)、会设置 INT_1寄存器位 CANINT、CANSLNT、CANTO。 预计为 CANINT。 然而、为什么 CANSLNT 和 CNTO 位被置位呢? 在器件进入睡眠状态后、会从测试环境每100ms 持续发送一次唤醒帧。
    [报价]

    CANSLNT 标志在包括正常模式在内的所有模式中都是有效的-该标志可能在测试的初始设置期间被置位、并且在测试运行和记录值之前不会被清除。 鉴于您对测试时序的描述(即在 SW 处于运行状态的情况下转换到 SLEEP 模式后立即发送帧)、我不希望设置 Canto。  

    在开始测试之前、您是否清除了器件中断? 是 CAN 活动在设置期间持续发生、还是仅在 TCAN1145进入睡眠模式时才开始。 控制 TCAN1145状态的器件和生成 CAN 帧的系统之间的协调是否会引入任何延迟?

    此致、
    Eric Schott

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

    大家好、

    感谢您的详细解释。

    对于#3、是的、在运行期间、就在收发器从正常状态进入待机模式之前、连续读取和清除器件中断。 此外、ECU 在运行时继续发送 Tx CAN 消息。 一旦收发器进入睡眠模式、就不会有任何 Tx 消息、因为 ECU 已断电、并且测试环境开始每100ms 连续发送一次 WUF。 当器件进入睡眠模式且没有总线活动时、您是否怀疑 CANSLNT/CANTO 位是否设置? 在上述条件下、除非接收到 WUP 且未检测到 WUF、并且收发器回到深度睡眠模式、否则我认为不会设置 CANSLNT 和 CANTO。

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

    尊敬的 Munith:

    我同意你的理解。 听起来此处的测试让 CAN 总线在正常模式下有效、并在转换到睡眠模式后保持有效、没有明显的间隙来满足 CANSLNT 条件。 仅当 CAN 总线空闲~1秒时、才应设置此标志。 根据您的说明、系统中不会发生这种情况。  

    建议在从正常模式转换到睡眠模式期间捕获 CAN 总线的示波器屏幕截图、以检查 CAN 收发器实际看到的时序。 在此期间、如果可以捕获寄存器状态并查看它们何时发生变化、这也会是有用的信息。  

    客户是在其当前系统设计中积极使用这些寄存器状态之一、还是对这些寄存器的功能更有好奇心

    此致、
    Eric Schott