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.

[参考译文] TCAN1575-Q1:在 TCAN1575-Q1 上配置 SWE_EN = 1 后、收发器无法进入睡眠模式。

Guru**** 2952510 points

Other Parts Discussed in Thread: TCAN1575-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1657305/tcan1575-q1-after-configuring-swe_en-1-on-tcan1575-q1-the-transceiver-fails-to-enter-sleep-mode

器件型号: TCAN1575-Q1

尊敬的 TI 支持团队:
非常感谢您花时间查看我们的问题。 为了便于您分析、我将详细描述此问题。

1.背景

我们采用 TCAN1575-Q1 进行车辆 CAN FD 通信。 出于系统安全考虑、我们打算在 MCU 发生故障或 SPI 通信失败时使收发器通过 SWE 计时器自动进入睡眠模式。

2.基于数据表的当前配置

我们参考了 “通过睡眠唤醒错误实现第 8.4.6.1 节睡眠模式“ 并应用了以下寄存器设置:
  • 0x1C[7] SWE_EN = 1b (SWE 计时器启用)
  • 0x1C[2] CANSLNT_SWE_DIS = 0b (出厂默认值)
  • 失效防护模式已完全禁用: 0x17[0] FS_DIS = 1b (出厂默认值)
我们的设计目标是在内部方框图中以黄色突出显示的睡眠转换流程。

image.png

 

3、测试与问题分析

我们使用了 PC 转 CAN FD 工具发送/接收 CAN 帧以进行验证。
 
在 CAN 总线进入空闲状态之前、我们通过 SPI 读取所有 SPI 寄存器和中断标志。
 
我们使 CAN 总线保持静默 10 分钟(tINACTIVE 最小超时为 3.75 分钟)、然后通过 SPI 再次读取所有寄存器和中断标志。
捕获的关键日志数据:
  • MODE_SEL 寄存器:0x07(静音前 10 分钟)/ 0x07(静音后 10 分钟)
  • INT1 寄存器:0x04(静音前 10 分钟)/ 0x04(静音后 10 分钟)
  • INT2 寄存器:0x00(静音前 10 分钟)/0x00(静音后 10 分钟)
  • INT3 寄存器:0x00(静音前 10 分钟)/0x00(静音后 10 分钟)
根据上面的寄存器读数、我们确认收发器保持正常模式、并且在整个 tINACTIVE 超时后不会转换到睡眠模式。

4、向您的支持部门提出问题

  1. 您能否提供正确的寄存器配置和分步操作过程、以便通过 SWE 计时器功能可靠地使 TCAN1575-Q1 进入睡眠模式?
  2. SWE 计时器是否依赖于失效防护模式才能正常工作? 或者这两个功能是否完全独立?
     
    换句话说、当失效防护模式保持禁用状态且仅启用 SWE_EN 时、SWE 计时器是否可以正常工作并触发睡眠转换?
期待您的技术指导。
 
