主题中讨论的其他器件: TMS570LS1114
您好!
在 SafeTIHercules
诊断库发行说明(v 2.4.0)中,存在以下已知问题:
我们在一个工业应用中开发了一个系统、该系统在没有重启的情况下运行数周甚至数月(这将强制执行 ABIST / LBIST)。 从我的角度来看、无法保证 TPS 正常工作、因为无法再对其进行测试、而不会面临电源复位的风险。
您是否对解决方法或论证有任何想法?它在本应用程序中是否仍然有用?
此致、
Helge Pape
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.
您好!
在 SafeTIHercules
诊断库发行说明(v 2.4.0)中,存在以下已知问题:
我们在一个工业应用中开发了一个系统、该系统在没有重启的情况下运行数周甚至数月(这将强制执行 ABIST / LBIST)。 从我的角度来看、无法保证 TPS 正常工作、因为无法再对其进行测试、而不会面临电源复位的风险。
您是否对解决方法或论证有任何想法?它在本应用程序中是否仍然有用?
此致、
Helge Pape
您好、Helge、
您已在支持 TPS65381A-Q1的 PMIC 论坛上发帖。 通过设置 LBIST_EN 或 ABIST_EN、可以通过软件在 TPS65381A-Q1上手动运行 ABIST 和 LBIST、同时在诊断或活动状态下运行。 请注意、通过设置 LBIST_EN 从软件手动运行 LBIST 也会运行 ABIST、如数据表中的第5.4.7节"逻辑内置自检(LBIST)"所述。
运行 LBIST 或 ABIST 时、有一些关键注意事项在数据表的这一部分中手动注明:
1) 1) 在活动状态下、如果通过将 LBIST_EN 位设置为1来启动 LBIST 手动运行、则必须考虑以下注意事项。 只有当系统安全时序要求能够允许总 BIST 时间为21ms 并且 ENDRV 在21ms 的时间内处于低电平、LBIST 才应该在激活状态下运行。
2) 2) LBIST 完成后、WD_FAIL_CNT[2:0]计数器会重新初始化为5。 MCU 应通过写入 WD_WIN1_CFG 或 WD_WIN2_CFG 寄存器或通过立即导致不良事件与 TPS65381A-Q1看门狗重新同步。 这两个重新同步选项都会启动新的看门狗序列并使 WD_FAIL_CNT[2:0]计数器递增。 如果 WD_RST_EN 位设置为1 (已启用)、MCU 中的看门狗服务例程必须确保良好事件发送到看门狗、以便在 WD_FAIL_CNT[2:0]计数器达到7 +1时开始递减、这会导致转换到复位状态。
3)从第5.4.6节中删除了"模拟内置自检(ABIST)": 在 ABIST 运行期间、器件无法监测稳压电源的状态、并且 ENDRV 引脚被拉至低电平。 ABIST μs 时间大约为300 μ s。 可根据 MCU 请求在活动状态下执行 ABIST、具体取决于系统安全要求(例如系统故障响应时间)、ENDRV 引脚在 ABIST 运行期间将为低电平。
我怀疑赫丘利斯驱动器团队的测试没有意识到这些限制、而他们将 WD_RST_EN 位设置为1、并且看门狗故障会导致 TPS65381A-Q1转换至其复位状态、从而将 NRES 拉至低电平并通常将赫丘利斯复位。
您可能需要并行发布到 Hercules 论坛、并询问驱动程序是否有更新、该更新将在运行 LBIST 之后重新同步 WD、或者您可能需要在应用代码中单独执行此操作。
我将并联联系他们。
Scott
您好 Scott、
在 LBIST 或 ABIST 测试期间、您是否有关于电源复位的任何新信息?
现在、我能够执行具有预期结果的 ABIST:
解锁 SPI WR 访问
2.启动 ABIST
3.等待 ABIST 完成(检查 ABIST_RUN)
3A。 确认 ABIST 已运行(ABIST_RUN 必须为高电平)
4.获取 ABIST 测试结果
5.锁定 SPI WR 访问
ABIST 需要300us、如手册中所述。
对于 LBIST、我执行的过程几乎相同:
安全 SAFETY_CHECK_CTRL 寄存器
2.解锁 SPI WR 访问
3.启动 LBIST
4.等待 LBIST 和 ABIST 完成(检查 ABIST_RUN 和 LBIST_RUN)
4A。 如果 TPS 寄存器的 SPI 结果不可用、我对它们进行操作、以便结果为0xA002 (0xA0 =命令阶段、0x01 =数据阶段(D1 = 1 -> LBIST_RUN))
4B。 确认 LBIST 和 ABIST 已运行(LBIST_RUN 和 ABIST_RUN 必须为高电平->在这里:我没有获取 ABIST_RUN)
5.获取 ABIST 和 LBIST 测试结果
6.恢复 SAFETY_CHECK_CTRL 寄存器
7.配置看门狗窗口以同步 TPS 和 TMS (SafeTI Lib API "TPS_ConfigureWatchdogWindows()"要求 TPS 器件状态在诊断中、这在这里是不必要的[也可以在活动状态下运行 ABIST 和 LBIST ]; API" TPS_ConfigureSafetyCheckControl()"还要求 TPS 器件状态为诊断状态、因此在 TPS 处于活动状态时不能启用 CRC 检查)
8.锁定 SPI WR 访问
我的 LBIST 持续时间仅为4.6ms。 这意味着 LBIST_RUN 仅在4.2ms LBIST 持续时间内处于高电平、而不是在整个 LBIST 测试期间(4.2ms LBIST + 16ms 等待时间(包括300us ABIST))。 是这样吗? 因为该手册显示"在 LBIST 运行后、整个 BIST 的完成由 MCU 通过读取 LBIST_RUN 和 ABIST_RUN 位的0来确认。" 这是我在4.6ms 后得到的结果。
ABIST 在等待时间内何时准确执行? 我是否必须读出整个16ms 等待时间才能获得 ABIST_RUN 位?
结果(LBIST_ERR 和 ABIST_ERR)何时有效? LBIST_ERR 在4.2ms 或4.2+16ms 后有效? ABIST_ERR 在4.2ms+16ms 后有效?
此致、
Helge
您好、Helge、
如果您运行 LBIST、ABIST 是 LBIST 运行的自动部分、您将看不到 ABIST_RUN 位发生更改。 更好的描述可能是 BIST、而不是 LBIST。 在 LBIST 期间、无法仅运行 LBIST、但两个 BIST 都运行。 在 LBIST 运行期间、即使在实际 LBIST 完成后、数字内核中也会发生许多事情。 数据表突出显示了在21ms 的整个 BIST 时间内不应对器件进行 SPI 活动。
在您的软件中、您应该在21ms + 5%(22.05ms)的时间内避免对器件进行任何 SPI 活动。 因此、22.05ms 后、检查 ABIST_ERR 或 LBIST_ERR 是否指示存在问题。
希望这会有所帮助。 如果您有其他问题、请告知我们。
此致、
Scott
您好 Scott、
在 TPS65381A-Q1数据表中、可以看到"SPI 寄存器在 BIST 期间可能不可用、因此在 BIST 运行时不应进行 SPI 读取或写入"。 在 ABIST 期间、我在请求 ABIST_EN、ABIST_RUN 和 ABIST_ERR 标志时无法发现此行为。 所有这些都是以正确的方式设置的。
但在 LBIST 执行期间、SPI 接收到0xFFFF (如数据表中所述)。 如果我无法获得 LBIST_RUN 标志、如何才能确保 LBIST 真正被执行? 如果我没有获得 LBIST_RUN 标志、我无法信任 LBIST_ERR 中的结果、因为它初始化为0 (无错误)。 有两种可能:1) LBIST 确实在运行、但未检测到错误。 2) 2) LBIST 未运行、因此 LBIST_ERR 没有变化。
在您之前的陈述之后、设置 LBIST_EN 后、我只需等待22.05ms、并且必须假设执行了 LBIST、我对吗?
因此、数据表的语句在这里不适用、因为在 LBIST 期间 SPI 寄存器不可访问、并且如果 LBIST 完成、LBIST_RUN 和 ABIST_RUN 无论如何都为0:
如果在 ABIST 和 LBIST 运行时执行 SPI 传输(关于 TPS 电源复位或任何其他问题)、TPS 是否有问题?
此致、
Helge
您好、Helge、
由于在 LBIST (或 BIST)期间 SPI 可能不可用 由于手动运行 LBIST 时、ABIST 也会自动运行、因此验证 LBIST 运行的最简单方法是双击在 LBIST 运行后重新初始化的一个或多个寄存器或位、您还可以观察到 ENDRV 将变为低电平 如果它为高电平(ENABLE_DRV 设置为1、并且满足允许 ENDRV 为高电平的条件)。 LBIST 重新初始化寄存器的列表位于第5.4.7节逻辑内置自检(LBIST)和5.5.3 SPI 寄存器(SPI 映射响应)中。 ENABLE_DRV 位位于 SAFETY_CHECK_CTRL 中、该位经过重新初始化、因此该位加上看门狗故障计数器可能是用于监控以确认 LBIST (BIST)运行的最佳选项、具体取决于您如何配置其他在 LBIST (BIST)之后将重新初始化的寄存器。 在 LBIST 部分中有几个注释、重点介绍了 LIBST 重新初始化这些寄存器的影响、包括看门狗失效计数器、以及在正常运行期间运行 LBIST 时对 ENDRV 引脚的影响。
如果 ABIST 由自身手动运行、则 SPI 寄存器仍将工作、因为它仅是被测器件的模拟部分。 我们建议在 LBIST (BIST)期间不要使用 SPI、因为 对于 MCU 和软件、它 实际上并不能确定何时 SPI 读取有效以及何时是 LBIST 时间的一部分、在这一部分、SPI 读取可能由于被测试的逻辑电路而无效。 最好的观察方法是 使用 ENDRV 引脚状态的间接方法、假定它在 LIBST_EN 被置位前为高电平、在 LIBST 完成后重新初始化的寄存器。 如数据表中所述、看门狗重新同步对于在 WD_FAIL_CNT 达到7+1之前重新建立至关重要、因为 LBIST 运行会将其重新初始化为5。
此致、
Scott