Occasionally, I remember the opening scene of Ridley Scott’s sci-fi film “Alien” (1979) where MU/TH/UR 6000 - the USCSS Nostromo’s computer mainframe - awakens the crew after detecting a transmission of unknown origin. Remember? The ship’s hallways, all long, dark and empty; all the instrumentation at rest…and suddenly…electrical hum, red and yellow lights go on reflected in two helmets resting on chairs, electronic pulsing sounds,…
From the above, we can infer that the acoustical beacon: that distress call transmitted from the wrecked alien spacecraft in a nearby planetoid, had previously also awakened “Mother”, in a way.
The other night, reading about the ARM Cortex-M3 revision 2, I found out that a new ultra-low-power feature called Wake up Interrupt Controller (WIC) was added. The WIC is an optional implementation that allows the system to wake up from interrupt events while the processor (including the NVIC) is completely stopped or powered down (in stasis like the crew). The WIC is not programmable, and does not have any registers or user interface. It operates entirely from hardware signals. Any clock signal going into the processor core can be completely stopped. The WIC only leaves a small portion of the logic gates to retain the current state of the processor saved in special logic cells. When an interrupt arrives, the WIC sends a request to the Power Management Unit (PMU) to power up the system. All of this for the sake of reducing power consumption. Sadly, this feature was never implemented in the SAM3 or SAM4 series. Why? Because of very limited interest. However, the SAM3X8E features several low power modes (Sleep, Wait and Backup) and wake-up capabilities which allow reducing consumption to a minimum (2.5uA typ) and waking up fast (< 0.5 ms) using WFE or WFI instructions by setting the SLEEPDEEP bit in the System Control Register (SCR).
All of this, in combination with the Arduino Starter Kit project #2: a spaceship interface, (http://arduino.cc/en/ArduinoStarterKit/Prj02) make me think to port to Arduino Due, one of these days, the Atmel ASF Low Power example that shows how to invoke the low power modes using the WFE and WFI instructions and adding three LEDs as status indicators and two buttons (for a simulated Nostromo spaceship) to send to deep sleep or wake up the Arduino Due (like an also Mother or simulated crew). I will leave you the Alien simulation. Regards!