Any suggestions on a low-power programmable timer that does something like the following (to wake up a microcontroller)?:

Shortest delay I need is about 10ms. Highest delay I would like is a few hundred ms, but I could get by with less. Precision I would like is 100 PPM (10us). Operates on 3V battery, and is mostly immune to voltage variations of 20% or so. It would also be nice if current was well less than 100uA.

...or am I asking for way too much? Any comments or suggestions are appreciated.

  • 2
    \$\begingroup\$ How would you set the timing? \$\endgroup\$ – jonk Feb 13 '18 at 8:44
  • 3
    \$\begingroup\$ Use a micro which can be put into deep sleep and woken by a timer/rtc interrupt. \$\endgroup\$ – Colin Feb 13 '18 at 8:45

There are many microcontrollers available that can support the wake up function you desire right within the part. Here is what you want to look for when searching for a suitable part:

  1. Look for a part that supports a low power sleep mode.
  2. Evaluate the data sheet to assure that the current draw of this microcontroller in the Sleep state is at or below your target max current requirement.
  3. Make sure that the microcontroller has a programmable timer that can remain running in the sleep mode.
  4. Check that the way of exiting the sleep mode back to active mode (i.e. the wake up) can be triggered from the programmable timer. This could be an interrupt mechanism or a soft reset of the microcontroller depending on various types.
  5. Check that the microcontroller clocking source is running in the sleep mode.
  6. Make sure it is possible to configure the programmable timer with an appropriate prescaler to permit the timer to operate with steps of 1msec using the microcontroller clock that stays running in the sleep mode.
  7. Lastly verify the tolerance and stability of the frequency source that generates the timer operating clock to ensure it meets your accuracy requirements.

Once you have found your ideal microcontroller you just need to add the necessary software to program the timer to the desired sleep interval to trigger after the number of milliseconds and then program the microcontroller into the sleep mode. Once the interval has passed the microcontroller will wake back up and resume executing code. Details of how that wake up code works will be dependent on your selected microcontroller and what you need the software to do.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.