微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 求助:CC2541利用IO口测量电容放电时间的奇怪问题。

求助:CC2541利用IO口测量电容放电时间的奇怪问题。

时间:10-02 整理:3721RD 点击:

尊敬的TI工程师:

您好!我有个问题想向你们请教。

我用CC2541的IO口测量电容放电时间。

P12、P13先为高,然后置P12为AD输入,然后置P13为0,启动定时器1。P12会缓慢下降,下降至低电平阈值时触发定时器中断,从而计算放电时间。

这是一个非常常用的方法。但是在测试时我发现一个奇怪的问题:

我在整个程序中有两个地方触发测量,这里分别叫A处和B处。按理来说,A处和B处应该测出来的值是一样的,因为触发测量后,都是定时器在计量时间。

当R=1M,C=620pF时,A处测出来值为0x0250左右,十分稳定,大约1%的抖动;B处测出来值也为0x0250左右,十分稳定,大约1%的抖动。

而当R=1M,C=10nF时,A处测出来值为0x1C00左右,数值抖动有些大,大约有10%的抖动范围;但B处测出来值却在0x1100和0x1900之间来回跳动,像0x11XX、0x11XX、0x19XX这样,大约2:1的出现概率。抖动范围非常大,并且和A处测出来的值大相径庭。

我感觉就是定时器1的计时时间一长,就会有这个问题。求教高手,可能是什么原因?

会不会是定时器计时时间长了以后,与OSAL的运行哪里出现了冲突?

上述测量是我用电池供电情况下测的。而当我用USB仿真器插着我的板子供电时,即使R=1M,C=620pF,B处测出来的值也会在B处测出来值却在0x1100和0x1900之间来回跳动,与上面不同的是,值是从0x11XX逐渐增大到0x19XX,然后再下降到0x11XX。

电池供电和仿真器供电的区别,应该是仿真器供电,cc2541就不进入休眠吧。为何会这样呢?

求高手帮助!十分感谢!

不好意思,拜读两边没太看懂:-)

但不管怎样,P13加个FET,通过沟道开关应该是更稳定的。

另,P口电压都是3V吗?(两种工作状态下)可以用示波器看看纹波啥的,而且也可以检测一下放点曲线的区别。

AZ,

     非常感谢回复!

     我确认了,放电波形没有问题。

     我定位了我问题的原因,只要禁止休眠测量值就正确且稳定了。

     因为当外部时间达到10ms时,启动定时器计数一段时间后,OSAL让MCU进入了休眠PM2模式,定时器被关闭了。造成测量不准。

     我现在在每次测量时,先关闭休眠,测量完再打开就OK了。不过这样就是测量时不能休眠,比较费电,我电池能用的时间缩短了很多。

     有什么办法,既可以让MCU休眠,又可以让定时器在休眠时继续计数吗?

     或者有什么其他建议?

     非常感谢!

Frank

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top