大家好!LZ最近在做一个实时位置控制的case。
其中28335片内AD采样是这样做的:
在定采样周期中断触发后,对同一通道(先不做控制,被测量是静态不变化的)不间断连续采集多个值(CONV都设为同一通道,一次顺序采集)后,去掉最大和最小,再均值。
发现这样得到的平均值结果,其跳码幅度较大,有3~4个毫伏之多。(测量的量是在开发板上的电阻分压电路,adc时钟降到12.5MHz,采样窗口开最大到0xf)
而换成定周期触发AD采样一次仅一个值,多周期后求平均,这时的结果就能稳定在1个毫伏的变化内。(ADC时钟25MHz)
这样我是猜想AD对某一通道不间断连续采样是不是会对采样值带来干扰?为什么会有干扰?
想减轻这样的干扰,除了增加对某一通道连续采样的间隔时间,还有什么好方法?(毕竟实时控制下,ADC能兼顾速度和精度是最好了)加一级电压跟随可不可行?
LZ知道28335ADC的12位精度实际是达不到的,多大的跳码幅度属于正常?
希望各位大侠解答我的疑问
mangui zhang:
从硬件上来看 加一级电压跟随 对精度没什么影响 只会带来直流增量
只要保证ADC转换完成后 在进行下一次转换 这样结果不会应始终而影响过大
我建议你确保输入端的信号没有毫伏级的变化
大家好!LZ最近在做一个实时位置控制的case。
其中28335片内AD采样是这样做的:
在定采样周期中断触发后,对同一通道(先不做控制,被测量是静态不变化的)不间断连续采集多个值(CONV都设为同一通道,一次顺序采集)后,去掉最大和最小,再均值。
发现这样得到的平均值结果,其跳码幅度较大,有3~4个毫伏之多。(测量的量是在开发板上的电阻分压电路,adc时钟降到12.5MHz,采样窗口开最大到0xf)
而换成定周期触发AD采样一次仅一个值,多周期后求平均,这时的结果就能稳定在1个毫伏的变化内。(ADC时钟25MHz)
这样我是猜想AD对某一通道不间断连续采样是不是会对采样值带来干扰?为什么会有干扰?
想减轻这样的干扰,除了增加对某一通道连续采样的间隔时间,还有什么好方法?(毕竟实时控制下,ADC能兼顾速度和精度是最好了)加一级电压跟随可不可行?
LZ知道28335ADC的12位精度实际是达不到的,多大的跳码幅度属于正常?
希望各位大侠解答我的疑问
mangui zhang:
还有 ADC 采集的结果做滤波处理是有必要的
大家好!LZ最近在做一个实时位置控制的case。
其中28335片内AD采样是这样做的:
在定采样周期中断触发后,对同一通道(先不做控制,被测量是静态不变化的)不间断连续采集多个值(CONV都设为同一通道,一次顺序采集)后,去掉最大和最小,再均值。
发现这样得到的平均值结果,其跳码幅度较大,有3~4个毫伏之多。(测量的量是在开发板上的电阻分压电路,adc时钟降到12.5MHz,采样窗口开最大到0xf)
而换成定周期触发AD采样一次仅一个值,多周期后求平均,这时的结果就能稳定在1个毫伏的变化内。(ADC时钟25MHz)
这样我是猜想AD对某一通道不间断连续采样是不是会对采样值带来干扰?为什么会有干扰?
想减轻这样的干扰,除了增加对某一通道连续采样的间隔时间,还有什么好方法?(毕竟实时控制下,ADC能兼顾速度和精度是最好了)加一级电压跟随可不可行?
LZ知道28335ADC的12位精度实际是达不到的,多大的跳码幅度属于正常?
希望各位大侠解答我的疑问
Yuting Liu:
这是我采集的代码,单通道连续采依然没有改善:
double ADC_SingleCH(Uint16 channel){ int res[SAMPLE_NUM] = {0}; int i; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1 Cascaded mode //AdcRegs.ADCTRL1.bit.CONT_RUN = 0; Start and stop AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; // Enable Sequencer override feature,warp around AdcRegs.ADCCHSELSEQ1.bit.CONV00 = channel; // Initialize all ADC channel selects to A0 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = channel; AdcRegs.ADCCHSELSEQ1.bit.CONV02 = channel; AdcRegs.ADCCHSELSEQ1.bit.CONV03 = channel; AdcRegs.ADCCHSELSEQ2.bit.CONV04 = channel; AdcRegs.ADCCHSELSEQ2.bit.CONV05 = channel; AdcRegs.ADCCHSELSEQ2.bit.CONV06 = channel; AdcRegs.ADCCHSELSEQ2.bit.CONV07 = channel; AdcRegs.ADCCHSELSEQ3.bit.CONV08 = channel; AdcRegs.ADCCHSELSEQ3.bit.CONV09 = channel; AdcRegs.ADCCHSELSEQ3.bit.CONV10 = channel; AdcRegs.ADCCHSELSEQ3.bit.CONV11 = channel; AdcRegs.ADCCHSELSEQ4.bit.CONV12 = channel; AdcRegs.ADCCHSELSEQ4.bit.CONV13 = channel; AdcRegs.ADCCHSELSEQ4.bit.CONV14 = channel; AdcRegs.ADCCHSELSEQ4.bit.CONV15 = channel; AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = SAMPLE_NUM – 1; // convert and store in 8 results registers AdcRegs.ADCTRL2.all = 0x2000; //start convert while (AdcRegs.ADCST.bit.INT_SEQ1== 0){} AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; for (i=0;i<SAMPLE_NUM;i++){ res[i]= *(&(AdcRegs.ADCRESULT0)+i)>>4; } return ADC_Filter(res);}
大家好!LZ最近在做一个实时位置控制的case。
其中28335片内AD采样是这样做的:
在定采样周期中断触发后,对同一通道(先不做控制,被测量是静态不变化的)不间断连续采集多个值(CONV都设为同一通道,一次顺序采集)后,去掉最大和最小,再均值。
发现这样得到的平均值结果,其跳码幅度较大,有3~4个毫伏之多。(测量的量是在开发板上的电阻分压电路,adc时钟降到12.5MHz,采样窗口开最大到0xf)
而换成定周期触发AD采样一次仅一个值,多周期后求平均,这时的结果就能稳定在1个毫伏的变化内。(ADC时钟25MHz)
这样我是猜想AD对某一通道不间断连续采样是不是会对采样值带来干扰?为什么会有干扰?
想减轻这样的干扰,除了增加对某一通道连续采样的间隔时间,还有什么好方法?(毕竟实时控制下,ADC能兼顾速度和精度是最好了)加一级电压跟随可不可行?
LZ知道28335ADC的12位精度实际是达不到的,多大的跳码幅度属于正常?
希望各位大侠解答我的疑问
Yuting Liu:
回复 mangui zhang:
mangui zhang
从硬件上来看 加一级电压跟随 对精度没什么影响 只会带来直流增量
只要保证ADC转换完成后 在进行下一次转换 这样结果不会应始终而影响过大
我建议你确保输入端的信号没有毫伏级的变化
大家好!LZ最近在做一个实时位置控制的case。
其中28335片内AD采样是这样做的:
在定采样周期中断触发后,对同一通道(先不做控制,被测量是静态不变化的)不间断连续采集多个值(CONV都设为同一通道,一次顺序采集)后,去掉最大和最小,再均值。
发现这样得到的平均值结果,其跳码幅度较大,有3~4个毫伏之多。(测量的量是在开发板上的电阻分压电路,adc时钟降到12.5MHz,采样窗口开最大到0xf)
而换成定周期触发AD采样一次仅一个值,多周期后求平均,这时的结果就能稳定在1个毫伏的变化内。(ADC时钟25MHz)
这样我是猜想AD对某一通道不间断连续采样是不是会对采样值带来干扰?为什么会有干扰?
想减轻这样的干扰,除了增加对某一通道连续采样的间隔时间,还有什么好方法?(毕竟实时控制下,ADC能兼顾速度和精度是最好了)加一级电压跟随可不可行?
LZ知道28335ADC的12位精度实际是达不到的,多大的跳码幅度属于正常?
希望各位大侠解答我的疑问
Yuting Liu:
自顶
TI中文支持网