此致

 

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

    感谢您向我们提出此问题以及您的所有详细信息。 这很有趣。  

    1。CANSLNT_SWE_DIS 的默认值为 1、而不是 0。 您的图表突出显示它需要为 1、但寄存器配置显示为 0。 我 建议将位设置为 0 和 1 并重新进行测试、以查看该位在系统中的性能 (但 SWE 计时器仍然应该以这两种方式工作)。 无论哪一种、您显示的寄存器配置都有效。  

    2.否、SWE 不依赖于启用的失效防护模式。 SWE 计时器在禁用失效防护模式的情况下仍能正常工作。  

    我还将在我们的测试台上设置该器件、并努力重现您看到的内容。

    此致、

    Ethan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ethan:
    非常感谢您的答复。 我完全理解您对第 2 点的解释。
    问题 3.
    但是、我想进一步阐明第 1 点的测试设置。
    我使用不同的寄存器配置运行了两个单独的测试:
    Δ V_SWE_DIS =①CANSLNT    0x1C=0x80
      →(8h'1C[2]=0、CANSLNT 标志启用)
    • TCAN 设备即使在 10 分钟的等待时间后仍保持正常模式。
    • 中断寄存器读数如下所示:
      INT1 寄存器:0x00(10 分钟前)、0x00(10 分钟后)
      INT2 寄存器:0x00(10 分钟前)、0x00(10 分钟后)
      INT3 寄存器:0x00(10 分钟前)、0x00(10 分钟后)
    Δ V_SWE_DIS =②CANSLNT     0x1C=0x84
        →(8h'1C[2]=1、默认值、CANSLNT 标志禁用、使用了 SWE 计时器)  
    • TCAN 收发器即使在 10 分钟后仍保持正常模式。
    • 中断寄存器测量值如下所示:

          INT1 寄存器:0x04(10 分钟前)、0x04(10 分钟后)

          INT2 寄存器:0x00(10 分钟前)、0x00(10 分钟后)

         INT3 寄存器:0x00(10 分钟前)、0x00(10 分钟后)

    我已经查看了器件数据表。
    INT1 寄存器读数 0x04 表示 CANSLNT 标志已置为有效、这意味着 CAN 总线保持非活动状态的时间超过定义的 tSILENCE 周期。
    即使持续触发该总线静音标志 10 分钟、SWE 计时器仍无法按预期触发自动进入睡眠模式。

    我们的设计意图如下:
    一旦 CAN 总线持续保持静音状态并且 SWE 计时器到期、TCAN1575-Q1 应通过中断自动进入睡眠模式、而无需任何 MCU 干预。 此机制可以用作失效防护措施、以避免由 MCU 崩溃或 SPI 通信故障引起的系统失控或失控状态。
    问题 4.
    目前、我无法确定阻止 TCAN1575-Q1 进入睡眠模式的根本原因、对于这种异常行为、我有两个初步假设:
    1. 连续 SPI 读取/写入事务可能会继续唤醒收发器并将其保持在正常模式、从而阻止由 SWE 计时器?触发的自动进入睡眠模式
    2. WAKE 引脚上的干扰可能会持续触发本地唤醒 (LWU) 事件、从而禁止器件转换到睡眠模式?μ s
    关于我们的硬件电路设计:WAKE 引脚通过一系列电阻器直接拉至+BAT。 我已捕获此引脚的波形、测得的纹波电压不超过数据表中指定的 LWU 检测阈值。
    最后、非常感谢您的支持和技术确认。 我期待您的基准测试结果和实用的故障排除建议。
    期待您的答复,非常感谢。
    此致
    Zhu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhu:

    我尽可能地复制了您的设置、并且我仍然让收发器从正常模式进入睡眠模式、同时启用了 SWE 计时器。 因此、您的系统中存在其他一些阻止其按预期工作的因素。  

    问题 3:这与我的设置类似。 在测试设置 1 中、SWE 计时器将不起作用、因为未设置 CANSLNT 中断标志。 INT_1 应为 0x04(表示设置了 CANSLNT 标志)。 当 CANSLNT_SWE_DIS=0 且 CANSLNT=1 时、TCAN1576 会按预期从正常模式进入睡眠模式。  

    但是、在 CANSLNT_SWE_DIS=1b 的测试设置 2 中(这意味着它被禁用)、无论 CANSLNT 标志如何、TCAN1576 都会从正常模式进入睡眠模式。

    Q4:WAKE 引脚是一个良好的引线、但如果有 WAKE 引脚唤醒、则会设置 INT_1 中的 LWU(本地唤醒)标志。 但是、我会再次检查您的软件没有意外地自动清除此标志。  

    我还在此期间执行 SPI 读取/写入、器件仍进入正常模式。 但是、如果您的 SPI 通信使收发器以任何方式改变模式、SWE 计时器将复位。  

    请注意、您是否已经与我们的内部团队合作、特别是 Shoo Saga? 如果是的话,我已经和他一起工作了。 听起来最好通过电话来加速/仔细检查此问题。  

    此致、

    Ethan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ethan:
    非常感谢你的详细答复,我基本上理解你的观点。
    您提到、 如果 SPI 通信使收发器以任何方式改变模式、SWE 计时器将复位。   在我们的软件设计中、我们会通过 SPI 持续轮询 TCAN 的状态、其中包括对其寄存器的频繁读写访问。 我将与我们的软件团队协调、彻底检查此逻辑。
    我确实已经与 TI 日本的 Shoo Saga 交换了电子邮件、他目前正在准备 TCAN 评估板以进行并行验证。 稍后我将安排与他的在线会议、以便跟进此问题。
    非常感谢您的建议和支持。
    此致、
    Zhu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhu:

    我可能发现了一个潜在的问题。 SHOO 向我发送了您的寄存器流程图、我看到您正在使用 INT_ENABLE_3 尝试禁用失效防护模式。 这不正确。 该寄存器仅是中断屏蔽、不会禁用失效防护模式。 在 FSM_CONFIG 中禁用失效防护模式。  

    我会参考数据表中的第 8.4.1 节。 由于启用了失效防护模式、因此将器件发送至正常模式的 SPI 命令将关闭 SWE 计时器。  

    我会尝试正确禁用失效防护模式、然后重新尝试测试。

    此致、

    Ethan