Test code that turns off parts of the mbed in succession from peripherals, Ethernet, magic chip and finally goes into deep power down.

Dependencies:   mbed

Committer:
zainulcharbiwala
Date:
Fri Feb 18 00:08:00 2011 +0000
Revision:
0:fad41ad347c2
Initial check in

Who changed what in which revision?

UserRevisionLine numberNew 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 }