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:使用 PWM 7触发 ADC ISR

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/969547/tms320f28379d-using-pwm-7-to-trigger-adc-isr

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

您好!

我使用 F28379D 为  直流/直流转换器和直流/交流逆变器( 开关频率= 10kHz 时的 PWM 7、8、9)生成 PWM 信号(PWM 1、2、3、3、开关频率= 200kHz)。 到目前为止、我使用 PWM1来实现 ADC_ISR。 所有控制过程都在 ADC_ISR 内部进行、频率为200kHz。 我使用以下代码为 ADC_ISR 选择 PWM1:

EALLOW;
EPwm1Regs.ETSEL.bit.SOCASEL = 1;//选择 SOC 为零
EPwm1Regs.ETSEL.bit.SOCAEN = 1;//启用 SOCA
EPwm1Regs.ETPS.bit.SOCAPRD = ET_1ST;//在发生_____事件时生成脉冲
EDIS;

现在、我要将 PWM7用于具有10kHz 开关频率的 ADC_ISR、同时在直流/直流级保持 PWM1、2、3的200kHz 开关频率。 为此、我尝试将上述代码中的 EPwm1更改为 EPwm7、但这不起作用。 您能不能指导我在将 PWM7用于 ADC_ISR 时缺少什么?

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

    ADCSOC0CTL.TRIGSEL

    该寄存器决定将哪个 SOCA/B 用作 ADC 的 EPWM。

    NIMA

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

    你好、Nima、非常感谢。 我能够使用上面建议的方法以10kHz 的频率获得 ADC ISR。  

    在这方面,我还有另一个问题。 如何在同一代码中设置2个 ADC ISR、一个以10kHz 运行、另一个以200kHz 运行? 我将随附代码的 c 文件以供您参考。 我希望在200kHz 的 ADC ISR 中控制直流/直流级和电流感应、并在10kHz 的 ADC ISR 中控制直流/交流级。

    我认为所附文件中的代码的这一部分需要更改、但我并不真正了解如何进行更改。 请提供指导。

    //line 343至351
    //此示例中使用的中断被重新映射到
    //此文件中的 ISR 函数。
    //
    EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
    PieVectTable.EPWM1_INT =&epwm1_ISR;
    // PieCtrlRegs.PIEIER3.bit.INTx7=1;
    PieVectTable.ADCA1_INT =&adca1_ISR;//针对 ADCA 中断1的函数
    EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的

    //行1077至1081
    // ADC SOC
    EALLOW;
    EPwm4Regs.ETSEL.bit.SOCASEL = 1;//选择 SOC 为零
    EPwm4Regs.ETSEL.bit.SOCAEN = 1;//启用 SOCA
    EPwm4Regs.ETPS.bit.SOCAPRD = ET_1ST;//在发生_____事件时生成脉冲
    EDIS;

    e2e.ti.com/.../0336.control_5F00_cpu01.c

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

    您需要将两个不同的 ePWM 模块连接到两个不同的 ADC。 然后、每个 ePWM 中断将处理它自己的控制系统。

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

    请提供一个这样的示例吗?

    我在 TI controlSUITE 中的路径 C:\ti\controlSUITE\development_kits\TMDSHVVRESLLCKIT_v1.0\HVLLC 中找到了此类示例

    但这并没有给我提供两个在两个不同频率下工作的 ADC-ISR。 上述示例(HVLLC)中代码的主要部分如下所示、但这并不提供所需的结果。

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

    不幸的是,没有,我无法提供解决办法。 我可以指导您完成整个过程。 请为2个 ePWM、2个 ADC 和寄存器2个不同 ISR 编写初始化代码、开发 ISR 处理程序。