SSD1306 only uses I2C pins
[hackover2013-badge-firmware.git] / projectconfig.h
index 489064d..ac0366d 100644 (file)
@@ -7,7 +7,7 @@
 
     Software License Agreement (BSD License)
 
-    Copyright (c) 2010, microBuilder SARL
+    Copyright (c) 2012, microBuilder SARL
     All rights reserved.
 
     Redistribution and use in source and binary forms, with or without
     different pin configuration, you will need to specify which board you
     are using by enabling one of the following definitions. The code base
     will then try to configure itself accordingly for that board.
+
+    CFG_BRD_LPC1343_REFDESIGN   
+    =========================
+
+        microBuilder.eu LPC1343 Reference Design base board with
+        on-board peripherals initialised (EEPROM, USB or UART CLI, etc.)
+               
+               This is the recommended starting point for new development
+               since it makes it easy to send printf output to USB CDC, access
+               the on-board EEPROM, etc.
+
+    CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+    =================================
+
+        microBuilder.eu LPC1343 Reference Design base board with 
+        only the most common peripherals initialised by default.  
+        
+        Results in smallest code since EEPROM, USB, etc., are not
+        initialised on startup.  By default, only the following
+        peripherals are initialised by systemInit():
+        
+              - CPU (Configures the PLL, etc.)
+              - GPIO
+              - SysTick Timer
+              - UART (with printf support) *
+    
+        * Can be removed to save 0.8kb in debug and 0.3 kb in
+        release. Comment out 'CFG_PRINTF_UART' to disable it.
+  
+        The code size can be further reduced by several KB by removing
+        any IRQ Handlers that are not used.  The I2C IRQHandler, for
+        example, uses ~1KB of flash in debug and ~400KB in release mode,
+        but because it is referenced in the startup code it is always
+        included even if I2C is never used in the project.
+
+        Other IRQ Handlers that you might be able to comment out
+        to save some space are:
+
+        IRQ Handler               Debug   Release
+        ------------------------- ------  -------
+        I2C_IRQHandler            1160 b    400 b
+        SSP_IRQHandler             160 b     76 b
+        UART_IRQHandler            246 b    116 b
+        WAKEUP_IRQHandler          160 b    100 b
+        WDT_IRQHandler              50 b     28 b
+
+    CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
+    ====================================
+
+        microBuilder.eu/Adafruit Stand-Alone "Smart LCD" with USB enabled
+        for the CLI interface.
+
+    CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+    =====================================
+
+        microBuilder.eu/Adafruit Stand-Alone "Smart LCD" with UART enabled
+        for the CLI interface.
+
+    CFG_BRD_LPC1343_802154USBSTICK
+    ==============================
+
+        microBuilder.eu USB stick 802.15.4 868/915MHz RF transceiver
+
+    CFG_BRD_LPC1343_OLIMEX_P
+    ==============================
+
+        Simple Olimex LPC1343 breakout board
+
+    CFG_BRD_LPC1343_LPCXPRESSO
+    ==============================
+
+        LPC1343 LPCXpresso board
+
     -----------------------------------------------------------------------*/
-    // #define CFG_BRD_LPC1343_REFDESIGN
-    #define CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #define CFG_BRD_LPC1343_REFDESIGN
+    // #define CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+    // #define CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
+    // #define CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
     // #define CFG_BRD_LPC1343_802154USBSTICK
+    // #define CFG_BRD_LPC1343_OLIMEX_P
+    // #define CFG_BRD_LPC1343_LPCXPRESSO
 /*=========================================================================*/
 
 
     ILI9325/8   X X  X  X     X X X X X X X X X     . . . X
     ST7565      X X  X  X     X X X X X X X X X     . . . X
     ST7735      . .  .  .     X X X X X X . . .     . . . .
-    SSD1306     . .  .  .     X X X . X X . . .     . . . .
+    SHARPMEM    . .  .  .     X X X X . . . . .     . . . .
+    SSD1306 SPI . .  .  .     X X X . X X . . .     . . . .
+    SSD1351     . .  .  .     X X X X X . . . .     . . . .
     MCP121      . .  .  .     . . . . . . . . .     . X . .
+    PN532 [3]   . .  .  .     . . . . . . . . .     . X X . 
 
                 TIMERS                    SSP     ADC         UART
                 ======================    ===     =======     ====
     ILI9325/8   .     .     .     .       .       X X X X     .
     ST7565      .     .     .     .       .       X X X X     .
     ST7535      .     .     .     .       .       . . . .     .
