TI论坛
直播中

成尔秩

9年用户 1046经验值
私信 关注

关于TMS570 A/D 口 self test的电容是否存在?容值是否正常?ADCLOCKCR,ADCALCR,ADG1SAMP 应该如何设置?

本帖最后由 一只耳朵怪 于 2018-5-25 17:17 编辑

在产品测试的过程中,我们需要检查对A/D口外接的电容是否存在,容值是否正常。
比如 ref hi = 3.3v ref low = 0v , input = 2v, 外接电容为10nF. 应该如何做?
ADCLOCKCR,ADCALCR,ADG1SAMP 应该如何设置?为什么?

回帖(9)

庄当甜

2018-5-25 03:10:50
Hi Ping,
抱歉回复晚了。
如果有TMS570的问题,请发在Hercules™ ARM®安全微控制器。
看了你的问题描述,不是很明白你应用是什么?能详细描述一下吗?
ADC的自检是用来检测ADC模块自身是否正常用的,不是用来检测外部信号的。
Regards,
Jay
举报

成尔秩

2018-5-25 03:30:19
引用: 小Qhhui 发表于 2018-5-25 03:10
Hi Ping,
抱歉回复晚了。
如果有TMS570的问题,请发在Hercules™ ARM®安全微控制器。

hello Jay,
我们是通过selftest 去检查AD口外接电容是否存在。
在technical user manual 中有说到 :
"Figure 22-16 shows the self-test mode timing when the
ADREFLO is chosen as the reference voltage for the self-test mode conversion. It also assumes an
external capacitor connected to the ADC input channel."
如果只是设置“ADCALCR”进入self-test mode, 然后去读对应的ADport,返回结果和normal mode状态下相差不大,略小。(猜测是sample时间过短,放电过程刚开始)
通过设置“ADCLOCKCR”,和 “ADG1SAMP” 并进入self- test mode  然后去读对应的ADport,得到的结果会和normal mode状态下相差很大(放电过程中采样)。
我们是通过以上手段去检查对应的电容是否存在,同时可以大体确认电容值是否正常。
但是问题是,如何去合理的设置“ADCLOCKCR和“ADG1SAMP”?理论依据?
举报

李平

2018-5-25 03:44:08
引用: wanyou2345 发表于 2018-5-25 03:30
hello Jay,
我们是通过selftest 去检查AD口外接电容是否存在。
在technical user manual 中有说到 :

Hi Ping,
    我看你的描述,觉得你这个方法似乎不是太可行。我不知道我理解的对不对,如果有不对的地方,还请指出。
首先,我们的ADC self-test 主要是通过轮流切换ADC的参考电压为ADCREFLO 和ADCREFHI 两个值来测量输入的模拟信号的值,如果得到的转换的值两次都是固定或十分接近 ADCREFLO 或是ADCREFHI的值,从而来判断它是短接到地或是短接到VDD。这个前提是值我们的芯片的ADCREFHI管脚外部接到VDD,ADCREFLO管脚接到GND。
   同时我们ADC进入self-test模式,只能是通过设置ADCALCR.8的这一位置位来进入,同时通过ADCALCR.24位的配合来选定参考电压源的。我暂时还没找到关于设置ADCLOCKCR和ADG1SAMP的模式来进入self-test 模式。
   关于你的检测AD口外接电容的方法,是不是想通过放电时间的长短来确定呢?主要是想通过比较同时间内比较采样值的大小来确定这个AD口是处于放电过程中,还是放点以及结束,从而判断电容是否存在?对吧。其实我有一个想法可以用来做这样的测试:
  你可以利用RC振荡电路原理,利用定时器和ADC模块来测量电容充放电的时间来确定电容的值,这样会不会更准确和方便的检测出AD口的电容是否存在,以及大概的电容值呢。

谢谢
ken
     
                                                                         



BR,
KEN
举报

成尔秩

2018-5-25 04:02:10
引用: lining870815844 发表于 2018-5-25 03:44
Hi Ping,
    我看你的描述,觉得你这个方法似乎不是太可行。我不知道我理解的对不对,如果有不对的地方,还请指出。
首先,我们的ADC self-test 主要是通过轮流切换ADC的参考电压为ADCREFLO 和ADCREFHI 两个值来测量输入的模拟信号的值,如果得到的转换的值两次都是固定或十分接近 ADCREFLO 或是ADCREFHI的值,从而来判 ...

您好, Ken
您说的很对。
其实我们在实际测试中是通过1)设置ADCALCR.8进入self-test mode, 2)通过设置ADCALCR.24位选择ADCREFLO,3)通过设置ADCLOCKCR和ADG1SAMP来定时(充当定时器),4)再ADC模块来测试电容在放电过程中的AD值,来判定电容是否存在,同时电容值是否在规定范围内。
1.我不确定通过设置ADCLOCKCR和ADG1SAMP是否可以起到定时器的作用。
2.如果可以,我对如何设置ADCLOCKCR和ADG1SAMP这两个寄存器不太了解。不知道它的原理是什么。我猜应该根据电容大小来计算放电时间,然后再根据放电时间,选个比较合适的,小于放电时间的时间值,并根据这个值去设定ADCLOCKCR和ADG1SAMP这两个寄存器。
不知道我的猜测是否正确?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分