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.

[参考译文] TMS320F28379S:需要 TMS320F28379S 帮助

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1106448/tms320f28379s-tms320f28379s-help-needed

器件型号:TMS320F28379S
Thread 中讨论的其他部件:TMS320F28335controlSUITEC2000WARESysConfig

尊敬的 TI:

我已经为 TMS320F28335制作了标量控制代码、我在其中使用 了 f2833xpwm.h 驱动程序文件。 我必须对 TMS320F28379S 执行相同的操作、但无法找到任何  f2837xpwm.h 或类似文件。 请告诉我如何操作。

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

    您好 Pratyush、

    该文件位于:C:/ti/C2000/controlSUITE/device_support/F2837xS/V210/F2837xS_headers/include/F2837xS_epwm.h

    如果您使用的是 controlSUITE、我只想让您知道 controlSUITE 未得到维护。 所有新器件和错误修复都在 C2000Ware SDK 中完成。 因此、我建议您在新项目中使用 C2000Ware SDK。 可从此处下载:  

    https://www.ti.com/tool/C2000WARE

    如果您已经使用 C2000Ware SDK、则可以在以下位置找到该文件:

    C:/ti/C2000/C2000Ware_4_01_00_00/device_support/f2837xs/headers/include/F2837xS_epwm.h

    谢谢、此致、

    桑托什

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

    您好、Santosh、

    我正在使用 f2833xpwm.h 中的 PWM_init_macro、f2803xpwm.h 中也存在此类文件类型、但 f28379s 没有此类库文件。 这是 f2833xpwm.h 的代码 f28379中是否有类似之事?  

    /* ==================================================================================
    File name  : F2833xPWM.H                                         
    Target     : TMS320F2833x family                         
    ===================================================================================*/
    
    #ifndef __F2833X_PWM_H__
    #define __F2833X_PWM_H__
    
    #include "f2833xbmsk.h"
    #include "f2833xdrvlib.h"
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Time-Base Control Registers for PWM Generation. 
    Sets up the timer to run free upon emulation suspend, count up-down mode
    prescaler 1.
    ----------------------------------------------------------------------------*/
    #define PWM_INIT_STATE ( FREE_RUN_FLAG +         \
                             PRDLD_IMMEDIATE  +       \
                             TIMER_CNT_UPDN +         \
                             HSPCLKDIV_PRESCALE_X_1 + \
                             CLKDIV_PRESCALE_X_1  +   \
                             PHSDIR_CNT_UP    +       \
                             CNTLD_DISABLE )
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Compare Control Register. 
    ----------------------------------------------------------------------------*/
    #define CMPCTL_INIT_STATE ( LOADAMODE_ZRO + \
                                LOADBMODE_ZRO + \
                                SHDWAMODE_SHADOW + \
                                SHDWBMODE_SHADOW )
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Action Qualifier Output A Register. 
    ----------------------------------------------------------------------------*/
    #define AQCTLA_INIT_STATE ( CAD_SET + CAU_CLEAR )
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Dead-Band Generator registers for PWM Generation. 
    Sets up the dead band for PWM and sets up dead band values.
    ----------------------------------------------------------------------------*/
    #define DBCTL_INIT_STATE  (BP_ENABLE + POLSEL_ACTIVE_HI_CMP)
    
    #define DBCNT_INIT_STATE   200   // 200 counts = 1.33 usec (delay)  (for TBCLK = SYSCLK/1)
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X PWM Chopper Control register for PWM Generation. 
    ----------------------------------------------------------------------------*/
    #define  PCCTL_INIT_STATE  CHPEN_DISABLE
    
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Trip Zone Select Register 
    ----------------------------------------------------------------------------*/
    #define  TZSEL_INIT_STATE  DISABLE_TZSEL
                  
    /*----------------------------------------------------------------------------
    Initialization constant for the F2833X Trip Zone Control Register 
    ----------------------------------------------------------------------------*/
    #define  TZCTL_INIT_STATE ( TZA_HI_Z + TZB_HI_Z + \
                                DCAEVT1_HI_Z + DCAEVT2_HI_Z + \
                                DCBEVT1_HI_Z + DCBEVT2_HI_Z )
                                                                     
    /*-----------------------------------------------------------------------------
    	Define the structure of the PWM Driver Object 
    -----------------------------------------------------------------------------*/
    typedef struct {   
            Uint16 PeriodMax;   // Parameter: PWM Half-Period in CPU clock cycles (Q0)
            Uint16 HalfPerMax;	// Parameter: Half of PeriodMax (Q0)
            Uint16 Deadband;    // Parameter: PWM deadband in CPU clock cycles (Q0) 
            _iq MfuncC1;        // Input: EPWM1 A&B Duty cycle ratio (Q24)
            _iq MfuncC2;        // Input: EPWM2 A&B Duty cycle ratio (Q24)
            _iq MfuncC3;        // Input: EPWM3 A&B Duty cycle ratio (Q24)
            } PWMGEN ;    
    
    
    /*------------------------------------------------------------------------------
    	Default Initializers for the F2833X PWMGEN Object 
    ------------------------------------------------------------------------------*/
    #define F2833X_FC_PWM_GEN    { 1000,  \
    							   1000,  \
                                  	200,  \
                                  0x4000, \
                                  0x4000, \
                                  0x4000, \
                                 }
                                 
    
    #define PWMGEN_DEFAULTS 	F2833X_FC_PWM_GEN
    
    /*------------------------------------------------------------------------------
    	PWM Init & PWM Update Macro Definitions
    ------------------------------------------------------------------------------*/
    
    
    
    #define PWM_INIT_MACRO(ch1,ch2,ch3,v)										\
    	     /* Setup Sync*/													\
             (*ePWM[ch1]).TBCTL.bit.SYNCOSEL = 0;       /* Pass through*/		\
    		 (*ePWM[ch2]).TBCTL.bit.SYNCOSEL = 0;       /* Pass through*/		\
    		 (*ePWM[ch3]).TBCTL.bit.SYNCOSEL = 0;       /* Pass through*/		\
    		 																	\
             /* Allow each timer to be sync'ed*/								\
             (*ePWM[ch1]).TBCTL.bit.PHSEN = 1;									\
             (*ePWM[ch2]).TBCTL.bit.PHSEN = 1;									\
             (*ePWM[ch3]).TBCTL.bit.PHSEN = 1;									\
             																	\
             /* Init Timer-Base Period Register for EPWM1-EPWM3*/				\
             (*ePWM[ch1]).TBPRD = v.PeriodMax;									\
             (*ePWM[ch2]).TBPRD = v.PeriodMax;									\
             (*ePWM[ch3]).TBPRD = v.PeriodMax;									\
    																			\
             /* Init Timer-Base Phase Register for EPWM1-EPWM3*/				\
             (*ePWM[ch1]).TBPHS.half.TBPHS = 0;									\
             (*ePWM[ch2]).TBPHS.half.TBPHS = 0;									\
             (*ePWM[ch3]).TBPHS.half.TBPHS = 0;									\
    																			\
             /* Init Timer-Base Control Register for EPWM1-EPWM3*/				\
             (*ePWM[ch1]).TBCTL.all = PWM_INIT_STATE;							\
    		 (*ePWM[ch2]).TBCTL.all = PWM_INIT_STATE;							\
    		 (*ePWM[ch3]).TBCTL.all = PWM_INIT_STATE;							\
    																			\
             /* Init Compare Control Register for EPWM1-EPWM3*/					\
             (*ePWM[ch1]).CMPCTL.all = CMPCTL_INIT_STATE;						\
             (*ePWM[ch2]).CMPCTL.all = CMPCTL_INIT_STATE;						\
             (*ePWM[ch3]).CMPCTL.all = CMPCTL_INIT_STATE;						\
    																			\
             /* Init Action Qualifier Output A Register for EPWM1-EPWM3*/		\
             (*ePWM[ch1]).AQCTLA.all = AQCTLA_INIT_STATE;						\
             (*ePWM[ch2]).AQCTLA.all = AQCTLA_INIT_STATE;						\
             (*ePWM[ch3]).AQCTLA.all = AQCTLA_INIT_STATE;						\
    																			\
             /* Init Dead-Band Generator Control Register for EPWM1-EPWM3*/		\
             (*ePWM[ch1]).DBCTL.all = DBCTL_INIT_STATE;							\
             (*ePWM[ch2]).DBCTL.all = DBCTL_INIT_STATE;							\
             (*ePWM[ch3]).DBCTL.all = DBCTL_INIT_STATE;							\
    																			\
             /* Init Dead-Band Generator for EPWM1-EPWM3*/						\
             (*ePWM[ch1]).DBFED = v.Deadband;									\
             (*ePWM[ch1]).DBRED = v.Deadband;									\
             (*ePWM[ch2]).DBFED = v.Deadband;									\
             (*ePWM[ch2]).DBRED = v.Deadband;									\
             (*ePWM[ch3]).DBFED = v.Deadband;									\
             (*ePWM[ch3]).DBRED = v.Deadband;									\
    																			\
             /* Init PWM Chopper Control Register for EPWM1-EPWM3*/				\
             (*ePWM[ch1]).PCCTL.all = PCCTL_INIT_STATE;							\
             (*ePWM[ch2]).PCCTL.all = PCCTL_INIT_STATE;							\
             (*ePWM[ch3]).PCCTL.all = PCCTL_INIT_STATE;							\
              																	\
             EALLOW;                       /* Enable EALLOW */					\
    																			\
             /* Init Trip Zone Select Register*/								\
             (*ePWM[ch1]).TZSEL.all = TZSEL_INIT_STATE;							\
             (*ePWM[ch2]).TZSEL.all = TZSEL_INIT_STATE;							\
             (*ePWM[ch3]).TZSEL.all = TZSEL_INIT_STATE;							\
    																			\
             /* Init Trip Zone Control Register*/								\
             (*ePWM[ch1]).TZCTL.all = TZCTL_INIT_STATE;							\
             (*ePWM[ch2]).TZCTL.all = TZCTL_INIT_STATE;							\
             (*ePWM[ch3]).TZCTL.all = TZCTL_INIT_STATE;							\
    																			\
             EDIS;                         /* Disable EALLOW*/			
    
    
    
    
    
    
    
    #define PWM_MACRO(ch1,ch2,ch3,v)													\
    																					\
    /*  Mfuncx range is (-1,1)														*/	\
    /*  The code below changes PeriodMax*Mfuncx range ....  						*/	\
    /*  from (-PeriodMax,PeriodMax) to (0,PeriodMax) where HalfPerMax=PeriodMax/2	*/	\
    																					\
    	(*ePWM[ch1]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC1)+ v.HalfPerMax;		\
    	(*ePWM[ch2]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC2)+ v.HalfPerMax;		\
    	(*ePWM[ch3]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC3)+ v.HalfPerMax;		\
    
    #endif  // __F2833X_PWM_H__
    

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

    您好 Pratyush、

    这些宏不适用于较新的器件。 如果这是新器件、我建议使用最新的 C2000Ware、它支持所有外设的 SysConfig (基于 GUI)配置。 请看一下。