Test code that turns off parts of the mbed in succession from peripherals, Ethernet, magic chip and finally goes into deep power down.
main.cpp@0:fad41ad347c2, 2011-02-18 (annotated)
- Committer:
- zainulcharbiwala
- Date:
- Fri Feb 18 00:08:00 2011 +0000
- Revision:
- 0:fad41ad347c2
Initial check in
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zainulcharbiwala | 0:fad41ad347c2 | 1 | #include "mbed.h" |
zainulcharbiwala | 0:fad41ad347c2 | 2 | #include "PowerControl/PowerControl.h" |
zainulcharbiwala | 0:fad41ad347c2 | 3 | #include "PowerControl/EthernetPowerControl.h" |
zainulcharbiwala | 0:fad41ad347c2 | 4 | |
zainulcharbiwala | 0:fad41ad347c2 | 5 | #define USR_POWERDOWN (0x104) |
zainulcharbiwala | 0:fad41ad347c2 | 6 | |
zainulcharbiwala | 0:fad41ad347c2 | 7 | int semihost_powerdown() { |
zainulcharbiwala | 0:fad41ad347c2 | 8 | uint32_t arg; |
zainulcharbiwala | 0:fad41ad347c2 | 9 | return __semihost(USR_POWERDOWN, &arg); |
zainulcharbiwala | 0:fad41ad347c2 | 10 | } |
zainulcharbiwala | 0:fad41ad347c2 | 11 | |
zainulcharbiwala | 0:fad41ad347c2 | 12 | DigitalOut myled(LED1); |
zainulcharbiwala | 0:fad41ad347c2 | 13 | DigitalOut result(LED2); |
zainulcharbiwala | 0:fad41ad347c2 | 14 | |
zainulcharbiwala | 0:fad41ad347c2 | 15 | int main() { |
zainulcharbiwala | 0:fad41ad347c2 | 16 | wait(2); |
zainulcharbiwala | 0:fad41ad347c2 | 17 | // Turn off all peripherals |
zainulcharbiwala | 0:fad41ad347c2 | 18 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM0); |
zainulcharbiwala | 0:fad41ad347c2 | 19 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM1); |
zainulcharbiwala | 0:fad41ad347c2 | 20 | Peripheral_PowerDown(LPC1768_PCONP_PCUART0); |
zainulcharbiwala | 0:fad41ad347c2 | 21 | Peripheral_PowerDown(LPC1768_PCONP_PCUART1); |
zainulcharbiwala | 0:fad41ad347c2 | 22 | Peripheral_PowerDown(LPC1768_PCONP_PCPWM1); |
zainulcharbiwala | 0:fad41ad347c2 | 23 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C0); |
zainulcharbiwala | 0:fad41ad347c2 | 24 | Peripheral_PowerDown(LPC1768_PCONP_PCSPI); |
zainulcharbiwala | 0:fad41ad347c2 | 25 | Peripheral_PowerDown(LPC1768_PCONP_PCRTC); |
zainulcharbiwala | 0:fad41ad347c2 | 26 | Peripheral_PowerDown(LPC1768_PCONP_PCSSP1); |
zainulcharbiwala | 0:fad41ad347c2 | 27 | Peripheral_PowerDown(LPC1768_PCONP_PCADC); |
zainulcharbiwala | 0:fad41ad347c2 | 28 | Peripheral_PowerDown(LPC1768_PCONP_PCGPIO); |
zainulcharbiwala | 0:fad41ad347c2 | 29 | Peripheral_PowerDown(LPC1768_PCONP_PCRIT); |
zainulcharbiwala | 0:fad41ad347c2 | 30 | Peripheral_PowerDown(LPC1768_PCONP_PCMCPWM); |
zainulcharbiwala | 0:fad41ad347c2 | 31 | Peripheral_PowerDown(LPC1768_PCONP_PCQEI); |
zainulcharbiwala | 0:fad41ad347c2 | 32 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C1); |
zainulcharbiwala | 0:fad41ad347c2 | 33 | Peripheral_PowerDown(LPC1768_PCONP_PCSSP0); |
zainulcharbiwala | 0:fad41ad347c2 | 34 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM2); |
zainulcharbiwala | 0:fad41ad347c2 | 35 | // TIMER 3 not turned off |
zainulcharbiwala | 0:fad41ad347c2 | 36 | //Peripheral_PowerDown(LPC1768_PCONP_PCQTIM3); |
zainulcharbiwala | 0:fad41ad347c2 | 37 | Peripheral_PowerDown(LPC1768_PCONP_PCUART2); |
zainulcharbiwala | 0:fad41ad347c2 | 38 | Peripheral_PowerDown(LPC1768_PCONP_PCUART3); |
zainulcharbiwala | 0:fad41ad347c2 | 39 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C2); |
zainulcharbiwala | 0:fad41ad347c2 | 40 | Peripheral_PowerDown(LPC1768_PCONP_PCI2S); |
zainulcharbiwala | 0:fad41ad347c2 | 41 | Peripheral_PowerDown(LPC1768_PCONP_PCGPDMA); |
zainulcharbiwala | 0:fad41ad347c2 | 42 | Peripheral_PowerDown(LPC1768_PCONP_PCENET); |
zainulcharbiwala | 0:fad41ad347c2 | 43 | Peripheral_PowerDown(LPC1768_PCONP_PCUSB); |
zainulcharbiwala | 0:fad41ad347c2 | 44 | wait(2); |
zainulcharbiwala | 0:fad41ad347c2 | 45 | // Turn off PHY |
zainulcharbiwala | 0:fad41ad347c2 | 46 | PHY_PowerDown(); |
zainulcharbiwala | 0:fad41ad347c2 | 47 | wait(2); |
zainulcharbiwala | 0:fad41ad347c2 | 48 | // Turn off IF |
zainulcharbiwala | 0:fad41ad347c2 | 49 | result = semihost_powerdown(); |
zainulcharbiwala | 0:fad41ad347c2 | 50 | wait(2); |
zainulcharbiwala | 0:fad41ad347c2 | 51 | // Go to Sleep |
zainulcharbiwala | 0:fad41ad347c2 | 52 | DeepPowerDown(); |
zainulcharbiwala | 0:fad41ad347c2 | 53 | } |