ADC配置直流测量

7新职位/ 0
最后发表
icujba
离线
最后看到:4年7个月前
加入:2015-05-13 08:04
ADC配置直流测量

想知道的推荐ADC配置正确、稳定和SDK 3.0.8.0直流测量吗

根据可获得的信息在“嗯- b - 004 DA14580_581外围Drivers_v1.4。pdf”和“DA14580_DS_v3.1。pdf”目前我的配置是这样的:

adc_calibrate ()
adc_init (GP_ADC_SE | GP_ADC_CHOP ADC_POLARITY_UNSIGNED 0 / *没有GP_ADC_ATTN3X * /)
adc_enable_channel (ADC_CHANNEL_P00)
adc_get_sample ()
adc_disable ()

看着adc_get_vbat_sample()它缝:
1。GP_ADC_CHOP用法不是首选,尽管在“DA14580_DS_v3.1强烈推荐。pdf”,而不是两个样品相反GP_ADC_SIGN
2。使用20毫秒的延迟后adc_init()与描述的时间特征地图从“DA14580_DS_v3.1“表293”。pdf”(注意:使用相同的20毫秒的延迟后adc_int adc_calibrate () ())。

1。20毫秒的延迟后需要adc_init () ?
2。/必要的延迟应该控制在考虑通过GP_ADC_DELAY_REG和GP_ADC_DELAY2_REG adc_int()设置GP_ADC_DELAY_EN吗?
3所示。有更多的可用信息的内部运作ADC相关寄存器?

设备:
RvA
离线
最后看到:5天14小时前
工作人员
加入:2014-02-07 14:10
嗨Icujba,以防你不

嗨Icujba,如果你不使用衰减不需要延迟。与衰减(要求如果你打算测量电压> 1.2 v)你应该添加一些延迟允许内部帽。这个应该更在4。更多的信息关于ADC的内部运作这不过不是公共可用。你有一些具体的问题吗?

最好的问候,RvA

icujba
离线
最后看到:4年7个月前
加入:2015-05-13 08:04
嗨RvA,

嗨RvA,
谢谢你的回复。我将使用的建议推迟“衰减”的场景。
最好的问候,Ionut

Jarkko年代
离线
最后看到:5年11个月前
加入:2015-06-25 13:04
你好,

你好,

我有很简单的代码,我不从ADC获得一致的结果(至少4位最低应丢弃,所以有效的决议是6位,你也有让battery.c)和ADC看起来也相当巨大的偏移误差和校准不帮助。抵消误差是主要问题尤其是在低电压……

我的测试设置很简单:external_power - - - > 100 k欧姆电阻- - - >输入插口(配置为PID_ADC)。代码使用你的例子是adc的功能没有被修改(最后阶段添加切位除外)

uint16 u16ADC u = 0;
uint16我= 1000 u;
uint16 u16Min = 0 xffffu;
uint16 u16Max u = 0;
DBG_PRINT (“\ n \ rADC att 1 x, calib量之前,1000 x单量\ n \ r”);
adc_enable_channel (ADC_CHANNEL_VDD_REF);
adc_calibrate ();
adc_init (GP_ADC_SE, 0, 0);/ /单端模式,1 v18
adc_enable_channel (ADC_MEAS_TEMP);
虽然(我)
{
u16ADC = adc_get_sample ();
如果(u16ADC < u16Min) {u16Min = u16ADC;}
如果(u16ADC > u16Max) {u16Max = u16ADC;}
}
adc_disable ();
DBG_PRINT (“ADC分钟:0 x %,马克斯:0 x %, diff % u \ r \ n”, u16Min, u16Max, u16Max-u16Min);

与50 mv记录的最大值是正确的,休息过低:
ADC att 1 x, calib量之前,1000 x单量
ADC分钟:0 xf,马克斯:0 x3b diff 44

我也试图平均10个样本,但结果仍在50 mv ~ 17%错误,140 mv ~ 5,错误和550 mv 1 5%, 7%的误差,误差最小(~ 25%)达到级别~ 700 mv后错误看起来保持稳定…

提高电压不帮助,最小/最大样本保持相同的区别(再一次最高的是正确的)
ADC att 1 x, calib量之前,1000 x单量
ADC分钟:0 x150,马克斯:0 x17a diff 42

ADC校准寄存器值之间变化,校准后……
OFFP: 0 x204-0x208
OFFN: 0 x1f8-0x1fa

ADC的功能不是在描述数据表,所以我想把所有材料你有什么。也有一些寄存器位(GP_ADC_CHOP GP_ADC_IDYN…)这可能做某事但根据你的参考设计(电池相当稳定直流电源?)那些不习惯…

使GP_ADC_CHOP adc_init(),那么结果是更好的但是现在最大最小/最大区别是不如此接近实际值……
ADC att 1 x, calib量之前,1000 x单量
ADC分钟:0 x158,马克斯:0 x176 diff 30

我想这肯定GP_ADC_CHOP应当使用。GP_ADC_I20U & GP_ADC_IDYN可以同时启用常数和动态之间的区别是什么?

Jarkko年代
离线
最后看到:5年11个月前
加入:2015-06-25 13:04
抱歉说

抱歉说最大值是正确的,我diff看着50 mv 44 12月ad转换结果是50 mv假设1,18 v ref。所以没有办法确定西南的“正确”价值……

Jarkko年代
离线
最后看到:5年11个月前
加入:2015-06-25 13:04
我想我找到了

我猜,我想出了问题的某些部分(min&max大区别),从外部力量有噪音。我添加了capasitor解决测量端。无论看起来仍然有抵消误差,这是一个功能吗?错误似乎-2% ~ 5%在低端最高……

mV打印使用下面的公式转换AVG * 1180/1023和ADC值现在小数
72 mV(测量)给(CHOP_ON): ADC分钟:65年,马克斯:67年,diff 2, AVG: 66 mV: 76
366 mV(测量)给(CHOP_ON): ADC分钟:314年,马克斯:316年,diff 2, AVG: 314 mV: 362
692 mV(测量)给(CHOP_ON): ADC分钟:588年,马克斯:590年,diff 2, AVG: 588 mV: 678
835 mV(测量)给(CHOP_ON): ADC分钟:706年,马克斯:709年,diff 3, AVG: 707 mV: 815
1066 mV(测量)给(CHOP_ON): ADC分钟:903年,马克斯:906年,diff 3, AVG: 905 mV: 1043

kurbylee
离线
最后看到:3年8个月前
加入:2014-11-05分
我需要样品速度最大

我需要样本以最大速度(约50千赫),例如我得到1000样品仍在继续,我不能使用capasitor, smaple的抵消我是巨大的。
任何人都可以告诉我如何解决这个问题? ?