-    SSD1306     .     .     .     .       .       . . . .     .
+    SHARPMEM    .     .     .     .       .       . . . .     .
+    SSD1306 SPI .     .     .     .       .       . . . .     .
     INTERFACE   .     .     .     .       .       . . . .     X[2]
 
     [1]  PMU uses 32-bit Timer 0 for SW wakeup from deep-sleep.  This timer
          can safely be used by other peripherals, but may need to be
          reconfigured when you wakeup from deep-sleep.
     [2]  INTERFACE can be configured to use either USBCDC or UART
+    [3]  P3.2 is only used with the I2C bus (for IRQ)
+
+ **************************************************************************/
+
+
+/**************************************************************************
+    I2C Addresses
+    -----------------------------------------------------------------------
+    The following addresses are used by the different I2C sensors included
+    in the code base [1]
+
+                                HEX       BINARY  
+                                ====      ========
+    ISL12022M (RTC)             0xDE      1101111x
+    ISL12022M (SRAM)            0xAE      1010111x
+    LM75B                       0x90      1001000x
+    MCP24AA                     0xA0      1010000x
+    MCP4725                     0xC0      1100000x
+    TSL2561                     0x72      0111001x
+    TCS3414                     0x72      0111001x
+    PN532                       0x48      0100100x
+    SSD1306_I2C                 0x78      0111100x  // Assumes SA0 = GND
+
+    [1]  Alternative addresses may exists, but the addresses listed in this
+         table are the values used in the code base
 
  **************************************************************************/
 
 /*=========================================================================
     FIRMWARE VERSION SETTINGS
     -----------------------------------------------------------------------*/
-    #define CFG_FIRMWARE_VERSION_MAJOR            (0)
-    #define CFG_FIRMWARE_VERSION_MINOR            (9)
-    #define CFG_FIRMWARE_VERSION_REVISION         (2)
+    #define CFG_FIRMWARE_VERSION_MAJOR            (1)
+    #define CFG_FIRMWARE_VERSION_MINOR            (0)
+    #define CFG_FIRMWARE_VERSION_REVISION         (0)
 /*=========================================================================*/
 
 
                     other peripherals to determine timing.
 
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      #define CFG_CPU_CCLK                (72000000)  // 1 tick = 13.88nS
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      #define CFG_CPU_CCLK                (72000000)  // 1 tick = 13.88nS
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      #define CFG_CPU_CCLK                (72000000)  // 1 tick = 13.88nS
-    #endif
+    #define CFG_CPU_CCLK                (72000000)  // 1 tick = 13.88nS
 /*=========================================================================*/
 
 
     CFG_SYSTICK_DELAY_IN_MS   The number of milliseconds between each tick
                               of the systick timer.
 
+    -----------------------------------------------------------------------*/
+    #define CFG_SYSTICK_DELAY_IN_MS     (1)
+/*=========================================================================*/
+
+
+/*=========================================================================
+    GPIO INTERRUPTS
+    -----------------------------------------------------------------------
+
+    IF you wish to use the GPIO interrupt handlers elsewhere in your code,
+    you should probably define a seperate IRQHandler for the appropriate
+    GPIO bank rather than using the definitions in core/gpio/gpio.c (to
+    avoid causing problems in other projects, and to make updates easier,
+    etc.)  To disable the default IRQHandler, simply comment out the
+    define below for the appropriate GPIO bank and implement the handler
+    somewhere else.
+
+    GPIO_ENABLE_IRQ0    If defined, PIOINT0_IRQHandler will be declared and
+                        handled in core/gpio/gpio.c
+    GPIO_ENABLE_IRQ1    If defined, PIOINT1_IRQHandler will be declared and
+                        handled in core/gpio/gpio.c
+    GPIO_ENABLE_IRQ2    If defined, PIOINT2_IRQHandler will be declared and
+                        handled in core/gpio/gpio.c
+    GPIO_ENABLE_IRQ3    If defined, PIOINT3_IRQHandler will be declared and
+                        handled in core/gpio/gpio.c
+
     -----------------------------------------------------------------------*/
     #ifdef CFG_BRD_LPC1343_REFDESIGN
