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:伺服控制

Guru**** 2587365 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1101971/tms320f28379d-servo-control

器件型号:TMS320F28379D
主题中讨论的其他器件: C2000WARE

您好!

我们正在开发具有 TMS320F28379D 和 BiSS-c 绝对编码器反馈的伺服驱动器。 我们有一些问题、

  1. 我们将 TI 的位置管理器库用于 BiSS-C 接口、它将 EPWM4用于时钟、如何更改呢?
  2. 我们是否可以在 CLB 中有2个2MHz 脉冲输入接口、在 CLB 中有编码器输出为"A"、在 CLB 中有"B"脉冲序列输出、在同一控制器中有绝对编码器接口、这是否可行? 如果没有、如何继续;您有没有任何建议;如果有、您是否有任何脉冲输入和脉冲输出参考?
  3. 现在、我们将 TI 的评估板用于具有 TMS320F28379D 和自定义逆变器卡的控制器卡、但当我们转到最终产品时、我们将寻找成本稍低的控制器。 您能否建议一个  满足 上述要求的替代微控制器?

此致、

Kaarthi

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

    Kaarthi、

    [引用 userid="511852" URL"~/support/microcontrol/C2000-microcontrol-group/C2000/f/C2000-microcontrol-forume/1101971/tms320f28379d-m伺 服控制"]我们使用 TI 的位置管理器库来实现 BiSS-C 接口、它使用 EPWM4来实现时钟、如何更改?

    遗憾的是、CLB 块会覆盖引脚功能、如果没有此时不可用的库源代码、则无法更改此功能。  我们将在今年晚些时候(第3季度或第4季度)在 C2000Ware 电机控制 SDK 中发布该源代码。

    [引用 userid="511852" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/1101971/tms320f28379d-mose-control"]CLB 中有2个2MHz 的脉冲输入接口、CLB 中的编码器输出为"A"、"B"脉冲序列输出是否可行、以及在绝对控制器中是否可行? 如果没有、如何继续;您有没有任何建议;如果有、您是否有任何脉冲输入和脉冲输出参考?[/quot]

     《C2000 位置管理器 PTO API 参考指南》可在此处为您提供帮助。  为所有函数提供了源代码。 如需更多信息、请参阅文档: www.ti.com/lit/SPRAC77

    [~ userid="511852" URL"/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/1101971/tms320f28379d-m伺 服控制"]\n 现在我们正在使用 TI 的评估板来评估具有 TMS320F28379D 和自定义逆变器卡的控制器卡、但当我们去寻找最终产品时、我们会发现控制器成本较低。 您能否建议一个  满足 上述要求的替代微控制器?[/引述]

    处理器选择的限制可能是您需要的 CLB 逻辑块数量。  BiSS 编码器接口使用2个逻辑块以及您需要的任何其他逻辑块。  一些选项可能是:

    • F28004x @100MHz 有4个逻辑块。  
    • F28002x @100MHz 有2个逻辑块。  
    • F28003x @120MHz 有4个逻辑块。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复、

    正如您所说、 TMS320F28379D 具有4个 CLB 逻辑块、位置管理器库使用2个 CLB 逻辑块、但我无法找到用于此逻辑块的逻辑块。

    如文档中所述、我能够从 C:\ti\c2000Ware_MotorControl_SDK_4_00_00_00\libraries\position_sensing\pto\ccs\f2837x 导入 pto_abs2qep 工程、  

    是否可以更改此处的 GPIO 引脚?

    kaarthi

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

    当前的 BiSS-C 库使用逻辑块3和4。  

    对于 PTO 库、包含源代码。  这也包括 CLB 配置。  可以更改使用的 GPIO。  

    此致

    Lori  

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

    感谢您的帮助、

    我现在能够生成 PTO 输出。

    在 CLB 中是否有任何实现脉冲序列输入(QEP、CwCcw 和脉冲/方向)的示例

    此致、

    Kaarthi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="511852" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1101971/tms320f28379d-m伺 服控制/4095101#4095101"]是否有任何示例可用于实现脉冲序列输入(QEP、CwCcclw 和脉冲方向控制)[]

    是的、PTO 库有一个使用 CLB 的 QEP 脉冲序列输入解码器示例。  

    此致

    Lori

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

    是的、PTO 在 CLB 上具有 QEP、但我认为它是位置解码器。 如果有脉冲计数和方向模式的示例、这将非常有帮助。 甚至一些文档也会有所帮助。

    谢谢、此致、

    Kaarthi

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

    Kaarthi、

    QEP 解码器文档包含在 PTO 库文档中。 这是一个很好的起点。  QEP 解码是您所需内容的超集。  QEP 解码器基本上是一个计数、与 QEP-A/B 的当前值相比、基于 QEP-A 和 QEP-B 上先前的值、在每个脉冲边沿上递增或递减

    对于简单的脉冲计数、我建议:

    • QEP-A 信号是输入、开启滤波。  这可以设置为下降沿、上升沿或双边沿上的脉冲。  
    • 然后、这个经过滤波的信号将控制计数器的使能模式。   方向模式将连接到递增。
    • 每次边沿脉冲变为高电平时、计数器将递增1。

    对于脉冲计数+方向:

    • 对 QEP-A 执行同样的操作以控制计数器的使能
    • 要控制计数器的方向、请使用查找表(LUT)将 QEP-A 脉冲与 DIR 信号的状态相结合。  

    C2000 Academy CLB 模块可能对您有所帮助 (模块13)。 其中包括 CLB 简介以及培训视频和文档等其他资源。  

    此致

    Lori

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

    您好!

    我能够对脉冲序列输入进行计数、并能够在方向模式的帮助下进行加计数和减计数。 但我不会小于0 (因为所有寄存器都是 UINT32)。

    是否有任何方法可以在负方向进行计数?

    或者、是否有方法在软件中读取 FSM.out 或 LUT、以便我可以在软件中手动计算以进行负数计数?

    此致、

    kaarthi

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

    您好、Kaarthi、

    Lori 将在本周晚些时候上班。 她将在本周晚些时候或下周初回来时回到您的位置。

    最棒的

    Kevin

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

    Kaarthi、

    当 CLB 计数器递减到0以下时、它将下溢。  例如 0x4..0x3..0x2..0x1..0xFFFFFFFFF...0xFFFFFFFE 等   

    对于编码器、下溢值应对应于编码器可测量的最大位置。 这是编码器的分辨率或圆圈周围的位置增量/线条数。

    例如:

    前进(顺时针)位置:0、1、2 …… MAX_POSITION -2、。 MAX_POSITION -1、MAX_POSITION、0、1、2 …

    反转(逆时针)位置: ... 3、2、1、0、MAX_POSITION、 MAX_POSITION -1、MAX_POSITION -2。  等等...  

    这可以通过将特定值加载到计数中并在发生特定匹配事件时重置计数来实现。  在 QepOnClb 示例中、这是使用 COUNTER_0 match1和 match2完成的。

    如果您想将 MAX_POSITION 解释为负值、则可以执行此操作、但需要在软件中进行转换。  

    此致

    Lori

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

    您好、Lori、

     感谢您的回复。

    实际上、我 尝试将脉冲序列输入集成到位置控制中、而不是集成到编码器接口中。

    因此、我必须计算脉冲序列和方向输入的脉冲数。

    我必须处理三种类型的脉冲序列输入、  

    1. 脉冲和方向模式-脉冲序列将出现在一个引脚上、以指示电机不应旋转、引脚2上的高电平或低电平表示电机应旋转的方向。
    2. 顺时针和逆时针-对于引脚1处的脉冲序列、表示电机必须以 CW 方式旋转、而引脚2处的脉冲序列表示电机必须以 CCW 方式旋转。
    3. A/B 二次信号-脉冲序列将出现在两个引脚上、具有前导 B 或滞后 B。因此、我必须计算出脉冲数以及来自该引脚的方向。

    我的问题是、

    我知道我们可以在 ECAP 中执行此操作、但这会影响 CPU 性能、那么、在 CLB 中是否有方法可以执行此操作?

    我能够正确计数脉冲数、但我无法找到方向。  

    因此、即使我能够读取 FSM.out 或 LUT.OUT、我也可以将逻辑方程放在那里并找到方向输入。

    请就此为我提供帮助吗?

    此致、

    Kaarthi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="511852" URL"~/support/microcontrollers/C2000-microcontrollers-group/CC2000/f/C2000-microcontrollers-forume/1101971/tms320f28379d-m伺 服控制/4116049#4116049"]脉冲和方向模式-脉冲序列将出现在一个引脚上、以指示电机不应旋转且应在高电平或低电平旋转的电机[引用引脚2]。

    CLB 可以对脉冲数进行计数。   

    • 脉冲序列信号是 CLB 的输入、开启边沿滤波。  这可以设置为下降沿、上升沿或双边沿上的脉冲。  
    • 然后、这个经过滤波的信号将控制计数器的使能(mode0)。   
    • 方向模式(mode1)将连接到递增模式。
    • 每次边沿脉冲变为高电平时、计数器将递增1。

    对于第二个引脚、我不清楚需要执行什么操作。  CPU 可以读取状态并执行相应的操作。  或者 CLB 可以接收信号并采取一些措施。   

    [引用 userid="511852" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/1101971/tms320f28379d-m伺 服控制/4116049#4116049"]顺时针和逆时针-对于引脚1处的脉冲序列、表示电机必须在 CW 旋转、而电机脉冲序列在引脚2处的旋转[引用 CCV]。

    这是否与案例1中的第2个引脚相同?

    [引用 userid="511852" URL"~/support/microcontrollers/C2000-microcontrollers-group/CC2000/f/C2000-microcontrollers-forum/1101971/tms320f28379d-m伺 服控制/4116049#4116049"]A/B 二次信号-脉冲序列将位于两个具有 B 或 B 领先的引脚上、因此我不必计算此方向上的脉冲。]

    QepOnClb PTO 库 示例演示了如何使用 CLB 执行此操作。 从 A/B 输入信号中、CLB 对脉冲进行计数并生成一个方向信号。  根据您要执行的操作、方向信号可以输出到引脚或 由其他 CLB 逻辑使用。  在 QepOnClb 示例中、方向信号控制脉冲计数器的递增/递减。  相反、您可以选择使用 OUTLUT 将其连接到引脚。   

    此致

    Lori   

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

    很抱歉耽误你的回答、
    这似乎是一个通过引脚进行输出并进一步使用的好主意。 我将测试此内容并在此处更新。

    谢谢、此致、

    kaarthi