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.

[参考译文] TMS320F28379D:配置电路板以对两个编码器使用 ENDAT 库

Guru**** 2564390 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1241228/tms320f28379d-configuring-a-board-to-use-endat-library-for-two-encoders

器件型号:TMS320F28379D

您好!

我正在尝试构建一个利用位置管理器库、使用 Endat 2.2协议与两个 ECN1023编码器进行通信的电路。 我相信、由于专用线路用于 ePWM 和 GPIO34、因此我无法同时做到这一点、但前面对类似问题的回答指出、这可以通过在两者之间切换来实现。 我不介意一次与一个编码器通信并在两个编码器之间进行切换、但我想获得一些有关该设计的反馈、以帮助限制额外的电路。

到目前为止、我已经连接了我的电路。 这是在开发板之后建模的、不同之处在于我在启动时为 CLK 和编码器供电。 如果有错误、请告诉我。 下面我将讲讲如何添加组件、让它们能够在两个不同的编码器之间切换、同时仍然使用位置管理器库所需的专用线路。 我是否会在可通过 GPIO 进行切换的 DATA+/-和 CLK+/-线路上添加模拟开关? 或者我能否使两个电路与布置的电路相同、并将 GPIO34用于一个编码器、以及  也连接到 OUTPUTXBAR1的 GPIO2、GPIO24、GPIO58等引脚?

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

    在这里、我已将全部四条 Data+/-和 CLK+/-负线路连接到了一个4通道 SPDT 开关。 我理论上能够使用一个 GPIO 在两个编码器之间切换、然后它们将直通到 TMS320F28379D 开发板上使用的 RS485转换器电路。 请告知这是不是允许在两个单独的编码器之间切换的正确方式。  

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

    大家好、Eric、我正在研究这个主题。 我将在周一或周二回复您。  

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

    您是否有机会审查设计? 我的主要关注点是管理两条线路之间的时钟、以及在初始化后关闭一个编码器的时钟可能出现的任何问题。 目前正在寻找其他人的示例、他们试图使用 Endat 2.2库针对两个编码器进行设计建模。

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

    Eric、

    对此延迟深表歉意。 看一下我们的设计产生的波形。 编码器时钟在收到响应后保持高电平、然后变为低电平、以便为下一个请求做好准备。 下一个上升沿是请求开始。  因此、我认为最安全的做法是在访问另一个编码器时将线路保持在高电平。  

    我已经联系了一位专注于硬件的同事、讨论您的设计。 我明天会写回来(这一次没有延迟!!)。

    -洛里

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

    位置管理器使用 EPWM4来生成时钟信号。 考虑到这是一条专用线路、这意味着我需要将 ePWM 和一条 I/O 线路同时连接到该引脚、并且当我使用 4通道 开关访问另一个编码器时。 但您会提到、下一个上升沿用于请求的启动、这意味着时钟可以保持低电平、直到我需要再次访问它。 我期待听到可以确认这一点的响应、因为在设计时、一次为一个编码器生成时钟、但在访问另一个编码器时使线路保持高电平。

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

    我有机会思考一下、我意识到可能使用两组 SPI/ePWM 引脚、并通过更改这些功能的引脚来切换对每个编码器的访问。 这样、我可以将一个 ePWM 引脚更改为 I/O 并设置为高电平、另一个 EPWM4引脚将由位置管理器寻址。 我需要复制 RS485转换电路并路由更多不理想的引脚、因此我希望今天有个好消息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    位置管理器使用 EPWM4生成时钟信号。

    澄清说明-此设计使用我们的 CLB 模块生成时钟信号。 CLB 能够覆盖器件上的某些外设信号- EPWM 是这些信号之一。 CLB 仅使用 EPWM 输出功能将时钟输出到引脚。 ePWM 本身不会生成时钟。

    但是您提到下一个上升沿是请求的起点,这意味着时钟可以保持低电平,直到我需要再次访问它。

    不完全是-我看了 EnDat2.2规格时序图以进行关联。

    时序是:

    • 在响应结束时、编码器时钟保持高电平
    • 在下一个请求之前、时钟变为低电平。 在我们的设计中、这也对应于 TXeN 线路向高电平的转换。
    • 从时钟低电平开始-->第一个上升沿的时间称为恢复时间。
      • 恢复时间的时序与延迟/传播 时序有关
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我与一位 HW 同事交谈过、 我们在原理图中没有找到任何内容、除了建议当没有访问编码器时、最右侧的开关应将特定的编码器时钟保持在高电平之外。 我不确定是否有一个开关可以做到这一点、或者 clock+/CLOCK 上的上拉/下拉电阻器是否能够正常工作?

    我对两个编码器的使用很好奇-它是多轴应用吗?  

    -洛里

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

    如果编码器时钟未保持高电平、会发生什么情况? 如果需要、则需要包含  从 CLK+/5V 和 CLK-/0V 切换的其他开关。 这似乎很麻烦,但可能。  

    我的设计需要两个电机来控制板的方位角和仰角位置、并且需要两个独立的编码器来关闭控制环路。

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

    是否有这样的东西可以正常工作? 一个六通道开关将在电路的输入和对应于 CLK+/CLK-的5V 或0V 之间切换每条编码器 CLK 线路。 这样、我始终不寻址哪个编码器时钟将连接到已知的高电平状态。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    编码器时钟未保持高电平时会发生什么情况? 如果需要、则需要包含  从 CLK+/5V 和 CLK-/0V 切换的其他开关。 这似乎很麻烦,但可能。  [/报价]

    我不知道到底会发生什么情况。 规范规定了在事务开始时处于低电平的最小和最大时间、并提到要注意时序。 因此、为了安全起见、我认为 两次交易之间应该很高。  时序图显示它为高电平、而不是"无关"。

    有一点-进入编码器的信号是差分信号。 因此 D+/D-上的高/低不是+5和0。 让我来看看您发送的原理图。   

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

    我正在查看 Endat 2.2协议,其中描述了您所指的行为。 具体时序详见以下链接:

    "随着数据字的末尾、时钟必须设置为高电平。 在 µs 至 µs μ s 或1.25至3.75 μ s (EnDat 2.2可参数化恢复时间 TM)后、数据线路返回到低电平。 然后、可通过启动时钟来启动新的数据传输。'

    我可以请 HEIDENHAIN 在此时序图的尾端确认实际发生的情况。 如前所述、时钟必须在数据传输结束时在特定的时间内保持高电平、直到数据变为低电平。 之后、它等待再次生成时钟以继续数据传输。 对于在此恢复时间后如果时钟变为低电平可能会发生什么、这会有点令人困惑。 似乎会发送起始位。 假设我切换到另一个编码器、接收数据、等待数据变为低电平、我可以切换回并生成时钟来推送剩余的位。 我不确定这是否会导致编码器或 CLB 库时序出现问题。

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

    听到海登海恩建议会很有趣。  

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

    在与  HEIDENHAIN 交谈后、他们确认了 时钟信号的任何中断都会导致警报并强制进行复位。 这也意味着、如果不加以解决、我不能简单地将时钟拉至高电平。 因此、要使用两个编码器和 CLB 库、我必须在数据线之间切换时保持时钟信号。 他们还建议不要将时钟信号彼此并联、因此我重新设计了电路、以便为每个编码器使用两个 RS-485收发器、并使用一个在编码器之间切换的双通道开关。 这似乎是完成所需操作的正确方法、其中生成每个编码器的时钟信号并在每个编码器之间进行隔离、还有一个开关用于控制 将哪对数据线连接到负责驱动和读取这些信号的收发器。 如果还有任何其他注意事项需要解决、请告知。

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

    Eric 感谢您分享 HEIDENHAIN 的反馈。 我没有任何进一步的建议。 我有兴趣在您实施和测试后再听到您的反馈。  

    加油打气

    洛里