-      #define CFG_SYSTICK_DELAY_IN_MS     (1)
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      #define CFG_SYSTICK_DELAY_IN_MS     (1)
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
     #endif
 
     #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      #define CFG_SYSTICK_DELAY_IN_MS     (1)
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
+    #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define GPIO_ENABLE_IRQ0
+      #define GPIO_ENABLE_IRQ1
+      // #define GPIO_ENABLE_IRQ2
+      // #define GPIO_ENABLE_IRQ3
+    #endif
+/*=========================================================================*/
+
+
+/*=========================================================================
+    ALTERNATE RESET PIN
+    -----------------------------------------------------------------------
+
+    CFG_ALTRESET        If defined, indicates that a GPIO pin should be
+                        configured as an alternate reset pin in addition
+                        to the dedicated reset pin.
+    CFG_ALTRESET_PORT   The GPIO port where the alt reset pin is located
+    CFG_ALTRESET_PIN    The GPIO pin where the alt reset pin is located
+
+    -----------------------------------------------------------------------*/
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      #define CFG_ALTRESET
+      #define CFG_ALTRESET_PORT         (1)
+      #define CFG_ALTRESET_PIN          (5)   // P1.5 = RTS
     #endif
 /*=========================================================================*/
 
       #define CFG_UART_BUFSIZE            (512)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      #define CFG_UART_BAUDRATE           (115200)
+      #define CFG_UART_BUFSIZE            (512)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
       #define CFG_UART_BAUDRATE           (115200)
       #define CFG_UART_BUFSIZE            (512)
     #endif
 
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      #define CFG_UART_BAUDRATE           (57600)
+      #define CFG_UART_BUFSIZE            (512)
+    #endif
+
     #ifdef CFG_BRD_LPC1343_802154USBSTICK
       #define CFG_UART_BAUDRATE           (115200)
       #define CFG_UART_BUFSIZE            (512)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define CFG_UART_BAUDRATE           (115200)
+      #define CFG_UART_BUFSIZE            (512)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define CFG_UART_BAUDRATE           (115200)
+      #define CFG_UART_BUFSIZE            (512)
+    #endif
 /*=========================================================================*/
 
 
       // #define CFG_SSP0_SCKPIN_0_6
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      #define CFG_SSP0_SCKPIN_2_11
+      // #define CFG_SSP0_SCKPIN_0_6
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       #define CFG_SSP0_SCKPIN_2_11
       // #define CFG_SSP0_SCKPIN_0_6
     #endif
       // #define CFG_SSP0_SCKPIN_2_11
       #define CFG_SSP0_SCKPIN_0_6
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define CFG_SSP0_SCKPIN_2_11
+      // #define CFG_SSP0_SCKPIN_0_6
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define CFG_SSP0_SCKPIN_2_11
+      // #define CFG_SSP0_SCKPIN_0_6
+    #endif
+/*=========================================================================*/
+
+
+/*=========================================================================
+    ADC
+    -----------------------------------------------------------------------
+
+    ADC_AVERAGING_ENABLE      To get better results, the ADC code can take
+                              a number of samples and return the average
+                              value.  This is slower, but can give more
+                              accurate results compared to single-reading.
+                              
+                              To enable averaging, set ADC_AVERAGING_ENABLE
+                              to a non-zero value.
+    ADC_AVERAGING_SAMPLES     The number of ADC samples to read and
+                              average if ADC averaging is enabled.
+
+    -----------------------------------------------------------------------*/
+    #ifdef CFG_BRD_LPC1343_REFDESIGN
+      #define ADC_AVERAGING_ENABLE    (1)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      #define ADC_AVERAGING_ENABLE    (1)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      #define ADC_AVERAGING_ENABLE    (0)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_802154USBSTICK
+      #define ADC_AVERAGING_ENABLE    (0)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define ADC_AVERAGING_ENABLE    (0)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define ADC_AVERAGING_ENABLE    (0)
+      #define ADC_AVERAGING_SAMPLES   (5)
+    #endif
 /*=========================================================================*/
 
 
       #define CFG_LED_OFF                 (1)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      #define CFG_LED_PORT                (2)
+      #define CFG_LED_PIN                 (10)
+      #define CFG_LED_ON                  (0)
+      #define CFG_LED_OFF                 (1)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       #define CFG_LED_PORT                (2)
       #define CFG_LED_PIN                 (10)
       #define CFG_LED_ON                  (0)
       #define CFG_LED_ON                  (0)
       #define CFG_LED_OFF                 (1)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define CFG_LED_PORT                (3)
+      #define CFG_LED_PIN                 (2)
+      #define CFG_LED_ON                  (0)
+      #define CFG_LED_OFF                 (1)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define CFG_LED_PORT                (0)
+      #define CFG_LED_PIN                 (7)
+      #define CFG_LED_ON                  (0)
+      #define CFG_LED_OFF                 (1)
+    #endif
 /*=========================================================================*/
 
 
       #define CFG_SDCARD_CDPIN            (0)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_SDCARD
