MTK adc测试不能通过
问题描述“ADC Calibration Fail = 505”
我做过实验,电源是准确的,用夹具,电池连接器供电。
你的。CFG文件设置测试电池电压范围可能不合理,一般项目不一样你的值会相对改变一点,你可以拿10块主板做验证,得出一个标准的范围,然后修改后,就会没问题。
奖励[/COLOR]
谢谢你elvis_yan,按照你的步骤,我的电源校准问题已经解决。
elvis_yan老兄,
我在做MT6225的项目,电池校准也有问题,100%校准失败,我的logfile如下:
APC Calibration Check OK
GSM Check time=12.24(sec)
Phase Error Calibration time=0.000000
Battery Slope=5773 ADC offset=-1124807
,Charger Slope=5799 ADC offset=-1143821
Check Battey Channel Slop Failed
Check Battery Channel Offset Failed
ADC Calibration current difference 0.000565Ok
ADC Calibration voltage difference 0.001652Ok
ADC Calibration time=2.000000
我的CFG文件里是这样设置的:
[ADC table]
ADC_V1 = 3400
ADC_V2 = 4200
ADC_CHECK_VOLTAGE = 3600
NORMAL_VOLTAGE = 3800
CURRENT_LIMIT = 3000
MAX_BATTERY_ADC_SLOPE = 5550
MIN_BATTERY_ADC_SLOPE = 5250
MAX_BATTERY_ADC_OFFSET = 1000000
MIN_BATTERY_ADC_OFFSET = -1000000
BATTERY_CHANNEL = 0
CHARGER_CHANNEL = 1
ADC_RESISTANCE = 0.4
MAX_VOLTAGE_DIFFERENCE = 0.04
MAX_CURRENT_DIFFERENCE = 0.04
ADC_MEASUREMENT_COUNT = 1000
不知道有没有问题?请赐教!
附:现在我问我们硬件工程师,他查过硬件线路图说电路没有问题。
首先说下2楼的分数是不应该加的
不能用10块板子来更改这个数值
这个ADC数值是通过GPIB采集外部电源来当作一个标准值,然后采集手机内部电压电流通过一个差值的算法来校准这个数值的
MTK文件中默认的范围一般是不会出现问题的
1.如果超过默认范围应该首先把外部电源换做精准度更高的电源
2.如果1的方法还是解决不了问题,请硬件工程师检查电路,仔细检查一般都是硬件电路设计问题
3。如果ADC校准伴随着AFC,APC等校准不通过的,不用再怀疑任何直接HW修改电路吧
2楼的更改范围的方法是不可取的!把范围增大校准后的手机只能让手机对ADC数据计算偏差不能解决根本问题!
楼上的说的很正确。ADC值修改来保证产品的通过是不可取的,同样也不能用采取求平均的方法来任意修改,正确的方法是严格按照SPEC 的要求取值。一般说来,测试夹具的探针的位置稍有一点微小的变化或者是有附着物都是会对ADC值造成偏差,只有通过对电路和夹具以及测试方法的改进来纠正。随意修改标准是测试人员最大的忌讳!
其实这只是在工作中的经验,当然我们修改的范围还是在MTK要求中,目前我一般设置范围在7000-5200左右;楼上的朋友说的很对,不过你想想工厂会为了这个问题去花钱够买精确的程控电源嘛,在我工作到现在发现有好多工厂就不舍的,当然为了这个去修改硬件确实可以解决,但是你想想你的机子已经催广,硬件改版还能来的急嘛?我们做MTK的其实大家就心知度明,MTK可是山寨之父啊!
4楼,你的问题是SLOPE太大了,slope一般范围在正负100w,而你的范围已经超过,请驱动的和基带的同事帮查下那一块在校准时工作没关闭。
之前有不少项目出现你所说想象。各人意见,请大家包涵!
谢谢各位大侠相助!还有疑问:
to zz139433大侠:这个ADC数值是通过GPIB采集外部电源来当作一个标准值,然后采集手机内部电压电流通过一个差值的算法来校准这个数值的
--是不是都是从手机读出两个电压值(如3.4V和4.2V)的DAC值,通过某个公式直接算出slope和ADC offset呢?请问能否提供这个公式呢?
to elvis_yan大侠:您所指的700-5200的是否是slope的范围?
查下那一块在校准时工作没关闭--是否是指在校准ADC时,射频或者其它电路仍然没有关闭?
小弟刚接触MTK,是菜鸟一个,望诸大侠相助,谢谢!
没有人回复,自己顶一下,呵呵。各路大侠请过来一趟
还是有点儿复杂了@!
都是高手呀!学习了!
从电源引出来的线有4根不知道楼住反馈接拉没,如不行在再电源输出口增加个大电容
反馈已经接了的,电容在夹具上也加过.用meta读ADC值,读进来的是1023或者附近的值,都超过了1000以上.读的Battery和Charge的channel是对应的channel(BAT--ch0和CHG--ch1)
我找到了我ADC测试的问题所在,是因为串口线的原因,串口线PC端TX线来自PC的电压影响了ADC采样的准确性。
解决方法:在TX线上串联一个1k电阻,在1K电阻连接手机RX端这边并联一个5.1K电阻到GND,问题解决了。谢谢大家的热心帮助!
学习了!
路过,不过还是顶一下
333333
xuexile
ADC数值是通过GPIB采集外部电源来当作一个标准值,然后采集手机内部电压电流通过一个差值的算法来校准这个数值,但是如果电源精度不够或者有偏值,那就需要将电源进行校准后再进行测试,要不然测试出来的值也会有偏差,出现FAIL!
串口线PC端TX线来自PC的电压影响了ADC采样的准确性。长见识了.
ADC和DAC谁能来个详细点的说明
都是高手呀!学习了!
xuexi le
学习学习
都是高手呀,学习了
强大。顶!
学习中!
以上问题根据经验 , PCBA是应该没有问题的,是电路与电源不匹配造成的,修改一下SLOPE值就行了,加大300左右是没有问题的
好久没过来看看了,
4楼的那个问题应该早就解决了吧!
随便写写,不要喷就好!
原因:
1,是否看在校准adc时,硬件上其他通路有无关闭?量一下充电阻的值
2,软件核实下,是否配对
3,工具本身问题(此排除)
看你的slope就达到了5700以上了,一般slope范围在5200-5700(极限情况)
ADC校准是通过2个电压值y0 =3.4v ,y1=4.2v;
原理图是一般25平台我们是通过分压原理(23是集成在芯片里),充电电阻两端采样不同分压值,待见原理图;一般25是配置1、0,23平台是配置6、5,
我们校准时只校准ADC通道2个通道,其他的通过一般会全部拉向一个通道(说不明白了,表达太差!)
然后分别校准出来vbatout【0】/charout【0】,vbat【1】/charout【1】
然后通过算法得出Slope,offset;
具体算法我只写一个了
fdata = 1.0*(y1-y0)/(x1-x0);
fdata += (fdata>=0)?0.5:-0.5;
adc_Data.ADCSlope[batt_ch] = (int)fdata;
fdata = 1.0*(y1-y0)/(x1-x0)*x0;
fdata += (fdata>=0)?0.5:-0.5;
adc_Data.ADCSlope[batt_ch] = (int)fdata;
兄弟你好,我有个问题请教下 我现在是在做mTK 6516的ADC
请指点下,我不出值来,不知为什么?
楼上读不出来值吗?
1,先确定下软件版本配置的同事你是CFG文件设置的通道不?
比如说吧,25一般是
BATTERY_CHANNEL = 1
CURRENT_CHANNEL = 1
CHARGER_CHANNEL = 0
23:BATTERY_CHANNEL = 6
CURRENT_CHANNEL = 6
CHARGER_CHANNEL = 5
35:好像是4和5吧,我就不一一列举啦,
一般database上面会详细说明你,楼上的可以去查下。
2,还有可能就是楼上主板硬件状态是否OK,建议校准开始先测量下是否通,然后不行先用META工具校准,校准时量充电电阻2旁电压?
3,上个月去工厂发现一个问题,挺奇怪的这里说给大家听听
当时试产,工厂随机使用一台8960和程控电源,发现ADC FAIL,除了仪器没有校准其他基本就换了,最后没办法,才将8960换掉,发现问题就没了,但这个又问题仪器后来使用又没问题,而且这个仪器之前其他项目使用也没有问题。
随便写写,不对的请不喷,TKS!