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:MATLAB Simulink 嵌入式编码器 ePWM 12B 输出 MUX

Guru**** 2522770 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/831137/tms320f28379d-matlab-simulink-embedded-coder-epwm-12b-output-mux

器件型号:TMS320F28379D
主题中讨论的其他器件:LAUNCHXL-F28379D

大家好

如何使用"德州仪器 C2000处理器的嵌入式编码器支持包"将 ePWM12B 信号连接到 Simulink 中的引脚?

我想将 GPIO23连接到一个 IntputxBar、并将这个输入连接到一个 OutputxBar、它连接到板上的引脚34。

我找不到 用于配置此功能的选项。

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

    您好!

    目前不支持此配置选项。

    但是、由于这是一次性配置、因此您可以使用 SL 库中 Simulink 编码器下的自定义代码块、使用系统初始化块提供执行此配置的手写代码。 这将作为 init 的一部分生成代码、并应配置 X-BAR。

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

    您好!

    我尝试了系统初始化块、但它不起作用。 诊断查看器仅显示错误:

    构建"PWM3PHASE_V4"时遇到错误:###无法生成所有二进制输出。

    我在系统初始化块中编写了以下代码:

    #include "F2837xD_DEVICE.h"                                                                                                                                                  
    #include "F2837xD_examples.h"                                                                                                                                                
    空 InitEPwm12Gpio (空)                                                                                                                                                    
    {                                                                                                                                                                            
    //   无法从电路板 LAUNCHXL-F28379D 完全访问 EPWM12 (GPIO22和 GPIO23)。 可通过 LAUNCHXL-F28379D (表用户指南)的引脚8访问 GPIO22。        
    //   无法通过任何引脚访问 GPIO23                                                                                                                               
    //   此处的 InputXBar 和 OutputXBar 用于将 GPIO23路由出去。                                                                                                        
    //   《TMS320F2837xD 双核 Delfino 微控制器-技术参考手册》对此进行了说明                                                                    
    //   从 InputXBar 中选择 Input1,因为它可以将信号路由到 OutputXBar (第1153页)。                                                                      
    //   来自参考手册-表7-8。 GPIO 复用引脚                                                                                                                     
    //   GPIO22为 EPWM12A                                                                                                                                                      
    //   GPIO23是 EPWM12B                                                                                                                                                      
       EALLOW;                                                                                                                                                                  
       GpioCtrlRegs.GPAPUD.bit.GPIO22 = 1;//禁用上拉                                                                                                                   
       GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1;//禁用上拉                                                                                                                   
       GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 1;                                                                                                                                     
       GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1;                                                                                                                                     
       GpioCtrlRegs.GPAGMUX2.bit.GPIO22 = 1;                                                                                                                                    
       GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 1;                                                                                                                                    
       InputXbarRegs.INPUT1SELECT = 23;//选择 GPIO23转至 InputXbar 的 Input1                                                                                         
    //   从用户指南中可以看到 GPIO24 (引脚34)可用于 OUTPUTXBAR1。 Input1将路由到此输出                                                      
       OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;//从 InputXBar 中选择 INPUTXBAR1作为 Output1。 参考手册-表8-3. 输出 X-Bar 多路复用器配置表
       OutputXbarRegs.OUTPUT1MUXENABLE.BIT.MUX1 = 1;//启用多路复用器                                                                                                              
       GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;//将 GPIO24配置为 EPWM12B                                                                                                      
       GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1;//禁用 GPIO24上的上拉电阻(EPWM12B)                                                                                               
       EDIS;                                                                                                                                                                    
    }            

    不知道我犯了什么错误。

    提前感谢您。

                                                                                                                                                          

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

    您好!

    我刚才包含了 C2000块库中的 ePWM 块、并为 PWM 输出配置了 EPWM12A 和 EPWM12B。 我可以使用 DSO 验证 EPWM12A 上的输出。 然后、使用系统初始化块、我添加了以下代码行:

    EALLOW;                                        
    InputXbarRegs.INPUT1SELECT = 23;               
    OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;
    OutputXbarRegs.OUTPUT1MUXENABLE.bit.MUX1 = 1;  
    EDIS;

    根据我们的理解、应将 EPWM12B 路由到 GPIO24、该 GPIO24位于 J4 - 34接头上。

    但我在该引脚上看不到任何输出。 因此,我不知道我们是否可以采用这种方法。

    我的印象是只能使用 GPIO 上的外部输入、而不能使用内部信号。

    我们能否从 TI 朋友那里确认这一理解。

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

    现在、我尝试编写额外的代码来设置本节中的引脚:

    ->配置参数

    ->模拟目标

    ->源文件

    但它也不起作用...

    有想法的其他人?

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

    您好!

    正如 Venkatesh 所解释的、可以使用输入 X-BAR 和输出 X-BAR 的组合将 ePWM 输出路由到另一个 GPIO、但这仍然有一些限制。 尽管所有 GPIO 都可以访问输入 X-Bar、但输出 X-Bar 无法将正弦路由到所有 GPIO、因此需要小心谨慎。 但您所需的配置、即 GPI023 (ePWM12B)-> GPIO34是可能的。  

    将输入 X-Bar 配置为连接 GPIO23和 Input1、然后将输出 X-Bar 配置为连接 Input1和 Output1。 此外、必须注意 的是、只有通过 GpioCtrlRegs.GPxMUX 和 GpioCtrlRegs.GPxGMUX 寄存器选择了正确的 OUTPUTx 多路复用选项、才能在 GPIO 上看到该信号。

    如果我的回复回答了您的问题、请点击位于我帖子底部的"我的问题已解决"按钮。

    此致

    Himanshu

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

    您好!

    以下配置适用于引脚34上的 PWM 输出。

    此致、

    Venkatesh C

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

    您好!

    感谢您的回复。

    但我仍然有问题。

    我知道将 PWM12B 信号路由到引脚所需的 C 代码、我在前面的线程中发布了它。

    我没有将其集成到 Matlab / Simulink 项目中。

    到目前为止、我尝试在"系统初始化块"、"模型源块"和"配置参数/仿真目标/源文件-窗口"中编写额外的自定义代码。

    这是我使用的代码:

    #include "F2837xD_DEVICE.h"
    #include "F2837xD_examples.h"

    空 InitEPwm12Gpio (空)

    //   无法从电路板 LAUNCHXL-F28379D 完全访问 EPWM12 (GPIO22和 GPIO23)。 可通过 LAUNCHXL-F28379D (表用户指南)的引脚8访问 GPIO22。
    //   无法通过任何引脚访问 GPIO23
    //   此处的 InputXBar 和 OutputXBar 用于将 GPIO23路由出去。
    //   《TMS320F2837xD 双核 Delfino 微控制器-技术参考手册》对此进行了说明

    //   从 InputXBar 中选择 Input1,因为它可以将信号路由到 OutputXBar (第1153页)。

    //   来自参考手册-表7-8。 GPIO 复用引脚
    //   GPIO22为 EPWM12A
    //   GPIO23是 EPWM12B

       EALLOW;

       GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1;//禁用上拉

       GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1;

       GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 1;

       InputXbarRegs.INPUT1SELECT = 23;//选择 GPIO23转至 InputXbar 的 Input1
    //   从用户指南中可以看到 GPIO24 (引脚34)可用于 OUTPUTXBAR1。 Input1将路由到此输出
       OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;//从 InputXBar 中选择 INPUTXBAR1作为 Output1。 参考手册-表8-3. 输出 X-Bar 多路复用器配置表
       OutputXbarRegs.OUTPUT1MUXENABLE.BIT.MUX1 = 1;//启用多路复用器

       GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;//将 GPIO24配置为 EPWM12B
       GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1;//禁用 GPIO24上的上拉电阻(EPWM12B)

       EDIS;

    如果有人可以发布功能示例、这将真的对我有所帮助。

    感谢您的支持。

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

    非常感谢。

    它的工作原理。 )