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.

[参考译文] RM48L952:RM48L952 HET 计时器引脚寄存器损坏

Guru**** 2513035 points
Other Parts Discussed in Thread: RM48L952, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1525638/rm48l952-rm48l952-het-timer-pin-registers-are-getting-corrupted

部件号:RM48L952
主题中讨论的其他器件: HALCOGEN

工具/软件:

我们在产品中使用的是 RM48L952DPGET。 我们有一个增量编码器(每个左右车轮 2 个 Ch)连接到 Micro 的 HET 引脚。 实际上、原始差分输入连接到 MAX33076、然后 MAX33076 将差分输入转换为正交信号、然后直接馈送到 RM48L952 的 HET 引脚。 具体而言、它们直接连接到引脚 38 (NHET1[06])、引脚 40(NHET1[19](对于左编码器输入)和引脚 41 (NHET1[15]和引脚 54 (NHET1[11])。  

HET 引脚的功能是对编码器信号的边沿进行计数、然后我们从存储该值的寄存器读取该信号、以查看编码器节拍。  

问题:我们最近收到了一批新的生产板,其中从大约 10 分钟运行机器人后,我们看到的寄存器主要存储从右编码器锁存器的编码器节拍随机值或锁存至最大 25 位值。 当我们向前转动滚轮时、计数从最大值增加到 0、然后再增加到 1、然后不会改变。 当我们反向旋转右车轮时、右侧编码器节拍会减少、但一旦车轮停止旋转、它就会再次锁存到随机值。 在大多数情况下、左轮编码器刻度记录良好。  

当我们重置电源(重新启动机械手)时、它会再次正常运行 10 分钟、然后再次观察到相同的行为。 在前 10 分钟,左右编码器刻度都被正确记录。  

我们过去使用的电路板版本和固件版本相同、没有任何问题。 这个问题在某种程度上与我们收到的新一批板有关。 在有故障的主板上、我更换了微控制器、然后问题不再出现、我们能够运行机械手。 我们已验证从编码器到微引脚输入的编码器信号是否正确。 更换 Micro 后、在某些情况下、更换上一批中的主板可解决此问题、因此、将手指直接指向 Micro。  

我们使用默认的 HET 代码来初始化 HET 模块并进行脉冲计数。 我们只读取随后存储在上述寄存器中的数据。 由于 MAX33076 的输出直接馈送到上述微引脚、在我们的默认设置中、HET 引脚既不会被拉低也不会被拉高、因此我们还尝试了将 HET 引脚拉至内部拉低和拉高、结果与 10 分钟内发生故障的地方相同。  

Micro 在这里可能有什么问题? 这是 Micro 内部的硬件故障、还是我们可以进行任何 HET 引脚配置更改来解决此问题? 正如我之前提到的、过去 1 年、我们在现场使用了相同的硬件和固件、没有任何问题、现在我们在新批次的生产板上看到了这一点。 期待在这里获得一些帮助/见解、  

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

    尊敬的 Udit Raval:

    此器件最近没有新的芯片版本、控制器硬件不应发生任何变化。 然而、从控制器的角度来看、这是一种奇怪的行为。

    是否可以设置一个与此问题相关的实时演示?

    我在 IST(印度标准时间)工作时间为上午 10 点至晚上 8 点、能否根据您的空房情况设置一次会议。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:  

    您能否分享您的电子邮件地址? 我不确定在此处设置会议的最佳方式是什么?

    此致、
    Udit Raval

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

    请接受友谊请求,以便我们可以在私人聊天窗口聊天!

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

    尊敬的 Udit:

    对延误深表歉意、我们现在正在进行内部讨论、我们将尽快为您提供最新信息。

    --
    此致、
    Jagadish。

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

    你好 Jagadish、谢谢。 请尽快让我知道您找到的内容。  

    此致、
    Udit Raval

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

    尊敬的 Udit:

    我就这个问题与我们的内部团队进行了调查。

    他们确认、RM48L952 器件或 HET 模块没有任何已知的生产问题。  

    对于故障隔离、 我们推荐

    • 闪存调查
      • 转储故障单元的闪存、将其与预期的闪存映像进行比较。  我们发现了以下问题:客户的生产闪存编程器出现问题、而整批编程器得到了不正确的映像。
      • 作为无需返工的相关调试、您可以尝试重新刷写可疑的 RM48L952、以查看这样是否解决了错误情况。
    • A-B-A 交换
      • 将可疑的 RM48L952 更换到已知正常工作的系统上。  如果系统开始出现故障、则可以将故障隔离到 RM48L952。  如果错误没有再次出现、则可能是 RM48L952 焊接组件出现了故障。
    • 系统查询
      • 对于每个故障单元、故障发生的时间是否完全同时?  
      • 所有装置的故障模式是否相同?

    如果 ABA 交换遵循器件、且闪存作为根本原因消除、则可以联系 TI 客户支持中心、发起故障分析申请。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadhish:

    我们已经验证、当我更换工作正常的板上的坏微型计算机时、故障是坏微型计算机的故障、并观察到相同的故障。 此外、我们已经验证了我们这边的 Flash 没有问题  

    现在、您能告诉我下一个流程是什么、因为我们确定这是 Micro 的问题。  

    此致、
    Udit Raval

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

    尊敬的 Udit:

    我想提出 一些 可能也会导致该问题的其他问题、

    当脉冲计数值“突然变化“时、这表明输入信号、N2HET 的运行或 CPU 如何读取计数存在根本问题。

    1. 外部信号完整性问题(噪声,干扰):

      • 原因:  N2HET 对输入信号质量非常敏感。 输入引脚上的噪声、振铃或干扰可能会被解释为额外的脉冲、从而导致计数膨胀或不稳定。 如果信号暂时消失、则如果 N2HET 程序旨在对信号丢失做出反应、则可能导致计数降低或复位。
      • 文档相关性:  虽然未在提供的代码片段中明确表示、但这对于任何边沿计数应用程序而言都是一个常见问题。 “高分辨率时钟“和“环路分辨率时钟“(表 20-5)表明 N2HET 对时序的敏感性、这意味着甚至可以检测到微小的干扰。
      • 疑难解答:
        • 使用示波器直接检查微控制器引脚上的输入信号。 寻找噪声、反弹或意外转换。
        • 实现硬件滤波(RC 滤波器)、或在信号源有噪声时使用施密特触发输入。
        • 确保信号线正确接地和屏蔽。
    2. N2HET 程序逻辑错误(计数器溢出/复位):

      • 原因:
        • 计数器溢出:  如果用于计数的 N2HET 指令(例如指令或自定义计数逻辑) CNT 达到其最大值并绕回、则它可能显示为“突变“(例如从最大值到 0)。 如果 CPU 读取的计数器部分小于 N2HET 使用的部分、或者如果 CPU 的变量类型太小、CPU 端也可能发生溢出。
        • 条件复位:  N2HET 程序可能有一个无意中重置计数器的条件。 这可能是由于意外输入、时序问题或 N2HET 汇编代码中的错误造成的。
        • N2HET 内的比赛条件:  虽然不太常见,复杂的 N2HET 程序可能有内部比赛条件,如果没有精心设计,导致不正确的更新。
      • 文档相关性:  N2HET 是可编程的(第 2 节中提到的白盒配置)、这意味着自定义逻辑可能会引入错误。
      • 疑难解答:
        • 查看 N2HET 汇编代码(如果是自定义)或边沿计数逻辑的 HALCoGen 配置(如果是黑盒)。
        • 验证 N2HET 程序和 CPU 应用程序中 COUNTER 变量的大小。 确保它可保存预期的最大计数。
        • 模拟 N2HET 程序或使用调试器逐步完成其执行(如果可能)以观察计数器行为。
    3. 原因:  如果 DCLK2 或 N2HET 的内部预分频器(HR 时钟、环路分辨率时钟、根据第 20.2.3 节)不稳定或配置错误、则 N2HET 的时序可能不稳定、从而导致边沿丢失或计数间隔不正确。
      • 疑难解答:
        • 验证系统时钟 (VECLK2) 的稳定性和频率。
        • 仔细检查 HALCoGen 或初始化代码中的 N2HET 时钟预分频器配置。
    4. CPU 软件错误:

      • 原因:
        • 不正确的变量类型:  用于在 CPU 端存储计数的变量可能太小、从而在 N2HET 计数超过其容量时导致溢出。
        • 未初始化的变量:  变量可能未正确初始化、从而导致初始值随机化。
        • 内存损坏:  CPU 应用程序的其他部分可能无意中写入存储 N2HET 计数的存储器位置。
        • 中断处理:  如果在中断服务例程 (ISR) 中读取计数、请确保 ISR 高效、并且不会引入可能影响读取的延迟或可重入性问题。
      • 疑难解答:
        • 对 CPU 应用程序执行全面的代码检查、尤其是与 N2HET 交互的部件。
        • 使用调试器实时检查 count 变量的值。 设置观察点以查看是否有任何其他内容正在写入其存储器位置。

    请确保我们没有执行上述错误。

    如果他们也没有帮助你 ,那么你可以通过 你购买的销售渠道启动一个单位的退货分析。  故障分析(产品返还)申请|其他信息|德州仪器 TI.com

    --
    此致、
    Jagadish。