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.

[参考译文] TMS320F280049C:可配置逻辑块(使用位字段)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1625842/tms320f280049c-cofigurable-logic-block-using-bit-field

器件型号: TMS320F280049C

嗨、

我已经使用 bitfield 方法编写了我的代码。 但是、对于一个复数 PWM 生成、我们需要使用可配置逻辑块 (CLB) 从 EPWM1 和 EPWM4 生成 EPWM8。 遗憾的是、我找不到任何使用 bitfield 方法来实现这一点的示例代码或清晰信息。

请告诉我如何使用 CLB 生成这些 PWM 脉冲。

 

此致、

Akash

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

    尊敬的 Akash:

    您能解释一下“从 EPWM1 和 EPWM4 生成 EPWM8 “的含义吗? 您是否尝试将这两个信号进行逻辑与运算来创建新的第三个信号 (EPWM8)?

    此致、
    Aj Favela.  

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

    drive.google.com/.../viewYes、我尝试在 EPWM1 和 EPWM4 之间执行逻辑与运算以生成 EPWM8。 我还附上了该图像供您参考。

    此致

    Akash

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

    尊敬的 Akash:

    假设您将 EPWM1 作为输入 0 并将 EPWM4 作为输入 1 输入、那么您应该能够通过使用位域执行以下操作来对这两个信号进行逻辑和:

    这样、您就可以将两个 ePWM 输入到 CLB LUT 中

    Clb1LogicCfgRegs.clb_LUT4_IN0.bit.SEL_0 = 24u // i0 <- CLB_IN0
    Clb1LogicCfgRegs.CLB_LUT4_IN1.bit.SEL_0 = 25u // i1 <- CLB_IN1
    下面将配置用于对两个信号进行逻辑与运算的 LUT
    Clb1LogicCfgRegs.CLB_LUT4_FN1_0.bit.FN0 = 0x8888U
    下面将传递来自 LUT 的 AND 信号并通过 OUTLUT 输出该信号
    Clb1LogicCfgRegs.clb_output_lut_0.bit.IN0 = 7u
    Clb1LogicCfgRegs.clb_output_lut_0.bit.fn = 0xAAU
    此致、
    Aj Favela.  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Akash:

    该专家目前已离开办公室,直到下周中旬,将尽快回复您。 感谢您的耐心。

    此致、

    Aishwarya

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

    尊敬的 Akash:

    我在办公室外的时候道歉。 感谢您的耐心。 当我浏览您的代码片段时、我注意到您将 GPIO 配置为 ePWM。 我假设您当时正尝试将这些 GPIO 输出输入到 CLB 以执行逻辑运算?  

    此致、
    Aj Favela.  

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

    尊敬的 AJ:

    感谢您回复我。

    回答您的问题:是的、我正在为 EPWM1 和 EPWM4 使用标准 ePWM 配置、希望 CLB  接收这些内部信号、执行与操作、然后驱动  EPWM8A  结果输出引脚。  

    此致、

    Akash

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

    尊敬的 Akash:

    我很抱歉、因为我的问题可能不清楚。 您是尝试将 GPIO 输入到 CLB、还是尝试输入由 器件上的 ePWM 模块生成的特定 ePWM?

    此致、
    Aj Favela.  

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

    尊敬的 AJ:

    我尝试将由器件上的 ePWM 模块生成的特定 ePWM (ePWM 1A 和 ePWM 4A) 输入到 CLB、然后根据 逻辑要求生成 CLB 输出、即逻辑与:ePWM 1A 和 ePWM 4A。

    此致、

    Akash

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

    尊敬的 Akash:  

    很抱歉晚回复。  

    似乎您没有正确地将 EPWM 值设置为 CLB 的输入。  

    请在 setup_EPWM 函数之后以及我之前提供的代码之前将以下内容添加到您的代码中。  

    //将 EPWM1A 路由到 CLB1_IN0
    InputXbarRegs.INPUT1SELECT = 0// EPWM1A = GPIO0(多路复用器值 0)
    ClbXbarRegs.AUXSIG0MUX0TO15CFG.BIT_MUX1 = 0//选择 Input1
    ClbXbarRegs.AUXSIG0MUXENABLE.bit.MUX1 = 1//启用 MUX1
    //将 EPWM4A 路由到 CLB1_IN1
    InputXbarRegs.INPUT2SELECT = 6// EPWM4A = GPIO6(多路复用器值 6)
    ClbXbarRegs.AUXSIG1MUX0TO15CFG.BITS.MUX2 = 1//选择 INPUT2
    ClbXbarRegs.AUXSIG1MUXENABLE.bit.MUX2 = 1//启用 MUX2

    此致、

    Aj Favela.