TMS320F280049C: 程序中ADC采样读取耗时与PWM写入耗时

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE

样例程序为C2000Ware_DigitalPower_SDK_5_06_00_00\solutions\tida_010210工程

1.为什么在编译器中开启优化为Optimization level (--opt_level, -O) =2,Speed vs. size trade-offs (--opt_for_speed, -mf)=5,ADC结果读取时间与PWM比较值写入时间会缩短数倍。我使用CPUTIME1测得的时间,ADC读取次数为13次,EPWM比较值共写入三次,各部分耗时如下

无优化(单位us)
设置的中断频率 实际频率 中断函数总耗时 ADC采样 epwm更新
50k 28.5k 32.8us 10.6us 6.5us
         
         
         
优化(单位us)
设置的中断频率 实际频率 中断函数总耗时 ADC采样 epwm更新
50k 50k 7.6us 1.25us 2us

2.在“显示 C2000™ 控制 MCU 优化信号链的实时基准测试”文档中关于ADC结果读取时间与EPWM比较值写入时间远远短于我使用CPUTIME1测试的时间,这是为什么?文档中说明ADC单次读取时间为两个周期即20ns,EPWM单次写入时间为三个周期即30ns,文档说明如图所示

image.png

  • 看起来你在代码中使用了中断服务例程(ISR)来计时ADC读取和EPWM写入操作。进入、执行、服务、清除和退出中断都会引入延迟。如果在ISR中使用变量,还会生成等效的写入语句,从而占用CPU周期。使用CPU定时器也会引入延迟,因此在比较2-3周期事件时,这可能不是测量ADC/EPWM寄存器读写操作的最佳方法。以应用笔记表格为例,其中显示ADC读取需要2个周期,EPWM写入需要3个周期。这意味着在F280049微控制器上,当系统时钟(SYSCLK)为100MHz时,ADC转换完成后读取结果需要2个周期*(1/100MHz) = 20纳秒;而EPWM(例如写入TBPRD或CMPx寄存器)则需要3个周期*(1/100MHz) = 30纳秒。由于涉及的延迟,这些操作无法通过ISR方法直接测量/比较。

  • 好的,谢谢您的回答!

    在F280049微控制器上,系统时钟(SYSCLK)已设置为100MHz,我的测速程序如下

    #define ANPC_INV_HAL_VG_A_FB    ADC_readResult(ANPC_INV_VGRID_A_ADCRESULT_BASE,\
                                        ANPC_INV_VGRID_A_ADC_SOC_NO)
        uint32_t start2 = CPUTimer_getTimerCount(CPUTIMER1_BASE);
        ANPCINV_vGrid_A_sensed_pu = ((float32_t)ANPC_INV_HAL_VG_A_FB *
                                    ANPC_INV_ADC_PU_SCALE_FACTOR -
                                    ANPCINV_vGrid_A_sensedOffset_pu) * 2.0f;
    
        uint32_t end2 = CPUTimer_getTimerCount(CPUTIMER1_BASE);
    
        uint32_t delta2 = start2 - end2;
        volatile float32_t adc_freq2 = delta2 / 100.0f;

    测得的一次采样读取的时间为0.04us,大致符合您说的时间。

    我有两个疑问:

    1.为什么需要开启两个优化后才能达到该理论速度?

    2.我修改驱动移植代码到F28379D芯片后,同样的代码测得一次采样读取的时间为0.2us,这是什么原因导致的?syscfg生成的ADC初始化代码如下

    void ADC_init(){
    	myADCA_init();
    	myADCB_init();
    	myADCC_init();
    	myADCD_init();
    }
    
    void myADCA_init(){
    	//
    	// Configures the analog-to-digital converter module prescaler.
    	//
    	ADC_setPrescaler(myADCA_BASE, ADC_CLK_DIV_2_0);
    	//
    	// Configures the analog-to-digital converter resolution and signal mode.
    	//
    	ADC_setMode(myADCA_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
    	//
    	// Sets the timing of the end-of-conversion pulse
    	//
    	ADC_setInterruptPulseMode(myADCA_BASE, ADC_PULSE_END_OF_CONV);
    	//
    	// Powers up the analog-to-digital converter core.
    	//
    	ADC_enableConverter(myADCA_BASE);
    	//
    	// Delay for 1ms to allow ADC time to power up
    	//
    	DEVICE_DELAY_US(500);
    	//
    	// SOC Configuration: Setup ADC EPWM channel and trigger settings
    	//
    	// Disables SOC burst mode.
    	//
    	ADC_disableBurstMode(myADCA_BASE);
    	//
    	// Sets the priority mode of the SOCs.
    	//
    	ADC_setSOCPriority(myADCA_BASE, ADC_PRI_ALL_ROUND_ROBIN);
    	//
    	// Start of Conversion 0 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 0
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN0
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN0, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER0, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 1 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 1
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN1
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN1, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER1, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 2 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 2
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN2
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN2, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER2, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 3 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 3
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN3
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN3, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER3, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 4 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 4
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN4
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER4, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN4, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER4, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 5 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 5
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN5
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER5, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN5, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER5, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 6 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 6
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN14
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER6, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN14, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER6, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 7 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 7
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN15
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCA_BASE, ADC_SOC_NUMBER7, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN15, 50U);
    	ADC_setInterruptSOCTrigger(myADCA_BASE, ADC_SOC_NUMBER7, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// ADC Interrupt 1 Configuration
    	// 		Source	: ADC_SOC_NUMBER7
    	// 		Interrupt Source: enabled
    	// 		Continuous Mode	: disabled
    	//
    	//
    	ADC_setInterruptSource(myADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER7);
    	ADC_clearInterruptStatus(myADCA_BASE, ADC_INT_NUMBER1);
    	ADC_disableContinuousMode(myADCA_BASE, ADC_INT_NUMBER1);
    	ADC_enableInterrupt(myADCA_BASE, ADC_INT_NUMBER1);
    }
    
    void myADCB_init(){
    	//
    	// Configures the analog-to-digital converter module prescaler.
    	//
    	ADC_setPrescaler(myADCB_BASE, ADC_CLK_DIV_2_0);
    	//
    	// Configures the analog-to-digital converter resolution and signal mode.
    	//
    	ADC_setMode(myADCB_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
    	//
    	// Sets the timing of the end-of-conversion pulse
    	//
    	ADC_setInterruptPulseMode(myADCB_BASE, ADC_PULSE_END_OF_CONV);
    	//
    	// Powers up the analog-to-digital converter core.
    	//
    	ADC_enableConverter(myADCB_BASE);
    	//
    	// Delay for 1ms to allow ADC time to power up
    	//
    	DEVICE_DELAY_US(500);
    	//
    	// SOC Configuration: Setup ADC EPWM channel and trigger settings
    	//
    	// Disables SOC burst mode.
    	//
    	ADC_disableBurstMode(myADCB_BASE);
    	//
    	// Sets the priority mode of the SOCs.
    	//
    	ADC_setSOCPriority(myADCB_BASE, ADC_PRI_ALL_ROUND_ROBIN);
    	//
    	// Start of Conversion 0 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 0
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN0
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCB_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN0, 50U);
    	ADC_setInterruptSOCTrigger(myADCB_BASE, ADC_SOC_NUMBER0, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 1 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 1
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN1
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCB_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN1, 50U);
    	ADC_setInterruptSOCTrigger(myADCB_BASE, ADC_SOC_NUMBER1, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 2 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 2
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN2
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCB_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN2, 50U);
    	ADC_setInterruptSOCTrigger(myADCB_BASE, ADC_SOC_NUMBER2, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 3 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 3
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN3
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCB_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN3, 50U);
    	ADC_setInterruptSOCTrigger(myADCB_BASE, ADC_SOC_NUMBER3, ADC_INT_SOC_TRIGGER_NONE);
    }
    
    void myADCC_init(){
    	//
    	// Configures the analog-to-digital converter module prescaler.
    	//
    	ADC_setPrescaler(myADCC_BASE, ADC_CLK_DIV_2_0);
    	//
    	// Configures the analog-to-digital converter resolution and signal mode.
    	//
    	ADC_setMode(myADCC_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
    	//
    	// Sets the timing of the end-of-conversion pulse
    	//
    	ADC_setInterruptPulseMode(myADCC_BASE, ADC_PULSE_END_OF_CONV);
    	//
    	// Powers up the analog-to-digital converter core.
    	//
    	ADC_enableConverter(myADCC_BASE);
    	//
    	// Delay for 1ms to allow ADC time to power up
    	//
    	DEVICE_DELAY_US(500);
    	//
    	// SOC Configuration: Setup ADC EPWM channel and trigger settings
    	//
    	// Disables SOC burst mode.
    	//
    	ADC_disableBurstMode(myADCC_BASE);
    	//
    	// Sets the priority mode of the SOCs.
    	//
    	ADC_setSOCPriority(myADCC_BASE, ADC_PRI_ALL_ROUND_ROBIN);
    	//
    	// Start of Conversion 0 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 0
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN0
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCC_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN0, 50U);
    	ADC_setInterruptSOCTrigger(myADCC_BASE, ADC_SOC_NUMBER0, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 1 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 1
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN1
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCC_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN1, 50U);
    	ADC_setInterruptSOCTrigger(myADCC_BASE, ADC_SOC_NUMBER1, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 2 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 2
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN2
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCC_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN2, 50U);
    	ADC_setInterruptSOCTrigger(myADCC_BASE, ADC_SOC_NUMBER2, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 3 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 3
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN3
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCC_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN3, 50U);
    	ADC_setInterruptSOCTrigger(myADCC_BASE, ADC_SOC_NUMBER3, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 4 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 4
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN4
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCC_BASE, ADC_SOC_NUMBER4, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN4, 50U);
    	ADC_setInterruptSOCTrigger(myADCC_BASE, ADC_SOC_NUMBER4, ADC_INT_SOC_TRIGGER_NONE);
    }
    
    void myADCD_init(){
    	//
    	// Configures the analog-to-digital converter module prescaler.
    	//
    	ADC_setPrescaler(myADCD_BASE, ADC_CLK_DIV_2_0);
    	//
    	// Configures the analog-to-digital converter resolution and signal mode.
    	//
    	ADC_setMode(myADCD_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
    	//
    	// Sets the timing of the end-of-conversion pulse
    	//
    	ADC_setInterruptPulseMode(myADCD_BASE, ADC_PULSE_END_OF_CONV);
    	//
    	// Powers up the analog-to-digital converter core.
    	//
    	ADC_enableConverter(myADCD_BASE);
    	//
    	// Delay for 1ms to allow ADC time to power up
    	//
    	DEVICE_DELAY_US(500);
    	//
    	// SOC Configuration: Setup ADC EPWM channel and trigger settings
    	//
    	// Disables SOC burst mode.
    	//
    	ADC_disableBurstMode(myADCD_BASE);
    	//
    	// Sets the priority mode of the SOCs.
    	//
    	ADC_setSOCPriority(myADCD_BASE, ADC_PRI_ALL_ROUND_ROBIN);
    	//
    	// Start of Conversion 0 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 0
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN0
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCD_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN0, 50U);
    	ADC_setInterruptSOCTrigger(myADCD_BASE, ADC_SOC_NUMBER0, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 1 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 1
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN1
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCD_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN1, 50U);
    	ADC_setInterruptSOCTrigger(myADCD_BASE, ADC_SOC_NUMBER1, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 2 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 2
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN2
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCD_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN2, 50U);
    	ADC_setInterruptSOCTrigger(myADCD_BASE, ADC_SOC_NUMBER2, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 3 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 3
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN3
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCD_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN3, 50U);
    	ADC_setInterruptSOCTrigger(myADCD_BASE, ADC_SOC_NUMBER3, ADC_INT_SOC_TRIGGER_NONE);
    	//
    	// Start of Conversion 4 Configuration
    	//
    	//
    	// Configures a start-of-conversion (SOC) in the ADC and its interrupt SOC trigger.
    	// 	  	SOC number		: 4
    	//	  	Trigger			: ADC_TRIGGER_EPWM1_SOCA
    	//	  	Channel			: ADC_CH_ADCIN4
    	//	 	Sample Window	: 50 SYSCLK cycles
    	//		Interrupt Trigger: ADC_INT_SOC_TRIGGER_NONE
    	//
    	ADC_setupSOC(myADCD_BASE, ADC_SOC_NUMBER4, ADC_TRIGGER_EPWM1_SOCA, ADC_CH_ADCIN4, 50U);
    	ADC_setInterruptSOCTrigger(myADCD_BASE, ADC_SOC_NUMBER4, ADC_INT_SOC_TRIGGER_NONE);
    }