完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-5-25 17:17 编辑
在产品测试的过程中,我们需要检查对A/D口外接的电容是否存在,容值是否正常。 比如 ref hi = 3.3v ref low = 0v , input = 2v, 外接电容为10nF. 应该如何做? ADCLOCKCR,ADCALCR,ADG1SAMP 应该如何设置?为什么? |
|
相关推荐
9个回答
|
|
Hi Ping,
抱歉回复晚了。 如果有TMS570的问题,请发在Hercules™ ARM®安全微控制器。 看了你的问题描述,不是很明白你应用是什么?能详细描述一下吗? ADC的自检是用来检测ADC模块自身是否正常用的,不是用来检测外部信号的。 Regards, Jay |
|
|
|
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”?理论依据? |
|
|
|
wanyou2345 发表于 2018-5-25 03:30 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 |
|
|
|
lining870815844 发表于 2018-5-25 03:44 您好, 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这两个寄存器。 不知道我的猜测是否正确? |
|
|
|
wanyou2345 发表于 2018-5-25 04:02 Hi Ping, 查看了一下我们的技术手册,觉得你这个想法是不错的,但是实施起来会有点问题。 首先我们的芯片针对采样窗口时间的设置都是按 ADC group来设置的,这也就意味着我们一个group里面所有ADC的采样通道的采样窗口时间都是一致的, 你要通过采样后的AD值来判断是否有电容的,那也就是说,首先你必须给每一个ADC的电压值设定一个参考值,而且有可能因为你每个通道采样的电压源是不一样的,这个参考值也就不一样了。这个是一个比较纠结的地方。不过这只是我的想法,也许你们已经有了好的打算。 第二个问题就是,你这个电容检测是在什么情况下检测呢,是系统开始运行还是说在系统运行过程中呢。因为这牵扯到一个重新配置ADC参数的问题。 第三个就是,感觉你要实现的功能和我们的self-test的功能不是太一样。你要进行的操作,应该不需要ADC进入自检测状态来进行吧。 以上只是我的理解,有误之处还请指明。 谢谢! ken BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 04:07 第一个问题, 比如我要测试AD1IN[0]端口外的电容,首先,我会先读取ADCLOCKCR和ADG1SAMP的默认值,然后设置ADCLOCKCR,ADG1SAMP,并设置ADCALCR 进入self-test 模式,ADCREFLO。通过ADC模块来测试电容在放电过程中的AD值。 最后推出self-test mode 并设置ADCLOCKCR和ADG1SAMP回默认值 第二个问题, 我们是在产品上电后测试的。产品的默认设置应该在产品刷完bootloader后就配置好了。我们在测试过程中如上所述,不会改变配置。只是为了测试需要,临时改变一下,测完会改回去的。 第三个问题, 是的,我们是借助self-test功能去做电容的check,当然同时也做了AD口的self-test。因为我们的产品是整块PCBA,上电后每个ADC口都有对应的电压,没法单独控制ADC口的电压上下电。所以只能通过这个方式来做。 我是这么理解,不知道对不对? |
|
|
|
wanyou2345 发表于 2018-5-25 04:14 Hi Ping, 通过这几次沟通交流下来,你们通过设置配置在特定的采样时间内去读取AD口的采样值,然后去比较,最终得出AD口是否有电容。这个在原理上市可行的。因为我们的采样时间主要是通过ADG1SAMP[11:2]这几个位来配置的,最小是2,最大是4098, 它的单位是ADCCLK。这个ADCCLK是可以通过设置ADCLOCKCR[4:0]来配置AD模块的分频系数来得到ADCCLK的频率是多大。 但是我有几个问题: 第一, 你们的参考电压源不能选ADCREFLO,因为这个是最低电压,一般都是GND。如果你选择它的话,那你AD的测试量程就没有了,任何一个AD值得到都是最大值2^12. 你应该设置它为ADCREFHI会好一些。 第二, 因为你每个AD口的电压值不一样,那你们是不是前期得有一个类似于数据库的东西,用来比较带电容和不带电容这个AD值应该是怎么样的。这样才比较好判断是否有电容值吧。 你看这样可以吗? 谢谢 ken BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 04:21 你好 Ken 谢谢您的解答! 还有个疑问,就是如何计算并设置ADG1SAMP,ADCLOCKCR。 比如,AD1IN[0]外部输入电压2V(2/3.3*1024 = 620 count ---10bit ADC register),外接电容为100nF. 我要自检时得到300count 左右的AD 值,我要如何计算并设置以上两个寄存器? |
|
|
|
Hi Ping, 说实话,这种操作我们以前也没有测试过。你可以自己尝试着测测看。 在我们的datasheet上面有把AD模块的采样保持时间,转换时间和一般的延迟时间,就如类似于下图所示: 里面可以看到采样保持的时间大概是200ns左右,你可以以这个数值为基础,在其左右附近设置。 大概的时间可以这样算:t =( ADG1SAMP[11:0]+2)* 1/ VCLK* (ADCLOCKER[4:0]+1); 这个只是我个人的理解,你可以试试看。希望对你有所帮助。 谢谢 ken BR, KEN |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
570 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1019 浏览 1 评论
662 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
496 浏览 1 评论
1018 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
122浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
93浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
105浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
103浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
127浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 22:29 , Processed in 1.079947 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号