3
\$\begingroup\$

I'm working on a microcontroller design where the mcu is placed in hibernation mode, and can only be awoken by a pulse(high-low-high) signal on the reset pin. (active low) As a wake-up source i'm using an accelerometer or an external RTC.

The idea is to have the accelerometer trigger an interrupt, that drives an interrupt pin low. The same goes for the RTC. It will pull an interrupt pin to logic low signal. However, this won't wake the mcu from hibernation mode. I need to use this sleep-mode to save as much power as possible.

I'm wondering how I can create a toggle signal from the interrupt-pin signal form the wakeup sources. The toggle must only happen once, since its the reset-pin of the mcu. Is there any kind of latches of logic circuits/components that create this kind of signal?

Edit: Pulse of (High-low-high) signal, not toggle(low-high-low) I'm using an Energy Micro Gecko (EMF32G890F128) with a Cortex-M3 core.

My energy budget is low, my design should stay as low as <100µA active, and currently with RTC and accelerometer this is achieved.

Edit2: The interrupt signals from both accelerometer and RTC stays low until reset by mcu. Usually this is done by reading a register in the peripheral unit. And for this to happen the mcu must be awake.

\$\endgroup\$
  • 2
    \$\begingroup\$ Which MCU are you using, and what is the power budget for this external reset circuit? Obviously, there isn't much point if it isn't the same order of magnitude as the MCU itself (in hibernation mode). \$\endgroup\$ – Dave Tweed Jan 9 '13 at 13:34
  • \$\begingroup\$ Deep-sleep, that is the next best thing(sleep mode) uses quite alot more, 0.6µA as compared to hibernation on 20nA. This isn't really the true power consumption, but would indicate the powerloss of a "lighter" sleep-mode. \$\endgroup\$ – Jeffa Jan 9 '13 at 13:49
  • 1
    \$\begingroup\$ What is the external RTC? Can you link to its datasheet? Does it have any functionality to generate a pulse instead of a level - and perhaps respond to external events from accelerometer? \$\endgroup\$ – Brian Drummond Jan 9 '13 at 14:02
  • \$\begingroup\$ The external RTC is basically just an alarm clock. It will trigger an alarm every xx hour, sending out an interrupt signal, and keep the signal low until reset by the mcu. \$\endgroup\$ – Jeffa Jan 9 '13 at 14:04
  • \$\begingroup\$ but the form of that signal is...? Also, is there a 1Hz output available from it? \$\endgroup\$ – Brian Drummond Jan 9 '13 at 14:09
5
\$\begingroup\$

A monostable multivibrator circuit can provide the pulse (not toggle) that the question seems to describe, and can be triggered as per requirement.

Monostable Multivibrator.

Monostables can be made in many ways, such as using bipolar junction transistors as per the schematic above, or using the venerable 555 timer as shown below.

555 Monostable.

If you must use a 555, consider the ultra low power CSS555C timer, which has a supply current of 5 to 10 µA. Even this may be well over the power budget for the application.

Specifically, note the "C" at the end of the part number: This indicates an internal capacitor integrated on the chip, thus reducing current consumption further.

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ The "low power version" has a datasheet typical power consumption about 400* greater than his CPU in sleep mode. And sleep mode already consumes too much power... \$\endgroup\$ – Brian Drummond Jan 9 '13 at 13:55
  • 1
    \$\begingroup\$ Whoa! @BrianDrummond: That's right... Perhaps the CSS555C would work a bit better, with its 5 to 10 µA supply current. Still too much, but I'll edit it into my answer. \$\endgroup\$ – Anindo Ghosh Jan 9 '13 at 14:03
  • 1
    \$\begingroup\$ @Jeffa The 555 will trigger once per falling edge if set up in standard mode: Note Figure 7 in the datasheet. \$\endgroup\$ – Anindo Ghosh Jan 9 '13 at 14:20
  • 1
    \$\begingroup\$ @Anindo : some monostables will not return the output to its "off" state while the input is "on". Thus they can be used as pulse stretchers, but not pulse shorteners, which is what the OP needs. I haven't used a 555 since 1996 so I can't remember what it does... \$\endgroup\$ – Brian Drummond Jan 9 '13 at 14:26
  • 1
    \$\begingroup\$ @Jeffa Yes, you can definitely test with a generic 555, you just won't get the power saving that your question asks for. Also, the CSS555 allows programming of monoshot behavior, so if you need it to behave somewhat different from the normal 555 circuit, you will have to wait for the CSS part. \$\endgroup\$ – Anindo Ghosh Jan 10 '13 at 10:39
3
\$\begingroup\$

I'm starting to think you may have to use that signal to switch the power to a pulse generator like a 555 or another oscillator.

Anindo's suggested CS555 will run on the power that can be drawn from your interrupt pin. If you can't get it to trigger as a monostable when it powers up (this may be possible) then run it as an astable at about 1Hz. Then it resets the CPU as a watchdog; it is up to you to keep resetting it or power it down within a second...

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ +1 - Terrific idea! With the miniscule power draw of that IC, it's ideal to be used this way! \$\endgroup\$ – Anindo Ghosh Jan 9 '13 at 14:27
  • \$\begingroup\$ Let me just see if I got this right. I set up an oscillator with a slow frequency(enough to boot my system), and use the interrupt pin signal to power it on, say via a mosfet? The mosfet would allow for lower power-consumption during offline time :) \$\endgroup\$ – Jeffa Jan 9 '13 at 19:46
  • 1
    \$\begingroup\$ Yes - maybe via a MOSFET, or even using the pin itself as the 0V side of the oscillator's power supply. \$\endgroup\$ – Brian Drummond Jan 9 '13 at 23:56
1
\$\begingroup\$
  1. A "toggle" is a single transistion, not a low-high-low.
  2. You don't say what microcontroller, but almost certainly the reset pin is level sensitive, not edge-sensitive. To run the micro, the reset input needs to un-asserted (usually held high).
  3. There are probably better ways to wake the micro than to use the reset input. Doesn't this micro have a external interrupt input or a interrupt on change input? It most likely does, and most likely those events can wake the micro from sleep. That will probably also be more convenient to the firmware than having the wakeup event reset the micro in addition to starting it running again.
| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ The external interrupt-pins is disabled when in hibernation mode, so this feature is not available to me. The system is to power-hungry if the mcu is left in a lighter sleep-mode with interrupt controller active. Hibernation-mode shuts down everything, even clock and CPU retention \$\endgroup\$ – Jeffa Jan 9 '13 at 13:53

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.