PIC16单片机设置不同IO口状态对功耗的影响

2019-04-15 11:45发布

最近在做PIC单片机的低功耗,于是设置不同IO口状态测试了一下功耗情况,采用串联万用表的方式测量电流,单片机IO口为悬空状态,整个系统无外设驱动,测试采用的是PIC16F690单片机。
思路如下:系统上电后初始化所有的IO,然后进入调用系统函数SLEEP();进入休眠状态。 1. A、B、C端口全部为输拉:休眠后耗电500uA左右。 2. A、B、C端口全部为输拉:休眠后耗电500uA左右。 3. A、B、C端口全部为输上拉:休眠后耗电2200uA左右。 4. A、B、C端口全部为输下拉:休眠后耗电<1uA。反正万用表直流2mA 档示数为零,我没有更精密的测量工具了,所以具体多少nA不知,但以上测量数据足以给同行们一些启示。
实际运用中,降低晶振的工作频率,关闭BOR欠压复位等设置可以更省电。注意,悬空的IO引脚不管是上拉到VDD还是下拉到GND,总需要拉一下的。如果只设置为输入后输出,而没有设置为上拉到VDD或下拉到GND,则会非常耗电,功耗会至少增大十倍。千万注意呀!