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.

[参考译文] ENDAT2.2-AM243X:用于安全目的的 MCU-PLUS-SDK 恢复时间计数器

Guru**** 2464300 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429642/mcu-plus-sdk-am243x-endat2-2-recovery-time-counter-for-safety

器件型号:MCU-PLUS-SDK AM243X

工具与软件:

尊敬的 TI 专家

根据 HEIDENHAIN 文档(D1128897 - 03 - A - 02 8)- 带有 EnDat 2.2和非 SAFE 的安全特性
EnDat 主设备

第3.5.2节 用于测量恢复时间 I 的计数器

例如、可以通过 EnDat 主器件内实现的计数器来测量恢复时间。 。
EnDat-Clock 时钟的最后一个上升沿(正信号)表示启动触发器和随后的下降
EnDat-Data 的边沿(正信号)表示恢复时间 I 计数器的停止触发。 (
必须在主器件内分析 EnDat 2.2协议以获得正确的触发时间。 还有电缆
必须考虑到延迟。)
计数器值必须在主机接口处的专用 RT 寄存器中提供。 。
计数器和 RT 寄存器必须在正常工作模式下动态更改以检测"停留"
计数器和 RT 寄存器的错误。 这可以通过不复位的计数器来实现。 因此、
恢复时间的预期值以最后值和当前值之间的差值进行编码。
最后的值必须存储在安全 CU 中。
为了实现高效故障检测(尤其是对于多主器件)、需要加载的计数器
具有不同起始值的不同轴。 差值必须至少是预期容差的两倍
恢复时间的范围。 由于这一原因以及递增的值、因此强制进行动态采样
计数器不是必需的。

1) 1)第3.5.2节规定了 一个不会复位的计数器作为 RT 实现的一种方法、用于满足"停留在"检测要求。

我可以在 endat 接口中找到"Non reset RT counter"。

您是否 能够作为 endat 接口的一部分提供"非复位 RT 计数器"

谢谢你