+      #define CFG_SDCARD_READONLY         (1)   // Must be 0 or 1
+      #define CFG_SDCARD_CDPORT           (3)
+      #define CFG_SDCARD_CDPIN            (0)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       #define CFG_SDCARD
       #define CFG_SDCARD_READONLY         (1)   // Must be 0 or 1
       #define CFG_SDCARD_CDPORT           (3)
       #define CFG_SDCARD_CDPORT           (3)
       #define CFG_SDCARD_CDPIN            (0)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define CFG_SDCARD
+      #define CFG_SDCARD_READONLY         (1) // Must be 0 or 1
+      #define CFG_SDCARD_CDPORT           (3)
+      #define CFG_SDCARD_CDPIN            (0)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define CFG_SDCARD
+      #define CFG_SDCARD_READONLY         (1) // Must be 0 or 1
+      #define CFG_SDCARD_CDPORT           (3)
+      #define CFG_SDCARD_CDPIN            (0)
+    #endif
 /*=========================================================================*/
 
 
       #define CFG_USBCDC_BUFFERSIZE       (256)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_USBHID
+      // #define CFG_USBCDC
+      #define CFG_USBCDC_BAUDRATE         (115200)
+      #define CFG_USBCDC_INITTIMEOUT      (5000)
+      #define CFG_USBCDC_BUFFERSIZE       (256)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
       // #define CFG_USBHID
       #define CFG_USBCDC
       #define CFG_USBCDC_BAUDRATE         (115200)
       #define CFG_USBCDC_BUFFERSIZE       (256)
     #endif
 
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      // #define CFG_USBHID
+      // #define CFG_USBCDC
+      #define CFG_USBCDC_BAUDRATE         (57600)
+      #define CFG_USBCDC_INITTIMEOUT      (5000)
+      #define CFG_USBCDC_BUFFERSIZE       (256)
+    #endif
+
     #ifdef CFG_BRD_LPC1343_802154USBSTICK
       // #define CFG_USBHID
       #define CFG_USBCDC
       #define CFG_USBCDC_INITTIMEOUT      (5000)
       #define CFG_USBCDC_BUFFERSIZE       (256)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define CFG_USBHID
+      #define CFG_USBCDC
+      #define CFG_USBCDC_BAUDRATE         (115200)
+      #define CFG_USBCDC_INITTIMEOUT      (5000)
+      #define CFG_USBCDC_BUFFERSIZE       (256)
+    #endif     
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define CFG_USBHID
+      #define CFG_USBCDC
+      #define CFG_USBCDC_BAUDRATE         (115200)
+      #define CFG_USBCDC_INITTIMEOUT      (5000)
+      #define CFG_USBCDC_BUFFERSIZE       (256)
+    #endif
 /*=========================================================================*/
 
 
     PRINTF REDIRECTION
     -----------------------------------------------------------------------
 
+    CFG_PRINTF_MAXSTRINGSIZE  Maximum size of string buffer for printf
     CFG_PRINTF_UART           Will cause all printf statements to be 
                               redirected to UART
     CFG_PRINTF_USBCDC         Will cause all printf statements to be
                               redirect to USB Serial
-    CFG_PRINTF_NEWLINE        This should be either "\r\n" for Windows or
+    CFG_PRINTF_NEWLINE        This is typically "\r\n" for Windows or
                               "\n" for *nix
 
     Note: If no printf redirection definitions are present, all printf
-    output will be ignored, though this will also save ~350 bytes flash.
-
-    NOTE: PRINTF Support =    ~350 bytes Flash (-Os)
+    output will be ignored.
     -----------------------------------------------------------------------*/
     #ifdef CFG_BRD_LPC1343_REFDESIGN
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
       // #define CFG_PRINTF_UART
       #define CFG_PRINTF_USBCDC
       #define CFG_PRINTF_NEWLINE          "\r\n"
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
+      #define CFG_PRINTF_UART
+      // #define CFG_PRINTF_USBCDC
+      #define CFG_PRINTF_NEWLINE          "\r\n"
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
       // #define CFG_PRINTF_UART
       #define CFG_PRINTF_USBCDC
       #define CFG_PRINTF_NEWLINE          "\r\n"
     #endif
 
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
+      #define CFG_PRINTF_UART
+      // #define CFG_PRINTF_USBCDC
+      #define CFG_PRINTF_NEWLINE          "\n"
+    #endif
+
     #ifdef CFG_BRD_LPC1343_802154USBSTICK
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
+      // #define CFG_PRINTF_UART
+      #define CFG_PRINTF_USBCDC
+      #define CFG_PRINTF_NEWLINE          "\r\n"
+    #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
+      // #define CFG_PRINTF_UART
+      #define CFG_PRINTF_USBCDC
+      #define CFG_PRINTF_NEWLINE          "\r\n"
+    #endif     
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define CFG_PRINTF_MAXSTRINGSIZE    (255)
       // #define CFG_PRINTF_UART
       #define CFG_PRINTF_USBCDC
       #define CFG_PRINTF_NEWLINE          "\r\n"
                               is normally only desirable in a situation
                               where another MCU is communicating with 
                               the LPC1343.
