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.

[参考译文] TMS320F28377D:生成单个脉冲?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/566682/tms320f28377d-generate-a-single-pulse

器件型号:TMS320F28377D

您好!

我正在使用 controlCARD F2837x。

我需要生成 4.25µs μ s 的单个脉冲(负脉冲或正脉冲、我认为这不是问题。) 当软件需要时(通过在寄存器中写入特定值的软件触发...)

我想 ePWM 模块可以在没有任何其他干预的情况下完成它、但在我们需要脉冲时初始化并对其进行微调、但它是一个非常复杂的模块!

我没有找到任何针对我的案例的人。

是否有人可以帮助我或向我展示一个现有的可帮助我配置 ePWM 的示例?

谢谢你。

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

    对于单个脉冲、切换中断中的 GPIO 会更好。 如果您不想这样做、请纠正我的问题。

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

    你好

    我已经考虑过这个解决方案、但是我已经将在 PWM 中断(无刷电机控制)下对这个脉冲进行三角波处理。 那么、我不希望仅为了切换 GPIO 脉冲而中断此中断!

    尤其是当我被说服在模块 ePWM 的帮助下硬件可以做到这一点时。 对吧?

    注意:如果我想、我将不得不使用计时器(ePWM 模块)生成中断。
    从这里、我认为生成中断或切换输出状态实际上与 ePWM 模块的配置相同?

    谢谢你。

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

    [引用 user="a GIR]特别是因为我相信在模块 ePWM 的帮助下、硬件可以做到这一点。 对吗?[/报价]

    ePWM 脉冲序列的偏航是最方便的外设。 但您在上面提到,您需要一个***,而不是火车?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我只需要一个 Σ 脉冲。 我们无法在该 ePWM 中对其进行编程? 当计数器达到编程值时、没有用于切换引脚的 sibgle 计数器模式? 当然、在本例中、我们不能将其称为"PWM"、但"ePmw"的某些"子模块"是否可以实现它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="a GIR]我们无法在此 ePWM 中对其进行编程? 当计数器达到编程值时、没有用于切换引脚的 sibgle 计数器模式? 当然、在这种情况下、我们不能将其称为"PWM"、但"ePmw"的某些"子模块"是否可以实现?

    据我所知... 您无法:) Hence 要求您在 CPU_TIMER/ePWM 中断中切换 GPIO。

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

    好的。

    实际上、下面是我的用例。

    我有一个电机绝对位置电容器、它在"串行链路"上工作。

    然后、我必须发出一个包含在 SCI 上发送一个字节的"请求"、然后我将在13个字节后接收以了解当前位置。

    但是、物理链路是 RS-485类型。 (半双工模式)

    因此、我必须生成一个信号、在发送请求期间启用 Tx 路、然后释放该信号以"侦听"响应。

    我想我会做以下几点:

    =>管理无刷电机的 PWM 中断:

    -将 GPIO 设置为在 RS-485上以"发送模式"传递

    -在 SCI 上发送一个字节

    -在 SCI Tx 完成中断(我将其设置为"高"中断优先级)上、我将清除 GPIO 以在 RS-485上以"监听模式"传递。

    因此、我的 PWM 中断将被 SCI Tx 结束中断抢先、因此我将接受这一点、因为我知道我只清除 GPIO、然后中断时间非常短。

    我将对其进行测试。

    感谢你的帮助。

    注意:SCI 模块是否可以管理 RTE/CTE RS-232信号。 根据数据表、我认为不是 我是对的吗?

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

    您可以使其与 PWM 一起工作、但它可能需要更多的周期、而不是以另一种方式工作、因为您必须使用另一个中断来关闭 PWM。

    唯一的例外情况是、如果您在电路板上有另一个信号、您可以在下一个周期到来之前为 PWM 使用触发区输入。 您还可以在中断中触发脉冲、然后配置跳闸区域、以便在信号处于低电平时使 PWM 跳闸。 然后、PWM 将自身跳闸并有效地生成单个脉冲。 如果您在初始化中预配置了中断、中断可能如下所示:

    启动时基计数器
    延迟几个周期、以确保 PWM 为高电平
    在低电平时启用 tripzone

    这将防止您不得不为 GPIO 获取第二个中断。 最后,我同意最后一项通牒。 GPIO 是最简单的方法。

    另一个需要注意的问题可能是使用串行通信、例如 SCI 或 SPI。 在正确的波特率下、这应该可以很好地工作。  您只需使用 TX 引脚、而在中断中、您只需发送与正确脉冲宽度对应的任何数据、例如0x0001或0x0003、以实现更长的脉冲。

    此致、
    Kris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    考虑过这一点之后、如果使用 GPIO 来执行此操作、或者使用任何涉及采取第二个操作来终止脉冲的方法、您需要小心谨慎。 根据您的系统负载、由于正在处理的其他中断、第二个中断可能会延迟。 这将导致更大的脉冲。 您需要评估您的应用是否可以接受。

    我的建议顺序如下:

    1) 1)串行通信外设
    2) PWM、按照我在上一篇文章中所述设置 tripzone
    3) 3) GPIO
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    好的、我了解使用另一个 SCI 模块的演示思想。

    谢谢

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

    你好

    对我来说、更简单的解决方案是 GPIO。
    ->我在发送数据之前设置 GPIO
    ->通过 SCI 中断传输数据时、我清除 GPIO ...

    但它们在"TX empty"标志上不会中断。 所以我不知道数据是在物理上传输的 :-)

    然后、我将测试第二种方法:使用另一个 SCI 控制器生成脉冲...

    当多路复用器用于 SCI 时、"Inv" GPIO 是否正常工作? :我需要正脉冲,SCI 字符"0"将发送负脉冲...

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

    我实现了以下解决方案:
    当发送请求的所有字节、然后接收到这些字节并处于 RxFifo (具有 Rx FIFO 级别)时、使用环回模式产生中断
x 出现错误。请重试或与管理员联系。