艾伦一世

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

    您好、Alan:

    感谢您的提问。

    我会检查一下、然后回复给您。

    此致

    Achala Ram

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

    你好、Achala

    感谢您跟踪 RT 计数器。 HEIDENHAIN 文档建议使用非复位 RT 计数器方法作为检测卡在故障的解决方案。 只要我们能够证明卡在故障检测水平、我们就愿意采用其他方法/解决方案。

    谢谢你

    艾伦一世

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

    你好、Achala

    希望你们做得好。 您是否有关于此查询的任何更新?

    谢谢

    艾伦一世

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

    艾伦

    请注意,这是 印度的假日季。 请在下周之前收到回复。

    如果您在几个工作日内未收到回复、请在下周随意点击该主题帖。

    此致

    Dhaval

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

    您好、TI 专家

    我只是对线程执行 Ping 操作  

    我想了解这一要求是否可以得到满足

    谢谢你

    艾伦一世

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

    您好、Alan:

    很抱歉耽误你的时间!!

    请参阅文档: AM243x 电机控制 SDK:EnDat 协议设计。 以了解当前 EnDAT 固件支持的 RT 测量方法。  

    方法如下:我们在最后一个时钟上升沿从零开始计数器、然后在接下来的数据下降沿读取计数器值。 在数据下降沿读取的计数器值为 RT、我们将此值作为恢复时间存储在共享存储器中。 计数器在 EnDat-Clock 的最后一个上升沿(正信号)和 EnDat-Data 的下一个下降沿(正信号)之间连续递增。  

    关于"卡住故障检测"、我们正在与 HEIDENHAIN 核实、我们如何通过未复位计数器值检测和验证"被困"错误!

    您能否与 RT 分享您的错误滞留用例? 分享您认为应该检测到的卡住错误的情况。  

    谢谢、此致、

    Achala Ram  

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

    你好、Achala

    感谢您的答复。 正如您在我的原始文章中所注意到的、非复位 RT 计数器的要求是 HEIDENHAIN 在其文档"HEIDENHAIN 文档(D1128897 - 03 - A - 02 8)- EnDat 2.2和非安全 EnDat  主器件安全"中规定的要求。

    请参阅  上述 文档的第3.5.2节。

    很高兴您与 HEIDENHAIN 就本主题进行了接触、我们将等待您的讨论结果。

    如果您需要更多信息、请告诉我

    谢谢你

    艾伦一世

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

    RT 的用例由 "HEIDENHAIN 文档(D1128897 - 03 - A - 02 8)- 使用 EnDat 2.2和非安全 EnDat  主器件时的安全"的第3.3节规定

    RT 测试要求由同一文档的第4部分指定

    RT 测试需要作为安全操作测试的一部分执行的情况  

    如果您需要更多信息、请告诉我

    艾伦一世

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

    你好、Achala

    您是否对非复位 RT 计数器有任何更新?

    谢谢

    艾伦一世  

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

    你好、Achala

    您是否有关于此问题的任何更新?

    谢谢

    艾伦一世

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

    您好、Alan:

    在查看 HEIDENHAIN  文档后、我们发现缺少一些步骤来满足当前固件中的安全 CU 要求。 感谢您提醒我们注意这一点。  我们将满足所有必要的安全相关要求、包括 固件中的卡滞错误、这将在下一个电机控制 SDK 版本中提供。

    谢谢、此致、

    Achala Ram

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

    Achala

    感谢您的答复。 我注意到电机控制 SDK 9.2.0.11在几周前发布。 您是否有下一个 SDK 版本的指示性时间范围?

    我在 让 RT 测量进入 模式200:启动周期性连续模式 时遇到问题(在诊断时)  

    随附了我修改后的 endat_drv.c /和 endat_dagnotic.c 版本、其中我曾尝试 在周期性触发模式下使用 pos_cmd=9。

    e2e.ti.com/.../endat_5F00_diagnostic.ce2e.ti.com/.../endat_5F00_drv.ce2e.ti.com/.../endat_5F00_drv.h

    如果您需要更多信息、请告诉我

    谢谢

    艾伦一世

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 使 RT 测量进入 模式200
    时遇到问题

    我正在审查您的更改、同时您可以分享、您面临的问题是什么? 您要为 IEP 复位周期和触发点配置哪些值?

    谢谢、此致、

    Achala Ram

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

    你好、Achala

    我尝试了几个 IEP 周期 ie, 200000 , 400000 ,触发器被设置为1000

    我已将编码器配置为短接 RT  

    我修改了 endat_diagnotic.c、以使 cmd 200使用 MRS 代码为0x4d 的 Endat 模式9。 理论上、RT 应对每个 endat 模式9事务执行。

    如果您需要更多信息、请告诉我。

    谢谢

    艾伦一世

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

    您好、Alan:

    CMD 9的 RT 已进行更改、但这些值以 PRU 周期计数为单位、而不是按预期的纳秒为单位。 endat_command_process 函数执行 RT 转换、endat_get_RECOVERY_TIME 返回 RT (以纳秒为单位)。 但是、在周期模式下、此函数仅调用一次、因此 RT 转换在第一次测量后不会发生、并且 endat_get_RECOVERY_TIME 以 PRU 周期计数返回 RT。

    谢谢、此致、

    Achala Ram

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

    你好、Achala

    感谢您试用我的修改版 endat_drv.c

    如果我理解正确、 则最后一列(值571)是周期计数、然后以 ns 为单位的值为 571 * 1/300e6 * 1e9 = 1903ns、与 Endat Encoder ~2us 的短 RT 值匹配。

    我是否可以知道上面使用的示例 IEP 周期和触发点

    感谢你的评分

    谢谢

    艾伦一世

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

    您好、Alan:

    我尝试了几个 IEP 周期 ie, 200000 , 400000,触发器设置为1000

    我使用了、200000用于周期计数、1000用于触发点。  

    然后以 ns 为单位的值为 571 * 1/300e6 * 1e9 = 1903

    PRU 时钟设置为200MHz、因此确切值为571*(1/200e6)= 2.8us。

    谢谢、此致、

    Achala Ram

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

    感谢您发送编修。

    您能告诉我下一个电机控制 SDK 的预计发布日期吗

    谢谢

    艾伦一世

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

    您好、Alan:

    您能否查看 RT 方法并确认、这是否适合您?

    为了测量恢复时间(RT)、我们将使用 PRU 周期计数器。 测量开始时、在最后一个上升时钟沿(CLK 线)将 PRU 计数器设置为零。 然后、固件将在下一个数据下降沿(RX 线路)读取 PRU 计数器值。 这个捕获的值表示恢复时间(RT)、该时间存储在64位计时器的低32位中。

    64位计时器的高32位将用作32位计数器、根据测得的 RT 随每个命令请求递增。 该计数器可用于检测"停留"故障:如果该计数器在 RT 测量后未能递增、则表示存在潜在故障。

    谢谢、此致、

    Achala Ram

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

    你好、Achala

    我们只是一个用户,我们不能就实施方法提出任何建议。 我 敦促您与 HEIDENHAIN 合作、以满足 HEIDENHAIN 文档 D1128897 - 03 - A - 02 借助 EnDat 2.2和非安全 EnDat 主设备实现安全时所述的所有实现和测试要求

    谢谢你

    艾伦一世

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

    你好、Achala

    新年快乐! 您是否有任何关于此主题的更新?  

    谢谢你

    艾伦一世

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

    艾伦

    很抱歉延迟了 更新。 我们将在本周末提供最新情况。

    此致

    Dhaval

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

    您好、Alan:

    很抱歉延迟了更新。

    我们已经开始实施 RT、一旦它完成、我们将与您共享补丁(下周)。 完成开发、审核和测试大约需要一周时间。  

    关于 电机控制 SDK 发布日期、我们很快会提供相关更新。

    谢谢、此致、

    Achala Ram

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

    您好、Archala

    感谢您关注此问题、我们热切期待补丁

    艾伦一世

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

    您好、Alan:

    要更新/修改的文件:

    • motor_control_sdk_am243x_09_02_00_09\examples\position_sens\endat_diagnostic\endat_diagnostic.c
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\driver\endat_drv.c
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\firmware\endat_diagnostic.cmd
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\firmware\endat_interface.h
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\firmware\endat_main.asm
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\include\endat_api.h
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\include\endat_drv.h
    • motor_control_sdk_am243x_09_02_00_09\source\position_sens\endat\include\endat_interface.h

    要采取的行动:

    • 从提供的附件更新或复制所有这些文件  
    • 此外、请确保使用附件中也包含的更新的固件二进制文件和驱动程序库。

    e2e.ti.com/.../motor_5F00_control_5F00_sdk.zip

    谢谢、此致、

    Achala Ram

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

    大家好!

    我有一个与此主题相关的问题。

    我们还计划在与安全相关的应用中使用 TI Sitara AM243x、因此我们需要安全的位置信息。 ´d 喜欢遵循 Heidenhain (EnDat 2.2安全和非安全 EnDat 主器件安全)的相同实现说明。
    是否可以遵循  HEIDENHAIN 提供的指南并使用 AM243x MotorControlSDK 中的 EnDat2.2主器件、或者是否有任何其他限制?

    提前感谢、此致
    Christian Brunner

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

    是的、Christian、

    我们已按照  HEIDENHAIN 文档(D1128897 - 03 - A - 02 8)- 配备 EnDat 2.2的安全和非安全 EnDat  主器件中描述的方法和指南实施了 RT、TI.com 上的下一个 AM243x 电机控制 SDK 版本中将提供该工具。   

    根据  

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

    你好、Achala

    感谢您提供补丁。 我已经使用 endat_diagnostic.c 运行补丁、并且 RT 看起来比以前好多了。  我还有一个关于 RT 的问题。

    中的图6  (D1128897 - 03 - A - 02 8)显示 RT 寄存器在每个安全周期中仅更新一次。  

     问题:为了按照图6匹配 RT 计数器更新速率、 我是否可以在安全周期中仅对特定 MRS 代码启用 RT 测量

    谢谢你

    艾伦一世

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

    您好、Alan:

    [报价 userid="235837" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429642/mcu-plus-sdk-am243x-endat2-2-recovery-time-counter-for-safety/5666693 #5666693"]能否在安全周期期间仅对特定 MRS 代码启用 RT 测量[/QUOT]

    您能否就此提供更多详细信息? 要检测"停留在" RT、寄存器在正常运行中也应更改。  

    谢谢、此致、

    Achala Ram