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.

TMS320F2812 EVENT MANAGER B PWM pulse not outting

Other Parts Discussed in Thread: TMS320F2812, SPRC097

Hi, 

    Am using my custom board TMS320F2812 with XDS 100 USB v1 emulator., two of my board not working EVENT MANAGER B .. am getting pwm pulse in PORTA but am not getting pwm pulse in PORTB .  the c code for portb pwm pulse is correct, its working for an other boards., the same code am implementing in this two boards but pwm b pulse is not outting ., i can able to use for gpio , its perfectly HIGH / LOW for using those pin as gpio . i dont know why these are not working in their peripheral  function............

kindly help me in this..

Many Thanks,

Thiyagarajan.S

  • Hi,

    The issue you're mentioning above seems to be very unique and also a rare case. Did you report this behavior to any of the FAEs? Also, if a code works on board number 1 as per required, then it has to on the other boards assuming the boards are cent percent similar. Other than that I don't see any solution to solve this issue; but assuming that the PWM peripherals to be damaged! Hence replacing the MCU remains the only solution.

    But do check with the FAE; as I've not seen the hardware and checked it myself.

    Regards,

    Gautam

  • Gautam, 

        Yet am facing the same problem. i dont know how to contact the FAE .  Am in chennai , Tamil nadu, India. Could you tell that how to contact TI FAE .. 

    Many Thanks, 

    Thiyagarajan.s

  • Check your company's distributor for TI ICs (Arrow/Avnet...etc). Contact them, they'll help you out.

    Regards,

    Gautam

  • Gautam, 

             I started debugging this issues again, actually my old board size was very small and all the processor outing the pwm pulses for the same code. but am coming to the newly developed kit the same processor i desolder the from the small kit and i place the new kit using the same code pulse is not outing. again replaced that processor to the old kit it outing pulses. 

    My doubt that " is their any pull up is required to out pwm pulses to drive length at the board end "

    Note : 1. From the processor to connector it has 13cm long . is it problem ?

                2. The same pins i can able to control as GPIO like on/off or Toggle in both the old and new kits., 

    My Old kit size approximately -  10x13cm

    My New Kit size approximately - 17x25 cm 

    Many thanks,

    Thiyagarajan.S

  • Hi Thiyagu,

    Did you check the voltage levels on the new board? I guess, this might be the issue causing the problem.

    Do check and let me know.

    Regards,

    Gautam

  • Gautam, 

           Voltage level means which one ?

    Core Voltage , I/O Voltage , or PIN Voltage ? 

    Many Thanks,

    Thiyagarajan.S

  • All voltages on the new board, compare it with the old one ie 3.3V, 1.8V...etc

    Regards,

    Gautam

  • Gautam, 

         I compared completely all are same on the both board... 

    while downloading the pwm code to new, it just simply outing the constant 3.3v  , but when using as gpio i can able to control that gpio on/off, or Toggle etc., 

    Am totally confused , what else i have to check ?

    Many Thanks,

    Thiyagarajan.S

  • but when using as gpio i can able to control that gpio on/off, or Toggle etc.,

    That's weird, this means that the new board is fine. Ok, the pwm code that you're talking about is it your general project code or TI's sample code? Please check with PWM sample code once and let me know what you observe.

    Regards,

    Gautam

  • Gautam , 

                     Just i watched the Registers. My Compare Registers are not updating .... kindly look a screenshot image and see the attachment i attached my code too. 

    C code - 

    0216.pwm.txt
    #include "DSP281x_Device.h"
    
    void InitSystem();
    void SCI_Init();
    void InitPieCtrl();
    void InitPieVectTable();
    void InitCpuTimers();
    void freq_key();
    void amp_key();
    void single_UART(unsigned char cmd);
    void UART_conv(unsigned long int conv);
    
    interrupt void Capture4_isr(void);
    interrupt void Compare4_isr(void);
    interrupt void Compare5_isr(void);
    interrupt void Compare6_isr(void);
    
    unsigned int val=0,step_freq=0,amp_per=0,step_amp=0,Rpm=0,Cap_Freq=0,
    			 inc_key=0,dec_key=0,pinc_key=0,pdec_key=0,amp_inc=0,amp_dec=0,
    			 iamp_key=0,damp_key=0,cap_flag=0,flag=0,j=0;
    			 
    unsigned long int count=0,time=0;
    
    unsigned int Index1=0,Index2=21846,Index3=43692,freq=10,amplitude=10;							// amplitude in % , freq in Hz
    				
    signed int Sine_Value1=0,Value1=0,Sine_Loc1=0,
    		   Sine_Value2=0,Value2=0,Sine_Loc2=0,
    		   Sine_Value3=0,Value3=0,Sine_Loc3=0;
    
    char message1[]={"\fSet Frequency in Hz   :"};
    char message2[]={"\n\rAmplitude     in %    :"};
    char message3[]={"\n\rSensor Frequency in Hz:"};
    char message4[]={"\n\rActual Speed  in RPM  :"};
    
    signed  int lookup[256] ={0,807,1614,2420,3224,4027,4827,5624,6417,7207,7992,8773,9548,
    						  10317,11080,11837,12586,13328,14061,14786,15502,16208,16905,
    						  17592,18267,18932,19585,20226,20855,21472,22075,22665,23241,
    						  23803,24351,24883,25401,25903,26390,26860,27315,27752,28173,
    						  28577,28963,29332,29683,30016,30330,30627,30904,31163,31403,
    						  31624,31826,32008,32171,32315,32439,32543,32627,32692,32737,
    						  32761,32766,32751,32717,32662,32587,32493,32379,32246,32092,
    						  31920,31728,31516,31286,31036,30768,30481,30175,29851,29510,
    						  29150,28772,28377,27965,27536,27090,26627,26149,25654,25144,
    						  24619,24079,23524,22955,22372,21775,21165,20542,19907,19260,
    						  18601,17931,17250,16558,15856,15145,14425,13695,12958,12212,
    						  11459,10700,9933,9161,8383,7600,6813,6021,5226,4427,3626,2822,
    						  2017,1211,404,-404,-1211,-2017,-2822,-3626,-4427,-5226,-6021,
    						  -6813,-7600,-8383,-9161,-9933,-10700,-11459,-12212,-12958,-13695,
    						  -14425,-15145,-15856,-16558,-17250,-17931,-18601,-19260,-19907,
    						  -20542,-21165,-21775,-22372,-22955,-23524,-24079,-24619,-25144,
    						  -25654,-26149,-26627,-27090,-27536,-27965,-28377,-28772,-29150,
    						  -29510,-29851,-30175,-30481,-30768,-31036,-31286,-31516,-31728,
    						  -31920,-32092,-32246,-32379,-32493,-32587,-32662,-32717,-32751,
    						  -32766,-32761,-32737,-32692,-32627,-32543,-32439,-32315,-32171,
    						  -32008,-31826,-31624,-31403,-31163,-30904,-30627,-30330,-30016,
    						  -29683,-29332,-28963,-28577,-28173,-27752,-27315,-26860,-26390,
    						  -25903,-25401,-24883,-24351,-23803,-23241,-22665,-22075,-21472,
    					      	  -20855,-20226,-19585,-18932,-18267,-17592,-16905,-16208,-15502,
    						  -14786,-14061,-13328,-12586,-11837,-11080,-10317,-9548,-8773,
    						  -7992,-7207,-6417,-5624,-4827,-4027,-3224,-2420,-1614,-807, 0
    						  };
    void main()
    {
    	
    	InitSystem();
    
    	EALLOW;
    	GpioMuxRegs.GPAMUX.all = 0x0;														// all GPIO port Pin's as I/O
    	GpioMuxRegs.GPBMUX.all = 0x013F; 													// muxing the pwm and capture pin
    	GpioMuxRegs.GPADIR.all = 0x0;														// GPIO PORT  as input
    	GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1;											// muxing the uart pin
    	GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1;
    	EDIS;
    
    	SCI_Init();				
    	InitPieCtrl();		
    	InitPieVectTable();
    	InitCpuTimers(); 	 
    	
    		EALLOW;
    		PieVectTable.CMP4INT = &Compare4_isr;												// placing vector location in vector table
    		PieVectTable.CMP5INT = &Compare5_isr;
    		PieVectTable.CMP6INT = &Compare6_isr;
    		PieVectTable.CAPINT4 = &Capture4_isr;
    		EDIS;
    
    		PieCtrlRegs.PIEIER4.bit.INTx1 = 1;													// enable PIE compare4 interrupt                    
    		PieCtrlRegs.PIEIER4.bit.INTx2 = 1;													// enable PIE compare5 interrupt
    		PieCtrlRegs.PIEIER4.bit.INTx3 = 1;													// enable PIE compare6 interrupt
    		PieCtrlRegs.PIEIER5.bit.INTx5 = 1;													// enable PIE capture4 interrupt
    	
    		IER = 0x0018;
    		EINT;
    		ERTM;
    
    		EvbRegs.T3CNT = 0x0000;			
    		EvbRegs.T3PR = 0x30DA;																// 5khz pwm signal
    		EvbRegs.CMPR4 = 0x186A;																// 50% duty cycle
    		EvbRegs.CMPR5 = 0x186A;
    		EvbRegs.CMPR6 = 0x186A;
    	
    		EvbRegs.ACTRB.all = 0x0666;															// pwm7 -Act High, pwm8 - Act Low... alternatively			
    		EvbRegs.DBTCONB.all = 0x05F8;														// dead band 4us
    		EvbRegs.COMCONB.all = 0xA600;
    		
    		EvbRegs.EVBIMRA.bit.CMP4INT = 1;													// masking the interrupt
    		EvbRegs.EVBIMRA.bit.CMP5INT = 1;
    		EvbRegs.EVBIMRA.bit.CMP6INT = 1;
    		EvbRegs.EVBIMRC.bit.CAP4INT = 1;
    
    		EvbRegs.CAPCONB.bit.CAP45TSEL = 1;
    		EvbRegs.CAPCONB.bit.CAP4EDGE = 1;
    			
    		EvbRegs.T3CON.all = 0x1042;															// GP Timer3 start
    		EvbRegs.CAPCONB.bit.CAP45EN = 1;													// Start Capture	
    
    		while(1)	 
    		{
    			freq_key();																		// function to read frequency in Hz
    			amp_key();																		// function to read amplitude in %
    
    			val = 5000/freq;																// carrier freq / required freq = no of data
    			step_freq = 65536/val;
    
    			amp_per = amplitude;
    			step_amp = ((5625/100) * amp_per);
    
    			time = (7500000000 / count);													// ( 1500 * (125000000/25) / count );
    			Rpm = time;
    
    			Cap_Freq = (125000000/count);													// Capture Frequency
    			if(flag>8000)
    			{
    				flag=0;
    			    for(j=0;j<25;j++)                                                    
     			       single_UART(message1[j]);
         		    UART_conv(freq);
                                                                                   
     			    for(j=0;j<25;j++)
    				   single_UART(message2[j]); 
    			    UART_conv(amp_per);
    
    				for(j=0;j<25;j++)
    				   single_UART(message3[j]); 
    			    UART_conv(Cap_Freq);
    
     		        for(j=0;j<25;j++)
    				   single_UART(message4[j]); 
    			    UART_conv(Rpm);
    			}flag++;
    		
    		}
    }
    
    void InitSystem()
    {
    		EALLOW;
    	   	SysCtrlRegs.WDCR= 0x0068;															// Setup the watchdog 
       																							// 0x0068  to disable the Watchdog , Prescaler = 1
       																							// 0x00AF  to NOT disable the Watchdog, Prescaler = 64
       		SysCtrlRegs.SCSR = 0; 																// Watchdog generates a RESET	
    	   	SysCtrlRegs.PLLCR.bit.DIV = 10;														// Setup the Clock PLL to multiply by 5
        
       		SysCtrlRegs.HISPCP.all = 0x1; 														// Setup Highspeed Clock Prescaler to divide by 2
    	   	SysCtrlRegs.LOSPCP.all = 0x2; 														// Setup Lowspeed CLock Prescaler to divide by 4
          	
       		// Peripheral clock enables set for the selected peripherals.   
    	   	SysCtrlRegs.PCLKCR.bit.EVAENCLK=0;
    	   	SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
    	   	SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;
    	   	SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0;
    	   	SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0;
    	   	SysCtrlRegs.PCLKCR.bit.SPIENCLK=0;
    	   	SysCtrlRegs.PCLKCR.bit.ECANENCLK=0;
    	   	SysCtrlRegs.PCLKCR.bit.ADCENCLK=0;
       		EDIS;
    }
    
    void Compare4_isr(void)
    {
    		Index1 				= 		 Index1 + step_freq; 
    		if(Index1>65536) Index1=0;
        	Sine_Loc1  			= 		 Index1 >> 8;
        	Sine_Value1 		= 		 lookup[Sine_Loc1];
        	Value1 				=  		 (Sine_Value1 * (long)step_amp) >> 15; 
       	 	EvbRegs.CMPR4		= 		 Value1 + 0x186A;
    		      
       		EvbRegs.EVBIFRA.bit.CMP4INT = 1; 													// Reset Compare4 Interrupt Flag
       
        	PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;												// Acknowledge this interrupt to receive more interrupts from group 2
    }
    
    void Compare5_isr(void)
    {
    		Index2 				= 		 Index2 + step_freq; 
    		if(Index2>65536) Index2=0;
        	Sine_Loc2  			= 		 Index2 >> 8;
        	Sine_Value2 		= 		 lookup[Sine_Loc2];
        	Value2 				=  		 (Sine_Value2 * (long)step_amp) >> 15; 
       	 	EvbRegs.CMPR5		= 		 Value2 + 0x186A;
    		   
       		EvbRegs.EVBIFRA.bit.CMP5INT = 1; 													
       
        	PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;												
    }
    
    void Compare6_isr(void)
    {
    		Index3 				= 		 Index3 + step_freq; 
    		if(Index3>65536) Index3=0;
        	Sine_Loc3  			= 		 Index3 >> 8;
        	Sine_Value3 		= 		 lookup[Sine_Loc3];
        	Value3 				=  		 (Sine_Value3 * (long)step_amp) >> 15;
       	 	EvbRegs.CMPR6		= 		 Value3 + 0x186A;
    		   
    		   
       		EvbRegs.EVBIFRA.bit.CMP6INT = 1; 
       
        	PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;	
    }
    
    void freq_key()
    {
    		inc_key = GpioDataRegs.GPADAT.bit.GPIOA0;
    		dec_key = GpioDataRegs.GPADAT.bit.GPIOA1;
    	
    		if(inc_key==1 && dec_key==0 && pinc_key==0)
    		{
    			pinc_key=1;
    		
    			if(freq<50)
    				
    					freq+=5;
    			else
    					freq=50;
    		}
    	
    		else if(inc_key==0 && pinc_key==1)
    		{		
    			pinc_key=0;
    		}
    
    		else if(dec_key==1 && inc_key==0 && pdec_key==0)
    		{
    			pdec_key=1;	
    			
    			if(freq>10)
    				
    					freq-=5;
    			else
    					freq=10;	
    		}
    
    		else if(dec_key==0 && pdec_key==1) 
    		{
    			pdec_key=0;
    		}
    }
    
    
    void SCI_Init(void)
    {
    		SciaRegs.SCICCR.all =0x0007;   														// 1 stop bit,  No loopback 
    		 	                           														// No parity,8 char bits,
                	                       														// async mode, idle-line protocol
    		SciaRegs.SCICTL1.all =0x0003;  														// enable TX, RX, internal SCICLK, 
                    		               														// Disable RX ERR, SLEEP, TXWAKE
    		SciaRegs.SCIHBAUD = 405 >> 8 ;  													// 9600 Baud ; LSPCLK = 31.25MHz
    		SciaRegs.SCILBAUD = 405 & 0x00FF;	 
    		SciaRegs.SCICTL1.all =0x0023;														// Relinquish SCI from Reset   
    }  
    
    void amp_key()
    {
    		amp_inc = GpioDataRegs.GPADAT.bit.GPIOA2;
    		amp_dec = GpioDataRegs.GPADAT.bit.GPIOA3;
    
    		if(amp_inc==1 && amp_dec==0 && iamp_key==0)
    		{
    			iamp_key=1;
    
    			if(amplitude<100) amplitude+=5;
    	
    			else amplitude=100;
    		}
    	
    		else if(amp_inc==0 && iamp_key==1)
    		{		
    			iamp_key=0;
    		}	
    
    		else if(amp_inc==0 && amp_dec==1 && damp_key==0)
    		{
    			damp_key=1;
    		
    			if(amplitude>10) amplitude-=5;
    		
    			else amplitude=10;
    		}
    
    		else if(amp_dec==0 && damp_key==1)
    		{
    			damp_key=0;
    		}
    }
    
    void Capture4_isr()
    {
    		if(cap_flag==0)
    		{
    			cap_flag = 1;
    			CpuTimer0Regs.TIM.all = 0;
    			CpuTimer0Regs.TCR.bit.TSS = 0;
    
    		}
    		
    		else if(cap_flag==1)
    		{
    			cap_flag = 0;
    			CpuTimer0Regs.TCR.bit.TSS = 1;
    			count = (0xFFFFFFFF - (CpuTimer0Regs.TIM.all));
    		}
    		
    		EvbRegs.EVBIFRC.bit.CAP4INT =  1;
    		PieCtrlRegs.PIEACK.all = PIEACK_GROUP5;
    }
    
    void UART_conv(unsigned long int conv)
    {
        unsigned int cap_freq1,cap_freq2,cap_freq3,cap_freq4,cap_freq5,cap_freq6;
    	cap_freq1 = conv/1000;
    	cap_freq2 = conv%1000;
    	cap_freq3 = cap_freq2/100;
    	cap_freq4 = cap_freq2%100;
    	cap_freq5 = cap_freq4/10;
    	cap_freq6 = cap_freq4%10;
    
    	
        single_UART(cap_freq1+0x30);
        single_UART(cap_freq3+0x30);
        single_UART(cap_freq5+0x30);
        single_UART(cap_freq6+0x30);
    	for(j=0;j<1250;j++);
    }
    
    void single_UART(unsigned char cmd)
    {
    	SciaRegs.SCITXBUF=cmd;
    	while ( SciaRegs.SCICTL2.bit.TXEMPTY == 0);
    }
    

    Many Thanks, 

    Thiyagarajan.S

  • Please check with the sample code as suggested earlier.

    Also, check this link: http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/310506.aspx

    Regards,

    Gautam

  • Gautam, 

                Actually this same code am working with my old board . it can able to generate the pwm with this same code.

    Many Thanks,

    Thiyagarajan.S

  • Gautam, 

                  I added that IER register line at the compare register ISR ...

    void Compare4_isr(void)
    {
    Index1 = Index1 + step_freq;
    if(Index1>65536) Index1=0;
    Sine_Loc1 = Index1 >> 8;
    Sine_Value1 = lookup[Sine_Loc1];
    Value1 = (Sine_Value1 * (long)step_amp) >> 15;
    EvbRegs.CMPR4 = Value1 + 0x186A;

    EvbRegs.EVBIFRA.bit.CMP4INT = 1; // Reset Compare4 Interrupt Flag

    PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Acknowledge this interrupt to receive more interrupts from group 2
    IER = 0x0018;
    }

    but the same response..........

    Many Thanks, 

    Thiyagarajan.S

  • You've missed this line:

    PieCtrlRegs.PIECTRL.bit.ENPIE = 1;          // Enable the PIE block

    Use this before: in main()

    IER = 0x0018;
    EINT;
    ERTM;

    Regards,

    Gautam

  • Gautam, 

       Compare register can able to update now . after adding that line in program. but yet it not outing the pulse. 

    Many Thanks,

    Thiyagarajan.S

  • That's great! Now about PWM out, these conditions are very important:

    EPwm2Regs.CMPA.half.CMPA = duty;       // Set compare A value
        EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET;             // Clear PWM2A on Period
        EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;               // Set PWM2A on event A, up count

    Now, as you're using Event Manager to generate PWM for F2812; it would be better if you check out the above equivalent code  for your controller. Refer the sample PWM code for more info.

    Regards,

    Gautam

  • Gautam, 

         These all i done at my coding.

    EvbRegs.T3CNT = 0x0000;
    EvbRegs.T3PR = 0x30DA; // 5khz pwm signal
    EvbRegs.CMPR4 = 0x186A; // 50% duty cycle
    EvbRegs.CMPR5 = 0x186A;
    EvbRegs.CMPR6 = 0x186A;

    EvbRegs.ACTRB.all = 0x0666; // pwm7 -Act High, pwm8 - Act Low... alternatively
    EvbRegs.DBTCONB.all = 0x05F8; // dead band 4us
    EvbRegs.COMCONB.all = 0xA600;

    EvbRegs.EVBIMRA.bit.CMP4INT = 1; // masking the interrupt
    EvbRegs.EVBIMRA.bit.CMP5INT = 1;
    EvbRegs.EVBIMRA.bit.CMP6INT = 1;
    EvbRegs.EVBIMRC.bit.CAP4INT = 1;

    EvbRegs.CAPCONB.bit.CAP45TSEL = 1;
    EvbRegs.CAPCONB.bit.CAP4EDGE = 1;

    EvbRegs.T3CON.all = 0x1042; // GP Timer3 start
    EvbRegs.CAPCONB.bit.CAP45EN = 1; // Start Capture

    The same coding i got output in my small kit . so i think we no need to worry about the codings... 

    Many Thanks,

    Thiyagarajan.S

  • The same coding i got output in my small kit . so i think we no need to worry about the codings...

    If that is the case then there should no reason why the PWMs are not working! Secondly please check whether the sample PWM code is working or not, atleast I'll get some idea where the fault is!

    Regards,

    Gautam

  • Gautam, 

          For TMS320F2812 i didnt get any sample code. please if you know send the link . in control suite,  piccolo only it seems.

    Many Thanks, 

    Thiyagarajan.S

  • Here are the sample codes: www-s.ti.com/sc/techzip/sprc097.zip

    Regards,

    Gautam

  • Gautam, 

          I think finally i found the problem, let see...

    actually in my evaluation board(small board) i can able to write the TCMPOE(Compare output enable) bit in GPTCONBregister,

    EvbRegs.GPTCONB.bit.TCMPOE = 1;       // Drive T1/T2 PWM by compare logic

    but in my new development kit (Big board) i cant able write.

    i dont know for what reason processor cant able write those bit in new board.. . ?

    Many Thanks,

    Thiyagarajan.S

  • As I don't have much experience with event manager so I won't be able to help you further. I hope you would've got the complete idea after referring the sample codes. Try out things with the help of reference codes and do update me.

    Regards,

    Gautam

  • Gautam, 

           I didnt get your reference code yet., when i clicked your link it getting as error "Group Not Found"

    Many Thanks, 

    Thiyagarajan.S

  • Updated the link or else just copy and paste the above link.

  • Same Response , Getting Group Not Found Error.....

  • There's some issue, copy this link and paste it:

    www-s.ti.com/sc/techzip/sprc097.zip

  • Gautam, 

         As per your advice, i loaded sample program from ti header file setup and i checked the both the kit yet same response . but i noticed that  in my evaluation board(small board) i can able to write the TCMPOE(Compare output enable) bit in GPTCONBregister,

    EvbRegs.GPTCONB.bit.TCMPOE = 1;       // Drive T1/T2 PWM by compare logic

    but in my new development kit (Big board) i cant able write.

    i dont know for what reason processor cant able write those bit in new board.. . ?

    Please this is the problem i noticed... give the solution for this... 

  • It seems strange . Anyways, I'll relay your query to one of my TI buddy.

    Regards,

    Gautam

  • Gautam, 

                   And also i found that COMCONB register 8th bit PDPINTB Status is active , if this pin is active cant compare output enable , 

      i want to know how to change the PDPINTB status and for what reason it should active i want to know ....

    Due to PDPINTB active i cant write the below compare output enable registers

    1. EvbRegs.GPTCONB.bit.TCMPOE = 1;  // Drive T1/T2 PWM by compare logic

    2. EvbRegs.COMCONB.bit.FCMPOE = 1; // Full compare outputs are driven by compare logic

    hence am not getting pulse itseems .... am i right ???

    Many Thanks,

    Thiyagarajan.S

  • Gautam , 

            I got all the 16PWM  on my New kit. i found the mistakes . This post may useful for future users.

    Actually the PDPINTA & PDPINTB status is getting active because,

    PORTD - D0,D1,D5 & D6 pins are connected the slide switches with one side no connection and pull down on another side

    PDPINTA & PDPINTB is active low pin.

    i found that GPIOD0 - T1CTRIP_PDPINTA (I) and GPIOD5 - T3CTRIP_PDPINTB (I) switches at pull down logic., so always the PDPINTA & PDPINTB is active , because of switches the pin is forced pull down.  so it disables all the PWM Compare output. so only i cant able to write those register.

    Once i changed that switches to no connection side , then i can able to write those registers. That's all my problem was solved simply. 

    Anyhow Thanks Gautam , your continue replying make me to found the solution for this problem.

    Many Thanks, 

    Thiyagarajan.S

  • That's great, mate!

    Doesn't it feel great when one solves his own issue? Don't forget to verify your answer.

    Good Luck and Regards,

    Gautam