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.

F28069 ADCINA0 ADCIMB0 两个通道同时用TI定时器定时触发以下配置可行吗?



 

F28069   ADCINA0    ADCIMB0  两个通道同时用TI定时器定时触发以下配置可行吗?

 AdcRegs.ADCCTL1.bit.ADCREFSEL = 1;      // Page485 选择外部VREF
    AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1; // Enable non-overlap mode 0允许重叠/1不允许

 AdcRegs.INTSEL1N2.bit.INT1E     = 1; //Enabled ADCINT1
 AdcRegs.INTSEL1N2.bit.INT1CONT  = 0; //Disable ADCINT1 Continuous mode 0--CLOSE
 AdcRegs.INTSEL1N2.bit.INT1SEL = 1; //setup EOC0 to trigger ADCINT1 to fire

 AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; // 同时采样
 AdcRegs.ADCSOC0CTL.bit.CHSEL  = 0; //set SOC0 channel select to ADCINA0
 AdcRegs.ADCSOC1CTL.bit.CHSEL  = 8; //set SOC1 channel select to ADCINB0  page510  这句配置成SOC1

 AdcRegs.ADCSOC0CTL.bit.TRIGSEL  = 2; //set SOC0 start trigger on software  触发源  T1
 AdcRegs.ADCSOC1CTL.bit.TRIGSEL  = 2; //set SOC1 start trigger on software

  AdcRegs.ADCSOC0CTL.bit.ACQPS  = 6; //set SOC0 S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
 AdcRegs.ADCSOC1CTL.bit.ACQPS  = 6; //set SOC0 S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)

 AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //ADCINT1 trips after AdcResults latch

 AdcRegs.ADCINTSOCSEL1.bit.SOC0  = 1; //
 AdcRegs.ADCINTSOCSEL1.bit.SOC1  = 1; //ADCINT2 will trigger SOC0. TRIGSEL field is ignored.

  • 首先,你当然可以使用同步采样,但根本不需要使用SOC1,只要一个SOC0就可以采样两个信号了,因为是同步模式。

    但对于你的应用,昨天我已经跟你建议过,不需要输入两路,只要给到A0即可,而且如果你这样设置,时间就又不是你想要的537.5ns了,因为两个信号对应的采样转换时间又不同,这个需要继续对比TRM里的Figure 8-35. Timing Example For Simultaneous Mode / Late Interrupt Pulse来看。

    还有一点,您能否仔细地阅读一下TRM中的ADC那个章节一遍再写代码呢?免得事倍功半。

    另外,这个帖子是否可以结了?http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/25888.aspx