工具与软件:
尊敬的 TI:
我正在尝试了解由其他人实施的项目、他们有
使用 PWM1和 PWM5触发 ADC。 设置如下:
TBPRD= 1000向上和1000向下= 2000
EPWM_setCounterCompareValue(EPWM1_BASE,EPWM_COUNTER_COMPARE_C,20);// for ADC triggering EPWM_setCounterCompareShadowLoadMode(EPWM1_BASE,EPWM_COUNTER_COMPARE_C,EPWM_COMP_LOAD_ON_CNTR_ZERO); EPWM_setCounterCompareValue(EPWM5_BASE,EPWM_COUNTER_COMPARE_C,980);// for ADC triggering EPWM_setCounterCompareShadowLoadMode(EPWM5_BASE,EPWM_COUNTER_COMPARE_C,EPWM_COMP_LOAD_ON_CNTR_ZERO); EPWM_setADCTriggerSource(EPWM1_BASE,EPWM_SOC_A,EPWM_SOC_TBCTR_D_CMPC ); // Generate pulse on 1st event EPWM_setADCTriggerEventPrescale(EPWM1_BASE,EPWM_SOC_A,1); // Enable SOC on A group EPWM_enableADCTrigger(EPWM1_BASE,EPWM_SOC_A); EPWM_setADCTriggerSource(EPWM5_BASE,EPWM_SOC_A,EPWM_SOC_TBCTR_U_CMPC ); // Generate pulse on 1st event EPWM_setADCTriggerEventPrescale(EPWM5_BASE,EPWM_SOC_A,1); // Enable SOC on A group EPWM_enableADCTrigger(EPWM5_BASE,EPWM_SOC_A);
所有 ADCx 模块均已使用、SOC 从0至13开始。
ADC 通过 SCO12触发、设置如下所示。
Interrupt_register(INT_ADCC1, &ADC_ISR); ADC_setInterruptSource(ADCC_BASE ,ADC_INT_NUMBER1,ADC_SOC_NUMBER12); ADC_enableContinuousMode(ADCC_BASE ,ADC_INT_NUMBER1); ADC_enableInterrupt(ADCC_BASE,ADC_INT_NUMBER1); Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1); Interrupt_enable(INT_ADCC1);//GM adc oversampling
1、我理解此设置将采集如上图所示的样本,正确吗?
2.我可以使用什么标志来切换 GPIO 以查看示波器上的样本采集?
3. 我计算了 ADC 模块从 SOC0到 SOC13所需的总时间,但如何在示波器上进行确认和测量?
4. ADC 何时开始转换? 因为我想在 SOC0启动时切换 GPIO、并且使用此标志 ADCSOCFLG1生成 SOC12的触发信号
我已 检查 EPwm1Regs.ETFLG.bit.SOCA 以查看 SoC 是否生成了事件、运行正常。
我已经检查 AdccRegs.ADCINTFLG.bit.ADCINT1以查看是否生成了中断、运行正常。
感谢 您提供任何帮助。