1
\$\begingroup\$

I'm a newbie in electronics. I need to build an ultra low power (nA) reed switch signal reading for an mcu. I'm using the following schematic diagram. reed schematic diagram

The Vo output goes on a mcu input pin that is a Schmitt Trigger. Is there any chance this to work ?

\$\endgroup\$
6
  • 1
    \$\begingroup\$ Is this supposed to be switching the micro on and off, or providing an input to the micro? I don't understand 'reed switch signal reading' \$\endgroup\$
    – user1844
    Feb 6, 2015 at 23:33
  • \$\begingroup\$ Is there a reason why there are more components, other than R3, R4 and S1, if you use the same 2.8V Vdd? \$\endgroup\$
    – HKOB
    Feb 6, 2015 at 23:37
  • 1
    \$\begingroup\$ @ultrabit Please work on your schematics look. Take a read here> electronics.stackexchange.com/questions/28251/… \$\endgroup\$
    – Triak
    Feb 6, 2015 at 23:53
  • \$\begingroup\$ I apologise for this. It is the first time i write on this community. Thanks for your hints. \$\endgroup\$
    – ultrabit
    Feb 7, 2015 at 10:20
  • \$\begingroup\$ @HKOB: the attempt is to have 0 state when switch is opened while 1 state when it is closed. \$\endgroup\$
    – ultrabit
    Feb 7, 2015 at 11:50

1 Answer 1

0
\$\begingroup\$

What sort of response time do you need when the switch changes state? If the switch will often sit closed for extended periods of time and instant response when it opens isn't required, having a pull-up which is enabled when the CPU is interested in the pin state but disabled otherwise may be more efficient than having a weak pullup which is enabled all the time. If there is a source of periodic pulses, it may be helpful to use something like the following:

schematic

simulate this circuit – Schematic created using CircuitLab

Assume the "clock" outputs a 10us pulse, ten times per second. When the switch is closed, the circuit will consume 1mA, 1/10,000 of the time, which is to say that the switch will consume 1uA on average. Once the switch is open, PinState will go high the next time the clock outputs a pulse, or whenever the CPU outputs PullupReq; it will then remain high until the switch is closed. Note that if the CPU uses "wakeup on pin change" it will remain undisturbed while the switch sits closed, or while it sits open.

The only disadvantages of this approach are that unless CPU explicitly turns on PullupReq, it may take up to 100ms to find out when the switch is open, and it requires a source of pulses for the OR gate. Otherwise, it offers a pretty good trade-off of responsiveness vs power consumption, and--unlike high value resistors, will work even if the switch has some leakage resistance.

\$\endgroup\$
7
  • \$\begingroup\$ Yes! But generate the pull-up voltage from the MCU - if it's a nA circuit then the micro must he sleeping most of the time. When it wakes up it can check the switch. \$\endgroup\$
    – tomnexus
    Feb 7, 2015 at 3:40
  • \$\begingroup\$ @tomnexus: If one needs to have the processor wake up in response to switch events, one can simply have it sleep whenever it's not interested in the switch. Having external hardware poll the switch at e.g. 10Hz may consume less energy than having the CPU wake up every 100ms. \$\endgroup\$
    – supercat
    Feb 7, 2015 at 5:08
  • \$\begingroup\$ True,especially if the application requires a reasonable response time. I suppose he's trying to detect the opening of the switch, if it's normally open, there's no quiescent current. \$\endgroup\$
    – tomnexus
    Feb 7, 2015 at 5:12
  • \$\begingroup\$ Thanks for your reply. Yes, after the switch changes its state it retains this state for a long period of time. While the mcu is always in sleeping mode and goes up with a frequency of 64Hz and the running time is less than .5ms. So, this is not a "wake on pin change" circuit. \$\endgroup\$
    – ultrabit
    Feb 7, 2015 at 10:29
  • \$\begingroup\$ @ultrabit: Fair enough. If your CPU is waking up that often, I'd suggest that using a fairly strong active pull-up is probably the way to go. I'd suggest that you try writing a piece of code which, disables interrupts (if needed), turns on the pullup, waits a few cycles (e.g. via NOP instructions), reads the pin, turns off the pull-up, and re-enables any interrupts that were enabled before. The smaller the pull-up, the less time you'll have to leave it enabled. \$\endgroup\$
    – supercat
    Feb 7, 2015 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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