shouchengcheng
just do it

  最近在卡片测试程序,发现一颗2032的纽扣电池隔一天电压就会降差不多0.7V。耗电非常严重,关键我们这个卡片还是主推低功耗的。这要是拿出去,就是纯打脸。

  于是拿示波器观察波形,做法很简单,和电池串联一个10欧姆的电阻,通过它两边的电压侧面观察整体的电流功耗。然后我就发现哪个波形是惨不忍睹,和一开始在开发板上看到的波形完全不同。但这个卡片可以说是完全按照开发板来布线的,应该没什么问题,唯一不同之处是当初为了布线方便,换了几个引脚接口。天呐,难道问题在这里?但是照理说换一下端口应该没什么问题的啊。没办法,查呗。

  既然只有引脚不同,所有首先要查的就是在程序中,相应的引脚有没有全部改过来。

  最终问题出在IO初始化阶段,当时为了考虑低功耗,参照网上的做法,将IO口全部设置为输出低电平。因为后面对于用到的端口都会进行单独初始化的,所以一开始全部设置。结果问题就处在CC2500的GDO0和GDO2接着的IO口上。只要不去动这两个IO口,那么最低功耗就维持在20uA,但是如果其中一个,或两个都初始化了,那么问题就来了。最低功耗就在几个mA了。但是在没有换引脚之前我们也是这么给IO口进行初始化的,那样就没问题,偏偏换了端口就会出现这种问题。真是让人琢磨不透。

  而且这不是特例,我之后又试过很多张卡,发现初始化了GDO0和GDO2的,功耗都是很高的,基本一颗电池,只要2天就没电了。

posted on 2014-04-08 20:29  shouchengcheng  阅读(568)  评论(0编辑  收藏  举报