+    CFG_INTERFACE_DROPCR      If this is set to 1 all incoming \r
+                              characters will be dropped
     CFG_INTERFACE_ENABLEIRQ   If this is set to 1 the IRQ pin will be
                               set high when a command starts executing
                               and will go low when the command has
                               new command can safely be sent.
     CFG_INTERFACE_IRQPORT     The gpio port for the IRQ/busy pin
     CFG_INTERFACE_IRQPIN      The gpio pin number for the IRQ/busy pin
+    CFG_INTERFACE_SHORTERRORS If this is enabled only short 1 character
+                              error messages will be returned (followed
+                              by CFG_PRINTF_NEWLINE), rather than more
+                              verbose error messages.  The specific
+                              characters used are defined below.
+    CFG_INTERFACE_CONFIRMREADY  If this is set to 1 a text confirmation
+                              will be sent when the command prompt is
+                              ready for a new command.  This is in
+                              addition to CFG_INTERFACE_ENABLEIRQ if
+                              this is also enabled.  The character used
+                              is defined below.
 
     NOTE:                     The command-line interface will use either
                               USB-CDC or UART depending on whether
       #define CFG_INTERFACE_MAXMSGSIZE    (256)
       #define CFG_INTERFACE_PROMPT        "LPC1343 >> "
       #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
       #define CFG_INTERFACE_ENABLEIRQ     (0)
-      #define CFG_INTERFACE_IRQPORT       (2)
-      #define CFG_INTERFACE_IRQPIN        (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_INTERFACE
+      #define CFG_INTERFACE_MAXMSGSIZE    (256)
+      #define CFG_INTERFACE_PROMPT        "LPC1343 >> "
+      #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
+      #define CFG_INTERFACE_ENABLEIRQ     (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB
       #define CFG_INTERFACE
       #define CFG_INTERFACE_MAXMSGSIZE    (256)
-      #define CFG_INTERFACE_PROMPT        "LCD >> "
+      #define CFG_INTERFACE_PROMPT        "CMD >> "
       #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
+      #define CFG_INTERFACE_ENABLEIRQ     (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
+      #define CFG_INTERFACE_SHORTERRORS_UNKNOWNCOMMAND    "?"
+      #define CFG_INTERFACE_SHORTERRORS_TOOMANYARGS       ">"
+      #define CFG_INTERFACE_SHORTERRORS_TOOFEWARGS        "<"
+      #define CFG_INTERFACE_CONFIRMREADY_TEXT             "."
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
+      #define CFG_INTERFACE
+      #define CFG_INTERFACE_MAXMSGSIZE    (256)
+      #define CFG_INTERFACE_PROMPT        ">>"
+      #define CFG_INTERFACE_SILENTMODE    (1)
+      #define CFG_INTERFACE_DROPCR        (1)
       #define CFG_INTERFACE_ENABLEIRQ     (1)
-      #define CFG_INTERFACE_IRQPORT       (2)
-      #define CFG_INTERFACE_IRQPIN        (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (1)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
+      #define CFG_INTERFACE_SHORTERRORS_UNKNOWNCOMMAND    "?"
+      #define CFG_INTERFACE_SHORTERRORS_TOOMANYARGS       ">"
+      #define CFG_INTERFACE_SHORTERRORS_TOOFEWARGS        "<"
+      #define CFG_INTERFACE_CONFIRMREADY_TEXT             "."
     #endif
 
     #ifdef CFG_BRD_LPC1343_802154USBSTICK
       #define CFG_INTERFACE_MAXMSGSIZE    (256)
       #define CFG_INTERFACE_PROMPT        "CMD >> "
       #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
       #define CFG_INTERFACE_ENABLEIRQ     (0)
