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.

[参考译文] 编译器/TMS570LS1114:C 上 N2HET 上的正交编码器

Guru**** 2455560 points
Other Parts Discussed in Thread: TMS570LS1114, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/633859/compiler-tms570ls1114-quadrature-encoders-on-the-n2het-on-c

器件型号:TMS570LS1114
主题中讨论的其他器件: HALCOGEN

工具/软件:TI C/C++编译器

你(们)好

我使用的是 Hercules TMS570LS1114、我需要将9个正交编码器与 N2HET 相连。 我在  状态机中看到了应用手册 www.ti.com/.../spna228.pdf。 我还阅读了以下文章 :http://e2e.ti.com/support/microcontrollers/hercules/f/312/p/536444/2021979 、发现它非常有用、但今天我使用的是 Halcogen、在 het.h 文件中、我看到了一些用于边缘检测的函数以及计数器。  

我想知道、即使 Halcogen 仅支持每个 HET 7个捕捉或7个中断、我是否需要 HET1上的14个和 HET2中的4个、 我可以使用 C 函数来执行代码、或者如果模块有另一个代码能够执行任务、因为我尝试复制我在这里添加的帖子并遇到一些问题。  

此外、我如何将编码器的相关信息返回 CPU 以使用它们?  您是否有一个用于1个正交编码器的 C 代码、我可以复制该代码来获取我所需的正交读数?

谢谢、致以最诚挚的问候!

C θ@

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

    应用手册中提供的程序示例似乎需要15条指令才能实现。 这意味着对于每个 NHET 实例、只有10个将适合 HET RAM (每个 NHET 多达160条消息)。 这意味着您必须在器件上的2个可用 N2HET 之间对编码器进行分频。 但是、即使在 ZWT 封装器件上使用完整的 N2HET1和 N2HET2可用引脚、也没有足够的引脚用于所请求的18个编码器的每个引脚。 即、当我们在 N2HET1上只有31个 NHET 通道时、N2HET 1需要3X14个引脚、这将是42个引脚。 此外、N2HET2上的其他4个需要额外的12个、其中23个具有18个引脚、但为了容纳 N2HET1上不能支持的额外4个编码器、意味着总共需要8个或24个引脚。

    关于中断、每个 N2HET 有2个中断(0级和1级)。 每个中断生成源都可以连接到其中一个中断例程、然后是一条用于标识源和生成中断的编码器的 switch 语句。

    计数值将通过与 CPU 进行访问(由于仲裁相关的问题、不建议这样做)或者使用与 DMA 相似且专门针对这个目的设计的 HTU 来从 NHET 中传输出来。

    相对于对 NHET 进行编程、它使用 NHET 特定的微代码进行编程、程序在一个微机器上执行以控制定时器。 Halcogen 中可能存在一些限制、可能需要您在 Halcogen 的范围之外编写此代码、以实现您所需的全部功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Chuck

    但愿你一切都很好。

    应用手册针对每个编码器执行15条指令、不是? 通道 A 和 B。此外、我的编码器没有索引引脚。 IM 仅使用9个编码器、这意味着18个通道、而 MCU 具有足够的引脚用于这些通道。


    我没有得到关于中断的信息。 我问的是 Haclogen 生成的代码、因为它具有一些控制捕获的函数、我可以使用这些函数来获取编码器信号、甚至作为外部中断。 问题是代码中没有足够的相关文档或有关如何使用它们的文档。 此外、由于 Halcogen 只允许7个捕获或7个中断、我需要为一个 N2HET 中的7个编码器手动配置7个引脚、为另一个中的2个编码器手动配置4个引脚 (这两个编码器可以在 Halcogen 中配置而不会出现重大问题、但前7个编码器、14个通道是问题所在)、这正是我想要的。


    我正在寻找一种不使用状态机获取编码器数据的方法、因为我在使用为 HET 编译器提供的代码对编码器进行仿真时遇到了一些问题。


    另外、要从 HTU 获取数据、会是怎样的? 如果在 Halcogen 中配置,或者甚至取消 HET 程序....


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

    我想知道您今天能否查看我上次回复的内容。

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

    不幸的是、我对 NHET 的了解有限、所以我无法回答所需的详细程度。 我将您的问题转交给 NHET 专家之一、他们应该能够更好地解决您的问题。