TI中文支持网
TI专业的中文技术问题搜集分享网站

求助 DSP28335的ADC 每次上电对同一电压的测量不同 存在偏差

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

mangui zhang:

20多你换算一下     电压是多少     像0.1V左右的变化是正常的吧  

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

user3593196:

回复 mangui zhang:

大概20多个mv吧 但是12位的ADC 这个误差感觉不太可能把

因为用万用表和示波器测量 实际电压没有发生变化 很稳定

但是28335的ADC采样却有这种问题

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

Rayna Wang:

回复 user3593196:

请问用示波器和万用表测得是电源侧电压还是ADCIN输入侧电压,因为电阻等电路元件有可能出现温漂,使输入到ADCIN端口的电压变化;

另外请检查一下芯片供电电压是否稳定,如果供电电压不稳,也会导致采样出现偏差.

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

Emma Wang:

触发后的第一次的采样需要丢弃。

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

user3593196:

回复 Emma Wang:

因为工程是按TI的模板改的,所以第一次采样已经被丢弃了,试验中的数据不是第一次采样的数据,谢谢。

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

user3593196:

回复 Rayna Wang:

供电稳定,ADC引脚的电压也稳定,用万用表和示波器都看过,现在还是没有解决问题,每次上电差异最大能有20个LSB的偏置。

 使用内部基准 ADC输入带运放缓冲 使用示波器 万用表测量发现输入电压并没有发生变化

但是ADC测量值要么

第一次上电 897 896 898 896。。。

第二次上电 906 907 906 907 905。。。

第三次上电 926 927 926 927 925。。。

重复上电发现测量值在以上三组不同的值波动

但是输入电压没有发生变化

不知道为什么 每次只要不掉电,测量不会发生大的变化

但是反复上电断电时,ADC测量的偏置误差会发生最大20多个LSB的变化 不知道为什么 求解

AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \

EPWM触发ADC采样 

user3593196:

回复 user3593196:

这是28335内置ADC的精度,手册提到offset error可能最大有30个LSB,但偏置误差会每次上电而不同吗?

赞(0)
未经允许不得转载:TI中文支持网 » 求助 DSP28335的ADC 每次上电对同一电压的测量不同 存在偏差
分享到: 更多 (0)