-      #define CFG_INTERFACE_IRQPORT       (2)
-      #define CFG_INTERFACE_IRQPIN        (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
+    #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      #define CFG_INTERFACE
+      #define CFG_INTERFACE_MAXMSGSIZE    (256)
+      #define CFG_INTERFACE_PROMPT        "LPC-P1343 >> "
+      #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
+      #define CFG_INTERFACE_ENABLEIRQ     (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
+    #endif
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      #define CFG_INTERFACE
+      #define CFG_INTERFACE_MAXMSGSIZE    (256)
+      #define CFG_INTERFACE_PROMPT        "LPC-P1343 >> "
+      #define CFG_INTERFACE_SILENTMODE    (0)
+      #define CFG_INTERFACE_DROPCR        (0)
+      #define CFG_INTERFACE_ENABLEIRQ     (0)
+      #define CFG_INTERFACE_IRQPORT       (0)
+      #define CFG_INTERFACE_IRQPIN        (7)
+      #define CFG_INTERFACE_SHORTERRORS   (0)
+      #define CFG_INTERFACE_CONFIRMREADY  (0)
     #endif
 /*=========================================================================*/
 
     DEPENDENCIES:               PWM output requires the use of 16-bit
                                 timer 1 and pin 1.9 (CT16B1_MAT0).
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      // #define CFG_PWM
-      #define CFG_PWM_DEFAULT_PULSEWIDTH  (CFG_CPU_CCLK / 1000)
-      #define CFG_PWM_DEFAULT_DUTYCYCLE   (50)
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      // #define CFG_PWM
-      #define CFG_PWM_DEFAULT_PULSEWIDTH  (CFG_CPU_CCLK / 1000)
-      #define CFG_PWM_DEFAULT_DUTYCYCLE   (50)
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      // #define CFG_PWM
-      #define CFG_PWM_DEFAULT_PULSEWIDTH  (CFG_CPU_CCLK / 1000)
-      #define CFG_PWM_DEFAULT_DUTYCYCLE   (50)
-    #endif
+    // #define CFG_PWM
+    #define CFG_PWM_DEFAULT_PULSEWIDTH  (CFG_CPU_CCLK / 1000)
+    #define CFG_PWM_DEFAULT_DUTYCYCLE   (50)
 /*=========================================================================*/
 
 
     DEPENDENCIES:               STEPPER requires the use of pins 3.0-3 and
                                 32-bit Timer 0.
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      // #define CFG_STEPPER
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      // #define CFG_STEPPER
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      // #define CFG_STEPPER
-    #endif
+    // #define CFG_STEPPER
 /*=========================================================================*/
 
 
       #define CFG_I2CEEPROM_SIZE          (3072)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_I2CEEPROM
+      #define CFG_I2CEEPROM_SIZE          (3072)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       #define CFG_I2CEEPROM
       #define CFG_I2CEEPROM_SIZE          (3072)
     #endif
       #define CFG_I2CEEPROM
       #define CFG_I2CEEPROM_SIZE          (3072)
     #endif
+
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define CFG_I2CEEPROM
+      #define CFG_I2CEEPROM_SIZE          (3072)
+    #endif     
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define CFG_I2CEEPROM
+      #define CFG_I2CEEPROM_SIZE          (3072)
+    #endif
 /*=========================================================================*/
 
 
     #define CFG_EEPROM_RESERVED                 (0x00FF)              // Protect first 256 bytes of memory
     #define CFG_EEPROM_CHIBI_IEEEADDR           (uint16_t)(0x0000)    // 8
     #define CFG_EEPROM_CHIBI_SHORTADDR          (uint16_t)(0x0009)    // 2
+    #define CFG_EEPROM_UART_SPEED               (uint16_t)(0x0020)    // 4
     #define CFG_EEPROM_TOUCHSCREEN_CALIBRATED   (uint16_t)(0x0030)    // 1
     #define CFG_EEPROM_TOUCHSCREEN_CAL_AN       (uint16_t)(0x0031)    // 4
     #define CFG_EEPROM_TOUCHSCREEN_CAL_BN       (uint16_t)(0x0035)    // 4
     #define CFG_EEPROM_TOUCHSCREEN_CAL_FN       (uint16_t)(0x0045)    // 4
     #define CFG_EEPROM_TOUCHSCREEN_CAL_DIVIDER  (uint16_t)(0x0049)    // 4
     #define CFG_EEPROM_TOUCHSCREEN_THRESHHOLD   (uint16_t)(0x004D)    // 1
-    #define CFG_EEPROM_UART_SPEED               (uint16_t)(0x0020)    // 4
 /*=========================================================================*/
 
 
                               build (requires external HW)
 
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      // #define CFG_LM75B
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      // #define CFG_LM75B
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      // #define CFG_LM75B
-    #endif
+    // #define CFG_LM75B
 /*=========================================================================*/
 
 
       #define CFG_CHIBI_BUFFERSIZE        (128)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_CHIBI
