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.

28377S 16位ADC差分输入的问题

Other Parts Discussed in Thread: THS4521, CONTROLSUITE

正在做一个电压采集的项目,输入信号的共模信号,而28377S,16位ADC需要输入差分信号,我利用下图的方式将共模信号转换成差分信号,请教TI工程师,能否这样做。输入的共模信号是0—2.5V的直流信号,在输入之前已经做了滤波处理。ADC的采样时间是320ns,ADC时钟频率是40M。

  • 下面是我的ADC的配置,EPWM触发转换,触发频率25KHZ,现在有个问题是,在某个转换点的时候,ADC会有较大幅度的转换误差,就是跳动,在200左右,特别是在输入共模电压在1V一下和9V以上的时候。
    测量了ADC的输入,除了电源产生得到噪声之外并没有发现毛刺和电压突变。
    void ConfigureADC(void)
    {
    Uint16 acqps;

    EALLOW;
    //
    //write configurations
    //
    AdcaRegs.ADCCTL2.bit.PRESCALE = 2; //set ADCCLK divider to /2
    AdcSetMode(ADC_ADCA, ADC_RESOLUTION_16BIT, ADC_SIGNALMODE_DIFFERENTIAL);

    //
    //Set pulse positions to late
    //
    AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1;

    //
    //power up the ADC
    //
    AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;

    //
    //delay for 1ms to allow ADC time to power up
    //
    DELAY_US(1000);
    EDIS;

    //
    //determine minimum acquisition window (in SYSCLKS) based on resolution
    //
    if(ADC_RESOLUTION_12BIT == AdcaRegs.ADCCTL2.bit.RESOLUTION)
    {
    acqps = 14; //75ns
    }
    else //resolution is 16-bit
    {
    acqps = 63; //320ns
    }

    //
    //Select the channels to convert and end of conversion flag
    //
    EALLOW;
    AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0; //SOC0 will convert pin A0
    AdcaRegs.ADCSOC0CTL.bit.ACQPS = acqps; //sample window is 100 SYSCLK cycles
    AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 5; //trigger on ePWM1 SOCA/C

    AdcaRegs.ADCSOC1CTL.bit.CHSEL = 2; //SOC1 will convert pin A2
    AdcaRegs.ADCSOC1CTL.bit.ACQPS = acqps; //sample window is 100 SYSCLK cycles
    AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 5; //trigger on ePWM1 SOCA/C

    AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 1; //end of SOC1 will set INT1 flag
    AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1; //enable INT1 flag
    AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //make sure INT1 flag is cleared
    EDIS;

    }
  • 正在做一个电压采集的项目,输入信号的共模信号,而28377S,16位ADC需要输入差分信号,我利用下图的方式将共模信号转换成差分信号,请教TI工程师,能否这样做。输入的共模信号是0—2.5V的直流信号,在输入之前已经做了滤波处理。ADC的采样时间是320ns,ADC时钟频率是40M。

    Eric:
    我认为这个电路有问题。
    F2837X的16位ADC对外部的差分信号有比较严格的要求,你看看芯片手册里面关于16位ADC共模电压的要求。
    需要满足 A0, A1 都在0~3.3V之间,另外,(A0+A1)/2 在任意时刻都在VREF/2 正负50mv以内。
    推荐用THS4521的差分运放去做。
  • 下面是我的ADC的配置,EPWM触发转换,触发频率25KHZ,现在有个问题是,在某个转换点的时候,ADC会有较大幅度的转换误差,就是跳动,在200左右,特别是在输入共模电压在1V一下和9V以上的时候。
    测量了ADC的输入,除了电源产生得到噪声之外并没有发现毛刺和电压突变。

    Eric:
    先满足上面提到的硬件要求先。
    至于软件,你参考controlSUITE例程就好。
    另外,看看芯片的版本是C版本以上,量产的芯片。
  • 我知道了,非常感谢您的回答。