Set LED pins to output when MB851 is in sleep mode.

This reduces power consumption.
This commit is contained in:
Salvatore Pitrulli 2011-04-13 18:14:12 +02:00
parent 6655c876f2
commit af8e58e063
3 changed files with 18 additions and 9 deletions

View file

@ -40,15 +40,21 @@
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include PLATFORM_HEADER
#include BOARD_HEADER
#include "contiki-conf.h" #include "contiki-conf.h"
#include "dev/leds.h" #include "dev/leds.h"
#include "hal/micro/micro-common.h"
#include "hal/micro/cortexm3/micro-common.h"
#define LEDS_PORT *((volatile int32u *)(GPIO_PxOUT_BASE+(GPIO_Px_OFFSET*(LEDS_CONF_PORT/8))))
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
leds_arch_init(void) leds_arch_init(void)
{ {
LED_CONFIG(); halGpioConfig(PORTx_PIN(LEDS_CONF_PORT,LEDS_CONF_RED_PIN),GPIOCFG_OUT);
halGpioConfig(PORTx_PIN(LEDS_CONF_PORT,LEDS_CONF_GREEN_PIN),GPIOCFG_OUT);
LEDS_PORT |= (LEDS_CONF_RED | LEDS_CONF_GREEN); LEDS_PORT |= (LEDS_CONF_RED | LEDS_CONF_GREEN);
} }

View file

@ -1,5 +1,7 @@
#include PLATFORM_HEADER #include PLATFORM_HEADER
#include BOARD_HEADER #include BOARD_HEADER
#include "hal/micro/micro-common.h"
#include "hal/micro/cortexm3/micro-common.h"
#include "dev/button-sensor.h" #include "dev/button-sensor.h"
#include "dev/temperature-sensor.h" #include "dev/temperature-sensor.h"
@ -20,7 +22,7 @@ static uint8_t sensors_status;
void halBoardPowerDown(void) void halBoardPowerDown(void)
{ {
/* Set everything to input value */ /* Set everything to input value except LEDs */
GPIO_PACFGL = (GPIOCFG_IN <<PA0_CFG_BIT)| GPIO_PACFGL = (GPIOCFG_IN <<PA0_CFG_BIT)|
(GPIOCFG_IN <<PA1_CFG_BIT)| (GPIOCFG_IN <<PA1_CFG_BIT)|
(GPIOCFG_IN <<PA2_CFG_BIT)| (GPIOCFG_IN <<PA2_CFG_BIT)|
@ -46,6 +48,8 @@ void halBoardPowerDown(void)
(GPIOCFG_IN <<PC6_CFG_BIT)| /* OSC32K */ (GPIOCFG_IN <<PC6_CFG_BIT)| /* OSC32K */
(GPIOCFG_IN <<PC7_CFG_BIT); /* OSC32K */ (GPIOCFG_IN <<PC7_CFG_BIT); /* OSC32K */
leds_init();
} }
/* Remember state of sensors (if active or not), in order to /* Remember state of sensors (if active or not), in order to

View file

@ -143,12 +143,11 @@ typedef unsigned long long rtimer_clock_t;
#define RTIMER_CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0) #define RTIMER_CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0)
/* LEDs ports MB851 */ /* LEDs ports MB851 */
#define LEDS_CONF_RED 0x20 #define LEDS_CONF_RED_PIN 5
#define LEDS_CONF_GREEN 0x40 #define LEDS_CONF_GREEN_PIN 6
#define LEDS_PORT GPIO_PBOUT #define LEDS_CONF_PORT PORTB
// Open drain #define LEDS_CONF_RED (1<<LEDS_CONF_RED_PIN)
#define LED_CONFIG() GPIO_PBCFGH |= 0x0550; \ #define LEDS_CONF_GREEN (1<<LEDS_CONF_GREEN_PIN)
GPIO_PBCFGH &= 0xf55f
#define UIP_ARCH_ADD32 1 #define UIP_ARCH_ADD32 1