+      #define CFG_CHIBI_MODE              (0)                 // OQPSK_868MHZ
+      #define CFG_CHIBI_POWER             (0xE9)              // CHB_PWR_EU2_3DBM
+      #define CFG_CHIBI_CHANNEL           (0)                 // 868-868.6 MHz
+      #define CFG_CHIBI_PANID             (0x1234)
+      #define CFG_CHIBI_PROMISCUOUS       (0)
+      #define CFG_CHIBI_BUFFERSIZE        (128)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       // #define CFG_CHIBI
       #define CFG_CHIBI_MODE              (0)                 // OQPSK_868MHZ
       #define CFG_CHIBI_POWER             (0xE9)              // CHB_PWR_EU2_3DBM
       #define CFG_CHIBI_PROMISCUOUS       (0)
       #define CFG_CHIBI_BUFFERSIZE        (1024)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define CFG_CHIBI
+      #define CFG_CHIBI_MODE              (0)                 // OQPSK_868MHZ
+      #define CFG_CHIBI_POWER             (0xE9)              // CHB_PWR_EU2_3DBM
+      #define CFG_CHIBI_CHANNEL           (0)                 // 868-868.6 MHz
+      #define CFG_CHIBI_PANID             (0x1234)
+      #define CFG_CHIBI_PROMISCUOUS       (0)
+      #define CFG_CHIBI_BUFFERSIZE        (128)
+    #endif     
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define CFG_CHIBI
+      #define CFG_CHIBI_MODE              (0)                 // OQPSK_868MHZ
+      #define CFG_CHIBI_POWER             (0xE9)              // CHB_PWR_EU2_3DBM
+      #define CFG_CHIBI_CHANNEL           (0)                 // 868-868.6 MHz
+      #define CFG_CHIBI_PANID             (0x1234)
+      #define CFG_CHIBI_PROMISCUOUS       (0)
+      #define CFG_CHIBI_BUFFERSIZE        (128)
+    #endif
 /*=========================================================================*/
 
 
                                 a pre-determined LCD screen to be included
                                 during build.  Only one LCD driver can be 
                                 included during the build process (for ex.
-                                'drivers/lcd/hw/ILI9325.c')
+                                'drivers/displays/hw/ILI9325.c')
     CFG_TFTLCD_INCLUDESMALLFONTS If set to 1, smallfont support will be
                                 included for 3x6, 5x8, 7x8 and 8x8 fonts.
                                 This should only be enabled if these small
       #define CFG_TFTLCD_TS_KEYPADDELAY      (100)
     #endif
 
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
+    #ifdef CFG_BRD_LPC1343_REFDESIGN_MINIMAL
+      // #define CFG_TFTLCD
+      #define CFG_TFTLCD_INCLUDESMALLFONTS   (0)
+      #define CFG_TFTLCD_TS_DEFAULTTHRESHOLD (50)
+      #define CFG_TFTLCD_TS_KEYPADDELAY      (100)
+    #endif
+
+    #if defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB || defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART
       #define CFG_TFTLCD
       #define CFG_TFTLCD_INCLUDESMALLFONTS   (0)
       #define CFG_TFTLCD_TS_DEFAULTTHRESHOLD (50)
       #define CFG_TFTLCD_TS_DEFAULTTHRESHOLD (50)
       #define CFG_TFTLCD_TS_KEYPADDELAY      (100)
     #endif
+       
+    #ifdef CFG_BRD_LPC1343_OLIMEX_P
+      // #define CFG_TFTLCD
+      #define CFG_TFTLCD_INCLUDESMALLFONTS   (0)
+      #define CFG_TFTLCD_TS_DEFAULTTHRESHOLD (50)
+      #define CFG_TFTLCD_TS_KEYPADDELAY      (100)
+    #endif     
+
+    #ifdef CFG_BRD_LPC1343_LPCXPRESSO
+      // #define CFG_TFTLCD
+      #define CFG_TFTLCD_INCLUDESMALLFONTS   (0)
+      #define CFG_TFTLCD_TS_DEFAULTTHRESHOLD (50)
+      #define CFG_TFTLCD_TS_KEYPADDELAY      (100)
+    #endif
 /*=========================================================================*/
 
 
 /*=========================================================================
-    128x64 Graphic LCDs
+    Monochrome/Bitmap Graphic LCDs
     -----------------------------------------------------------------------
 
     CFG_ST7565                If defined, this will cause drivers for
                               the 128x64 pixel ST7565 LCD to be included
     CFG_SSD1306               If defined, this will cause drivers for
                               the 128x64 pixel SSD1306 OLED display to be
-                              included
-
-    Note:                     LPC1114 @ 36MHz and the ST7565 with the
-                              backlight enabled consumes ~35mA
+                              included (using bit-banged SPI)
+    CFG_SHARPMEM              If defined, this will cause drivers for
+                              Sharp Memory Displays to be included
 
     DEPENDENCIES:             ST7565 requires the use of pins 2.1-6.
     DEPENDENCIES:             SSD1306 requires the use of pins 2.1-6.
+    DEPENDENCIES:             SSD1306_I2C requires the use of pins 2.2.
+    DEPENDENCIES:             SHARPMEM requires the use of pins 2.1-4.
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      // #define CFG_ST7565
-      // #define CFG_SSD1306
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      // #define CFG_ST7565
-      // #define CFG_SSD1306
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      // #define CFG_ST7565
-      // #define CFG_SSD1306
-    #endif
+    // #define CFG_ST7565
+    // #define CFG_SSD1306
+    // #define CFG_SHARPMEM
 /*=========================================================================*/
 
 
     NOTE:                       Please note that Printf can not be
                                 used to display 64-bit values (%lld)!
     -----------------------------------------------------------------------*/
