From 8903c52d2239fbfee5225816081dcbdf423839ba Mon Sep 17 00:00:00 2001 From: schneider Date: Sun, 12 Jun 2011 22:54:41 +0200 Subject: [PATCH] modified code for new pcb --- basic/basic.c | 19 ++++++---- basic/basic.h | 36 ++++++++++--------- lcd/backlight.c | 31 +++++++++++----- lcd/display.c | 7 ++-- main.c | 1 + modules/menutest.c | 16 ++++----- modules/sec.c | 2 ++ openbeacon/lpc13xx/openbeacon-usb2/Makefile | 1 + .../lpc13xx/openbeacon-usb2/inc/config.h | 2 +- openbeacon/lpc13xx/openbeacon-usb2/src/main.c | 9 +++-- .../lpc13xx/openbeacon-usb2/src/nRF_API.c | 15 ++++++-- openbeacon/lpc13xx/openbeacon-usb2/src/pin.c | 8 ++--- 12 files changed, 95 insertions(+), 52 deletions(-) diff --git a/basic/basic.c b/basic/basic.c index 2c4e0e0..91288df 100644 --- a/basic/basic.c +++ b/basic/basic.c @@ -2,7 +2,6 @@ #include "core/gpio/gpio.h" void rbInit() { - // TODO FIXME special port disable ? LEDs BTNs ? // prepare power @@ -30,6 +29,9 @@ void rbInit() { // prepare LEDs + IOCON_JTAG_TDI_PIO0_11 &= ~IOCON_JTAG_TDI_PIO0_11_FUNC_MASK; + IOCON_JTAG_TDI_PIO0_11 |= IOCON_JTAG_TDI_PIO0_11_FUNC_GPIO; + gpioSetDir(RB_LED0, gpioDirection_Output); gpioSetValue (RB_LED0, 1); @@ -44,18 +46,23 @@ void rbInit() { // prepare IR - gpioSetDir(RB_IROUT, gpioDirection_Output); - gpioSetValue (RB_IROUT, 1); + //gpioSetDir(RB_IROUT, gpioDirection_Output); + //gpioSetValue (RB_IROUT, 1); - gpioSetDir(RB_IRIN, gpioDirection_Input); - gpioSetPullup (&RB_IRIN_IO, gpioPullupMode_PullUp); + //gpioSetDir(RB_IRIN, gpioDirection_Input); + //gpioSetPullup (&RB_IRIN_IO, gpioPullupMode_PullUp); // prepare lcd // TODO FIXME more init needed ? gpioSetDir(RB_LCD_BL, gpioDirection_Output); - gpioSetValue (RB_LCD_BL, 1); + gpioSetValue (RB_LCD_BL, 0); + // Set P0.0 to GPIO + RB_PWR_LCDBL_IO&= ~RB_PWR_LCDBL_IO_FUNC_MASK; + RB_PWR_LCDBL_IO|= RB_PWR_LCDBL_IO_FUNC_GPIO; + gpioSetDir(RB_PWR_LCDBL, gpioDirection_Input); + gpioSetPullup(&RB_PWR_LCDBL_IO, gpioPullupMode_Inactive); // prepare I2C #ifdef __I2C_h diff --git a/basic/basic.h b/basic/basic.h index fe9bc4d..2aee0d6 100644 --- a/basic/basic.h +++ b/basic/basic.h @@ -15,10 +15,10 @@ // Infrared -#define RB_IROUT 1,5 +//#define RB_IROUT 1,5 -#define RB_IRIN 1,8 -#define RB_IRIN_IO IOCON_PIO1_8 +//#define RB_IRIN 1,8 +//#define RB_IRIN_IO IOCON_PIO1_8 // Buttons @@ -34,14 +34,14 @@ #define RB_BTN3 3,3 #define RB_BTN3_IO IOCON_PIO3_3 -#define RB_BTN4 1,4 -#define RB_BTN4_IO IOCON_PIO1_4 +#define RB_BTN4 2,7 +#define RB_BTN4_IO IOCON_PIO2_7 // LCD -#define RB_LCD_BL 1,10 +#define RB_LCD_BL 1,9 -#define RB_LCD_A0 2,0 +//#define RB_LCD_A0 2,0 #define RB_LCD_CS 2,1 @@ -59,7 +59,7 @@ #define RB_SPI_MOSI 0,9 -#define RB_SPI_SCK 0,10 +#define RB_SPI_SCK 2,11 #define RB_SPI_SS0 2,5 @@ -71,23 +71,27 @@ #define RB_SPI_SS4 3,1 -#define RB_SPI_SS5 2,11 +#define RB_SPI_SS5 2,10 // Power #define RB_PWR_VOLT 1,0 -#define RB_PWR_GOOD 1,9 +#define RB_PWR_GOOD 1,8 #define RB_PWR_CHRG 2,3 +#define RB_PWR_LCDBL 0,0 +#define RB_PWR_LCDBL_IO IOCON_nRESET_PIO0_0 +#define RB_PWR_LCDBL_IO_FUNC_MASK IOCON_nRESET_PIO0_0_FUNC_MASK +#define RB_PWR_LCDBL_IO_FUNC_GPIO IOCON_nRESET_PIO0_0_FUNC_GPIO // Hackerbus #define RB_HB0 1,3 #define RB_HB0_IO IOCON_PIO1_3 -#define RB_HB1 1,2 -#define RB_HB1_IO IOCON_PIO1_2 +#define RB_HB1 0,10 +#define RB_HB1_IO IOCON_PIO0_10 #define RB_HB2 1,1 #define RB_HB2_IO IOCON_PIO1_1 @@ -95,11 +99,11 @@ #define RB_HB3 0,2 #define RB_HB3_IO IOCON_PIO0_2 -#define RB_HB4 2,7 -#define RB_HB4_IO IOCON_PIO2_7 +#define RB_HB4 1,4 +#define RB_HB4_IO IOCON_PIO1_4 -#define RB_HB5 0,6 -#define RB_HB5_IO IOCON_PIO0_6 +#define RB_HB5 1,2 +#define RB_HB5_IO IOCON_PIO1_2 // Misc diff --git a/lcd/backlight.c b/lcd/backlight.c index a2a64fc..63b0257 100644 --- a/lcd/backlight.c +++ b/lcd/backlight.c @@ -3,6 +3,8 @@ */ #include "lpc134x.h" #include "sysdefs.h" +#include "core/gpio/gpio.h" +#include "basic/basic.h" uint32_t brightness = 100; @@ -10,31 +12,42 @@ void backlightInit(void) { /* Enable the clock for CT16B1 */ SCB_SYSAHBCLKCTRL |= (SCB_SYSAHBCLKCTRL_CT16B1); - /* Configure PIO1.10 as Timer1_16 MAT1 Output */ - IOCON_PIO1_10 &= ~IOCON_PIO1_10_FUNC_MASK; - IOCON_PIO1_10 |= IOCON_PIO1_10_FUNC_CT16B1_MAT1; + /* Configure PIO1.9 as Timer1_16 MAT0 Output */ + IOCON_PIO1_9 &= ~IOCON_PIO1_9_FUNC_MASK; + IOCON_PIO1_9 |= IOCON_PIO1_9_FUNC_CT16B1_MAT0; /* Set default duty cycle (MR1) */ - TMR_TMR16B1MR1 = (0xFFFF * (100 - brightness)) / 100; + TMR_TMR16B1MR0 = (0xFFFF * (100 - brightness)) / 100; /* External Match Register Settings for PWM */ - TMR_TMR16B1EMR = TMR_TMR16B1EMR_EMC1_TOGGLE | TMR_TMR16B1EMR_EM1; + TMR_TMR16B1EMR = TMR_TMR16B1EMR_EMC0_TOGGLE | TMR_TMR16B1EMR_EM0; /* enable Timer1 */ TMR_TMR16B1TCR = TMR_TMR16B1TCR_COUNTERENABLE_ENABLED; - /* Enable PWM1 */ - TMR_TMR16B1PWMC = TMR_TMR16B1PWMC_PWM1_ENABLED; + /* Enable PWM0 */ + TMR_TMR16B1PWMC = TMR_TMR16B1PWMC_PWM0_ENABLED; + + // Enable Step-UP + gpioSetDir(RB_PWR_LCDBL, gpioDirection_Output); + gpioSetValue(RB_PWR_LCDBL, 0); } int backlightSetBrightness(uint32_t percentage) { - if ((percentage < 1) || (percentage > 100)) { + if ((percentage < 0) || (percentage > 100)) { /* brightness must be a value between 1 and 100 */ return -1; } + if( percentage == 0 ){ + gpioSetDir(RB_PWR_LCDBL, gpioDirection_Input); + }else{ + gpioSetDir(RB_PWR_LCDBL, gpioDirection_Output); + gpioSetValue(RB_PWR_LCDBL, 0); + } + /* Set Duty Cycle (MR1) */ - TMR_TMR16B1MR1 = (0xFFFF * (100 - (brightness = percentage))) / 100; + TMR_TMR16B1MR0 = (0xFFFF * (100 - (brightness = percentage))) / 100; return 0; } diff --git a/lcd/display.c b/lcd/display.c index 0328dc5..659f242 100644 --- a/lcd/display.c +++ b/lcd/display.c @@ -41,8 +41,10 @@ int inverted = 0; */ #define CS 2,1 -#define SCK 0,10 +#define SCK 2,11 +//#define SCK 2,8 #define SDA 0,9 +//#define SDA 2,8 #define RST 2,2 void lcdWrite(uint8_t cd, uint8_t data) @@ -116,8 +118,7 @@ void lcdRead(uint8_t data) void lcdInit(void) { - IOCON_SWCLK_PIO0_10 = 0x51; - + //IOCON_SWCLK_PIO0_10 = 0x51; gpioSetValue(RST, 1); gpioSetValue(CS, 1); diff --git a/main.c b/main.c index 4a6ab82..1aa0d35 100644 --- a/main.c +++ b/main.c @@ -20,6 +20,7 @@ int main(void) { //enable clocks to adc and watchdog pmuInit(); + // initialise basic badge functions rbInit(); diff --git a/modules/menutest.c b/modules/menutest.c index bff3036..5219886 100644 --- a/modules/menutest.c +++ b/modules/menutest.c @@ -69,13 +69,13 @@ void delayms(int); uint8_t getInput(void) { uint8_t result = BTN_NONE; - if (gpioGetValue(RB_BTN1)==0) { - while(gpioGetValue(RB_BTN1)==0); + if (gpioGetValue(RB_BTN3)==0) { + while(gpioGetValue(RB_BTN3)==0); result += BTN_UP; } - if (gpioGetValue(RB_BTN0)==0) { - while(gpioGetValue(RB_BTN0)==0); + if (gpioGetValue(RB_BTN2)==0) { + while(gpioGetValue(RB_BTN2)==0); result += BTN_DOWN; } @@ -84,13 +84,13 @@ uint8_t getInput(void) { result += BTN_ENTER; } - if (gpioGetValue(RB_BTN2)==0) { - while(gpioGetValue(RB_BTN2)==0); + if (gpioGetValue(RB_BTN0)==0) { + while(gpioGetValue(RB_BTN0)==0); result += BTN_LEFT; } - if (gpioGetValue(RB_BTN3)==0) { - while(gpioGetValue(RB_BTN3)==0); + if (gpioGetValue(RB_BTN1)==0) { + while(gpioGetValue(RB_BTN1)==0); result += BTN_RIGHT; } diff --git a/modules/sec.c b/modules/sec.c index c06f36e..79b6182 100644 --- a/modules/sec.c +++ b/modules/sec.c @@ -16,6 +16,8 @@ void module_sec(void) { gpioSetDir(RB_LED3, gpioDirection_Input); IOCON_PIO1_11 = 0x41; + backlightInit(); + uint32_t j=0; //disable the JTAG on PIO3_3 diff --git a/openbeacon/lpc13xx/openbeacon-usb2/Makefile b/openbeacon/lpc13xx/openbeacon-usb2/Makefile index 8aea90c..4d557de 100644 --- a/openbeacon/lpc13xx/openbeacon-usb2/Makefile +++ b/openbeacon/lpc13xx/openbeacon-usb2/Makefile @@ -13,6 +13,7 @@ APP_SRC= \ src/nRF_API.c \ src/pin.c \ src/pmu.c \ + src/display.c # src/storage.c APP_SRC+=$(IMAGES_C) diff --git a/openbeacon/lpc13xx/openbeacon-usb2/inc/config.h b/openbeacon/lpc13xx/openbeacon-usb2/inc/config.h index 65632ac..fd79b24 100644 --- a/openbeacon/lpc13xx/openbeacon-usb2/inc/config.h +++ b/openbeacon/lpc13xx/openbeacon-usb2/inc/config.h @@ -42,6 +42,6 @@ #define TASK_NRF_STACK_SIZE 256 #define TASK_NRF_PRIORITY (tskIDLE_PRIORITY + 2) -#define UPDATE_INTERVAL_MS 50 +#define UPDATE_INTERVAL_MS 250 #endif/*__CONFIG_H__*/ diff --git a/openbeacon/lpc13xx/openbeacon-usb2/src/main.c b/openbeacon/lpc13xx/openbeacon-usb2/src/main.c index 36e55ae..714a872 100644 --- a/openbeacon/lpc13xx/openbeacon-usb2/src/main.c +++ b/openbeacon/lpc13xx/openbeacon-usb2/src/main.c @@ -33,13 +33,15 @@ #include "nRF_API.h" #include "nRF_CMD.h" #include "openbeacon-proto.h" +#include "display.h" /* OpenBeacon packet */ static TBeaconEnvelope g_Beacon; /* Default TEA encryption key of the tag - MUST CHANGE ! */ static const uint32_t xxtea_key[4] = -{ 0x00112233, 0x44556677, 0x8899AABB, 0xCCDDEEFF }; +//{ 0x00112233, 0x44556677, 0x8899AABB, 0xCCDDEEFF }; +{ 0xb4595344, 0xd3e119b6, 0xa814d0ec, 0xeff5a24e }; /* set nRF24L01 broadcast mac */ static const unsigned char broadcast_mac[NRF_MAX_MAC_SIZE] = @@ -196,7 +198,7 @@ void nRF_Task(void *pvParameters) /* Initialize OpenBeacon nRF24L01 interface */ if (!nRFAPI_Init(81, broadcast_mac, sizeof(broadcast_mac), 0)) /* bail out if can't initialize */ - // for (;;) + for (;;) { pin_led(GPIO_LED0 | GPIO_LED1); vTaskDelay(500 / portTICK_RATE_MS); @@ -349,6 +351,9 @@ int main(void) /* wait on boot - debounce */ for (i = 0; i < 2000000; i++) ; + + //pmu_off(0); + lcdInit(); /* initialize pins */ pin_init(); /* Init SPI */ diff --git a/openbeacon/lpc13xx/openbeacon-usb2/src/nRF_API.c b/openbeacon/lpc13xx/openbeacon-usb2/src/nRF_API.c index 7941852..516560d 100644 --- a/openbeacon/lpc13xx/openbeacon-usb2/src/nRF_API.c +++ b/openbeacon/lpc13xx/openbeacon-usb2/src/nRF_API.c @@ -29,9 +29,10 @@ #include "nRF_CMD.h" #include "nRF_API.h" -#ifndef NRF_RFOPTIONS +//#ifndef NRF_RFOPTIONS +//#define NRF_RFOPTIONS 0x99 #define NRF_RFOPTIONS 0x09 -#endif /*NRF_RFOPTIONS */ +//#endif /*NRF_RFOPTIONS */ // set broadcast MAC to 'BCAST' const uint8_t rfbroadcast_mac[NRF_MAX_MAC_SIZE] = { 'T', 'S', 'A', 'C', 'B' }; @@ -91,13 +92,21 @@ nRFAPI_Init (uint8_t channel, const uint8_t * mac, uint8_t mac_size, uint8_t features) { uint8_t i; - // init IO layer of nRF24L01 nRFCMD_Init (); /* wait for nRF to boot */ vTaskDelay(10 / portTICK_RATE_MS); + //nRFCMD_RegWriteStatusRead (CONFIG | WRITE_REG, 0x2); + // set selected channel + //nRFAPI_SetChannel (channel); + + // set Tx power + //nRFAPI_SetTxPower (3); + //nRFCMD_CE(1); + //while(1); + // check validity if (mac_size < 3 || mac_size > 5 || !nRFAPI_DetectChip ()) return 0; diff --git a/openbeacon/lpc13xx/openbeacon-usb2/src/pin.c b/openbeacon/lpc13xx/openbeacon-usb2/src/pin.c index d4fdf9e..fb3b910 100644 --- a/openbeacon/lpc13xx/openbeacon-usb2/src/pin.c +++ b/openbeacon/lpc13xx/openbeacon-usb2/src/pin.c @@ -26,10 +26,10 @@ /* IO definitions */ #define BUTTON0_PORT 2 #define BUTTON0_BIT 7 -#define LED0_PORT 2 -#define LED0_BIT 5 -#define LED1_PORT 2 -#define LED1_BIT 4 +#define LED0_PORT 1 +#define LED0_BIT 11 +#define LED1_PORT 1 +#define LED1_BIT 7 #define CPU_MODE_PMU_PORT 2 #define CPU_MODE_PMU_BIT 8