Countdown digital timer that never needs battery replacement

Publisher:JoyfulMelodyLatest update time:2012-02-23 Source: 电子设计技术Keywords:Battery Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
A basic countdown timer is built with only an MCU, LCD, 32kHz crystal and a resistor, and can operate for more than 10 years with just a common button battery. There are two key design considerations to minimize power consumption and maximize battery life: careful battery selection and full use of the MCU's low-power modes.

The CR2032 lithium-ion button cell was chosen because of its small footprint for portable applications, flat discharge curve for direct LCD driving without compensation, and low leakage for extended operating time. A typical CR2032 is rated at ~200mA, which allows several hours of operation. To achieve the design goal of 10 years of continuous operation, the average system current consumption should not exceed 2.28μA, calculated as the battery energy value divided by the application's operating life, as shown below:
The MCU was chosen for its extremely low standby current of only 0.8μA, and it also includes a crystal oscillator, integrated LCD driver, and interrupt-driven wake-up timer. A 3?-inch LCD display adds 1μA to the system current consumption. The total standby current consumption of the countdown timer during the entire operation period is as follows:

Normally, the MCU is operating in standby mode, and the timer with a clock crystal frequency of 32kHz triggers a one-second interrupt, which allows the MCU to return to the main loop of operation (Mainloop). The main loop uses direct BCD subtraction to decrement the software countdown register, which can significantly reduce software overhead. We add decimal 99h to the software countdown timer, and the actual number subtracted is 1. Direct BCD subtraction is not only effective, but also allows the countdown to be displayed directly on the LCD without the need for current-consuming binary BCD subtraction operations. The software then displays the value in the countdown register on the LCD. Finally, the value in the countdown register is compared with zero to determine whether the preprogrammed period has expired. If so, a timeout message is displayed. The main loop requires the CPU and the on-chip high-speed oscillator to operate at a current consumption of 250μA. However, since we have reduced the loop count to less than 100 when writing the software, that is, equivalent to 100μs at the default 1MHz CPU frequency, the current consumption added by the main loop is almost negligible in such a short operating time, which is calculated as follows:

The total current consumption of the countdown digital timer is the sum of the standby and main loop current consumption:

With an average current consumption of 1.8μA, this countdown timer easily achieves the design goal of less than 2.28μA, allowing continuous operation for more than 10 years. Since the battery life can reach 10 years, we can use a non-replaceable battery when designing the countdown timer, which simplifies the construction and reduces the unit cost. Since a large number of MCU functions and pins are not used, we can also use them to add additional features. The firmware required to implement the counter is quite small, occupying less than 250 bytes on the MCU's 8k bytes of flash memory.

Keywords:Battery Reference address:Countdown digital timer that never needs battery replacement

Previous article:PTP2000 and its application in non-stop toll collection system
Next article:A new method of self-learning and restoration of infrared remote control signals based on single chip microcomputer

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号