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.

[参考译文] TMS320F28335:TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/878690/tms320f28335-tms320f28335

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

嗨、大家好

我在 CCSv6中创建死区时间时遇到问题。

下面的代码生成三级波形,但我不能通过使用 DELAY_US()来增加延迟或死区时间。 我该怎么做?!

我不想使用 ePWM 模块、这有几个原因、

提前感谢

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

中断空 CPU_timer0_ISR (空)

Realtime_sin =(0.9*(sin (0.00314*cnt)));// sin (2*3.14*50Hz*(cnt/100kHz));50Hz 频率烘烤、100kHz 频率间隙。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (cnt1<25)

realitime_triangle1=((float)(0.04*(cnt1)));

if (cnt1>24)

realitime_triangle1=((float)(-0.04*(cnt1))+2);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (realtime_sin = 0)
i++;
if ((i%2)=0)

C=1;
NC=0;

其他

C=0;
NC=1;

////////////////////////////////
if (realtime_sin > realitime_triangle1)

B=1;
NB=0;

其他

B=0;
NB=1;

/////////////////////////////////// 栅极信号/////////////////////////////////////////////////////////////////////
LP1=(B 和 C);
LN1 =(B & NC);

EALLOW;
GpioDataRegs.GPADAT.bit.GPIO1 = LP1;
EDIS;

EALLOW;
GpioDataRegs.GPADAT.bit.GPIO7 = LP1;
EDIS;

EALLOW;
GpioDataRegs.GPADAT.bit.GPIO3 = LN1;
EDIS;

EALLOW;
GpioDataRegs.GPADAT.bit.GPIO5 =  LN1;
EDIS;

CNT++;

cnt1++;

if (cnt>999)
CNT=0;
if (cnt1>49)
cnt1=0;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//确认此中断以从组1接收更多中断
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;

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

    阿克巴里

    我会说、将 PWM 波形进行位调制并不是最好的主意、但可以这么做。 使用"delay_US()"也不是一个好主意,它会使 CPU 浪费周期停顿。

    如果您不想使用 ePWM 模块、这会为我们提供两个合理的选项、1个 eCAP 和2个 CPU 计时器。

    eCAP 具有一个"APWM"运行模式、此模式可实现基本 PWM 输出、这可能比您通过切换 GPIO 实现的效果好得多。  

    如果您有可用的 CPU 计时器、它将提供一致的方法来测量 GPIO 切换之间的延迟。 它还将使您的 CPU 自由运行应用程序代码。

    您不使用 ePWM 模块的理由是什么? 除了"我已经分配了所有 ePWM 模块并需要另一个 PWM 输出"之外、我不能认为没有使用 ePWM 模块的有效原因。

    此致、
    Cody  

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

    感谢您的回复 Cody、

    我不使用 ePWM 模块的原因是我正在使用多级逆变器。 在多级逆变器中、我们需要两个以上的带、对于电平位移 SPWM 方法、这些带需要在振幅上进行移位。 然后、应将这些承载方式与正弦基准进行比较、以产生正确的信号来驱动电源开关。 在多级逆变器中、可能需要在多个电压电平下打开一个开关。 考虑 图中所示的简单 T 型逆变器。 内容。 需要打开开关 S1以生成级别+2、+1。 我尝试使用 ePWM 模块为该开关生成栅极信号,但不允许执行逻辑运算(AND、OR、XOR、...) GPIO。 因此、我生成栅极信号、然后将其分配给 GPIO。

    我尝试了 DELAY_US(),但它只是产生了一个延迟,我不能用它产生死区时间间隔。

    祝你一切顺利

    Amir

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

    Amir、

    如果您可以切换到另一个器件、则 TMS320F28379D 或该系列中的任何器件都是一个不错的选择。 它们都具有专门启用 PWM 输出逻辑组合的 CLB (可配置逻辑块)。 FYI CLB 可以实现更多功能、但这是可能的用例之一。

    此致、
    Cody  

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

    尊敬的 Cody:

    感谢您的回复、

    那么、您是说我们不能通过使用 ePWM 模块将 TMS320F28335用于多级逆变器应用? 我尝试了不同的方法、但在一天结束时、我必须使用我建议的程序来生成栅极信号。

    感谢您宝贵的时间

    Amir

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

    Amir、

    不客气。 我见过客户在该器件上实现了多级逆变器。 虽然我无法评论他们使用的确切方法、但它可以通过控制 PWM 的代码或显式外部逻辑(AND、OR 等)来完成。 代码可以是基于中断或状态机的、但会使用 PWM 模块。 我不知道有任何人成功地使用 GPIO 来仿真尽可能多的 PWM、就像您尝试的那样。  

    此致、
    Cody  

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

    尊敬的 Cody:

    感谢您的回复以及您花时间为我提供帮助、

    嗯、我想我应该用不同的方法来尝试它! 对我来说很烦人!

    祝你一切顺利