-    #ifdef CFG_BRD_LPC1343_REFDESIGN
-      // #define CFG_RSA
-      #define CFG_RSA_BITS                  (32)
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_TFTLCDSTANDALONE
-      // #define CFG_RSA
-      #define CFG_RSA_BITS                  (32)
-    #endif
-
-    #ifdef CFG_BRD_LPC1343_802154USBSTICK
-      // #define CFG_RSA
-      #define CFG_RSA_BITS                  (32)
-    #endif
+    // #define CFG_RSA
+    #define CFG_RSA_BITS                  (32)
 /*=========================================================================*/
 
 
 
   =========================================================================*/
 
-#if !defined CFG_BRD_LPC1343_REFDESIGN && !defined CFG_BRD_LPC1343_TFTLCDSTANDALONE && !defined CFG_BRD_LPC1343_802154USBSTICK
-  #error "You must defined a target board (CFG_BRD_LPC1343_REFDESIGN or CFG_BRD_LPC1343_TFTLCDSTANDALONE or CFG_BRD_LPC1343_802154USBSTICK)"
-#endif
-#if (defined CFG_BRD_LPC1343_REFDESIGN && defined CFG_BRD_LPC1343_TFTLCDSTANDALONE) || (defined CFG_BRD_LPC1343_TFTLCDSTANDALONE && defined CFG_BRD_LPC1343_802154USBSTICK) || (defined CFG_BRD_LPC1343_REFDESIGN && defined CFG_BRD_LPC1343_802154USBSTICK)
-  #error "Only one target board can be defined at a time"
+#if !defined CFG_BRD_LPC1343_REFDESIGN && \
+  !defined CFG_BRD_LPC1343_REFDESIGN_MINIMAL && \
+  !defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_USB && \
+  !defined CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART && \
+  !defined CFG_BRD_LPC1343_802154USBSTICK && \
+  !defined CFG_BRD_LPC1343_OLIMEX_P && \
+  !defined CFG_BRD_LPC1343_LPCXPRESSO
+  #error "You must defined a target board (CFG_BRD_LPC1343_REFDESIGN or CFG_BRD_LPC1343_REFDESIGN_MINIMAL or CFG_BRD_LPC1343_TFTLCDSTANDALONE or CFG_BRD_LPC1343_TFTLCDSTANDALONE_UART or CFG_BRD_LPC1343_802154USBSTICK or CFG_BRD_LPC1343_LPCXPRESSO)"
 #endif
 
 #if defined CFG_PRINTF_USBCDC && defined CFG_PRINTF_UART
   #if CFG_CHIBI_PROMISCUOUS != 0 && CFG_CHIBI_PROMISCUOUS != 1
     #error "CFG_CHIBI_PROMISCUOUS must be equal to either 1 or 0"
   #endif
+  #if !defined GPIO_ENABLE_IRQ1
+    #error "GPIO_ENABLE_IRQ1 must be enabled when using Chibi (Chibi IRQ is on GPIO1.8)"
+  #endif
 #endif
 
 #ifdef CFG_TFTLCD
   #ifdef CFG_SSD1306
     #error "CFG_TFTLCD and CFG_SSD1306 can not be defined at the same time."
   #endif
+  #ifdef CFG_SHARPMEM
+    #error "CFG_TFTLCD and CFG_SHARPMEM can not be defined at the same time."
+  #endif
   #ifdef CFG_PWM
     #error "CFG_TFTLCD and CFG_PWM can not be defined at the same time since they both use pin 1.9."
   #endif
   #endif
 #endif
 
+#if ADC_AVERAGING_ENABLE && ADC_AVERAGING_SAMPLES < 1
+  #error "ADC_AVERAGING_SAMPLES must be 1 or higher when ADC averaging is enabled"
+#endif
+
 #endif
This page took 0.044742 seconds and 4 git commands to generate.