“ 在一些情况下,比如电池供电,需要定时采集数据并传输,并且对功耗要求比较高时,就需要电路实现采集完成后关机,且能够定时自动启动的功能。”
一种方法是,采集完成后,通过单片机关闭外围电路的电源,且单片机本身处于低功耗模式,只保留RTC工作,设置定时唤醒中断。
另一种方法是通过硬件的设计实现真正的关机。
本文主要介绍第二种方法的设计。
这里首先介绍一个芯片:DS3231。
DS3231是高精度I2C接口的实时时钟(RTC),具有集成的温补晶振(TCXO)。芯片具有常规的日历功能,且提供两个可设置的日历闹钟和一个可设置的中断输出。这里要利用的就是日历闹钟和中断的功能。
基本应用电路如下图所示:
实现定时自动开机的功能,首先要设计电路总电源的控制电路,参考上篇文章《一键开关机电路设计》,需要做一些改动,这里不做详细介绍。
使用时,单片机完成采集、传输等工作后,根据当前时间设置DS3231的闹钟时间并开启中断输出功能。设置完成后,通过单片机IO口关闭总电源,这时DS3231仍在工作(DS3231由纽扣电池供电),当达到设置的闹钟时间后,芯片INT引脚输出低电平控制总电源打开,从而实现定时唤醒的功能。系统工作完成后,再重新设置闹钟,进入到下一个工作周期。
该芯片的闹钟可以实现日、时、分、秒的设置,最多可以实现一个月唤醒一次。
对比两种方法,各有优缺点。用单片机内部RTC实现定时唤醒功能,
设计相对简单,但无法实现真正的关机,功耗相对较高。用DS3231实现定时开机,设计相对复杂一点,但能实现真正的关机,比较适用于对功耗要求高的场合。