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.

28031 ADCINA3输出电压?



ADCINA3口悬空 当ADC配置采样时 ADCINA3竟然会输出电压  电压大小随采样频率增大增大?

  • Jimmy,

    你说的ADCINA3会输出电压是指能够在结果寄存器中查看到采样结果吗?可以把ADC的初始化代码贴上来。

    另外,注意别让采样窗口的都设置为6或7,可以设置为8。可以看一下03x的勘误表。

    Eric

  •  EALLOW;                                // This is needed to write to EALLOW protected register
     PieVectTable.ADCINT1 = &spwm_isr;
     EDIS;                                  // This is needed to disable write to EALLOW protected registers

     InitAdc();

     EALLOW;
     AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //ADCINT1 trips after AdcResults latch
     AdcRegs.INTSEL1N2.bit.INT1E     = 1; //Enabled ADCINT1
     AdcRegs.INTSEL1N2.bit.INT1CONT  = 0; //Disable ADCINT1 Continuous mode
     AdcRegs.INTSEL1N2.bit.INT1SEL = 6; //setup EOC15 to trigger ADCINT1 to fire

     AdcRegs.ADCSOC0CTL.bit.CHSEL  = BUS_V;
     AdcRegs.ADCSOC1CTL.bit.CHSEL  = PV_I;
     AdcRegs.ADCSOC2CTL.bit.CHSEL  = GRID_V;
     AdcRegs.ADCSOC3CTL.bit.CHSEL  = PV_I;
     AdcRegs.ADCSOC4CTL.bit.CHSEL  = GRID_V;
     AdcRegs.ADCSOC5CTL.bit.CHSEL  = PV_I;
     AdcRegs.ADCSOC6CTL.bit.CHSEL  = GRID_V;
     

        AdcRegs.ADCSOC0CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC1CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC2CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC3CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC4CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC5CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA
     AdcRegs.ADCSOC6CTL.bit.TRIGSEL  = 9; //SOCx Trigger Source Select ePWM3, ADCSOCA

     AdcRegs.ADCSOC0CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC1CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC2CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC3CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC4CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC5CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     AdcRegs.ADCSOC6CTL.bit.ACQPS  = 8; //set SOCx S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
     EDIS;

     PieCtrlRegs.PIEIER1.bit.INTx1 = 1;     // Enable ADCINT1 in the PIE
     IER |= M_INT1;           // Enable CPU Interrupt 1

  • 没有看到A3到底是哪个SOC在采样,请将CHSEL配置部分的通道宏定义也共享出来。

    另外,你提到采样频率,是指A3对应通道的,还是其它通道的?输出有电压,是多大?

    外面引脚部分A3的电路如何?换用其它SOC测试,以及将它悬空测试结果是怎样?

  • #define  PV_I     ADCINA3

    这个采样频率是指PWM3的频率 我AD转换是由PWM3触发的

    输出电压的大小 跟PWM设置的频率有关

    外面A3 PIN悬空了

  • 既然悬空A3引脚,为什么要采样它呢?

    采样频率与电压具体的关系是怎样的呢?有没有数据说明?

    ADCRESULT寄存器里的值如何变化?你又是如何判断“输出”这点?

    如何只采样这一路信号,结果如何?

    以上只是些建议,并不一定你回答了全部就能解决你的问题,但你可以根据这些思路去参考你的系统,想想你的问题,毕竟我们不如你自己熟悉你的整个设计。

  • AN3本来是连接到电路的,现在为了排除电路对它的影响,故意悬空了

    我是用示波器探头测量的 直接读ADCRESULT跟示波器显示值是一样

    只采AN3这一通道也是这样的 其他通道都是好的  只有AN3是这样

  • 使用万用表量没结果怎样呢?另外这个电压具体是多大,RESULT值是多少?

    如果其它通道不采样,也一样的结果吗?

    是只有一块板子有问题,还是所有?

  • Jimmy,

    你用一个TI的ADC例程,然后只测试ADCINA3通道,给一个固定电压,观看结果寄存器。另外,你的芯片的版本是多少,如果是版本0,第一次采样的结果是不准的。要使用两个SOC测量ADCINA3,如SOC0,SOC1,然后使用同一触发源,如PWM1SOC,在中断或查询中只读取SOC1的结果。

    Eric