summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-09-08 00:09:33 +0700
committerhathach <[email protected]>2013-09-08 00:09:33 +0700
commit1646fb28870b6651a4beab43d327dcd3b06b2542 (patch)
tree6126dd2eb8bd58cd56d07b390f2de6224ae4c27e
parent25a22e169bd48da1c26e8dfc873bd34ec45d31c1 (diff)
parent1231fae04c000b279c20e9468fdab1a5a3ec5139 (diff)
Merge branch 'master' of github.com:microbuilder/tinyusb
Conflicts: demos/bsp/boards/microbuilder/board_lpc4357usb.c demos/bsp/boards/microbuilder/board_lpc4357usb.h
-rw-r--r--demos/bsp/boards/microbuilder/board_lpc4357usb.c87
-rw-r--r--demos/bsp/boards/microbuilder/board_lpc4357usb.h15
2 files changed, 56 insertions, 46 deletions
diff --git a/demos/bsp/boards/microbuilder/board_lpc4357usb.c b/demos/bsp/boards/microbuilder/board_lpc4357usb.c
index 09fe5ab7a..829348537 100644
--- a/demos/bsp/boards/microbuilder/board_lpc4357usb.c
+++ b/demos/bsp/boards/microbuilder/board_lpc4357usb.c
@@ -26,10 +26,10 @@
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This file is part of the tinyusb stack.
@@ -40,52 +40,56 @@
#if BOARD == BOARD_LPC4357USB
-#define BOARD_MAX_LEDS 1
-const static struct {
- uint8_t port;
- uint8_t pin;
-}leds[BOARD_MAX_LEDS] = { {6, 1} };
-
-#define BOARD_UART_PORT LPC_USART0
-#define BOARD_UART_PIN_PORT 0x0f
-#define BOARD_UART_PIN_TX 10 // PF.10 : UART0_TXD
-#define BOARD_UART_PIN_RX 11 // PF.11 : UART0_RXD
+#define BOARD_UART_PORT (LPC_USART0)
+#define BOARD_UART_PIN_PORT (0x0F)
+#define BOARD_UART_PIN_TX (10) // PF.10 : UART0_TXD
+#define BOARD_UART_PIN_RX (11) // PF.11 : UART0_RXD
+#define BOARD_LED0_PORT (0x0C)
+#define BOARD_LED0_PIN (2) // PC.2 = User LED
+#define BOARD_LED0_FUNCTION (4) // GPIO multiplexed as function 4 on PC.2
+#define BOARD_LED0_GPIO_PORT (6)
+#define BOARD_LED0_GPIO_PIN (1) // PC.2 = GPIO 6[1]
void board_init(void)
{
SystemInit();
CGU_Init();
- SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/CFG_TICKS_PER_SECOND ); /* 1 ms Timer */
-
- //------------- USB Bus power HOST ONLY-------------//
-// scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer
-//
-// scu_pinmux(0x2, 6, MD_PUP | MD_EZI, FUNC4); // P2_6 is configured as GPIO5[6] for USB1_PWR_EN
-// GPIO_SetDir (5, BIT_(6), 1); // GPIO5[6] is output
-// GPIO_SetValue (5, BIT_(6)); // GPIO5[6] output high
+
+ /* Setup the systick time for 1ms ticks */
+ SysTick_Config(CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE) / CFG_TICKS_PER_SECOND);
+
+ /* Configure LED0 as GPIO */
+ scu_pinmux(BOARD_LED0_PORT, BOARD_LED0_PIN, MD_PDN, BOARD_LED0_FUNCTION);
+ GPIO_SetDir(BOARD_LED0_GPIO_PORT, (1 << BOARD_LED0_GPIO_PIN), 1);
+
+ /* Configure TRACE pins */
+ scu_pinmux(0xF, 4, MD_PDN, 0x2); /* PF_4 = TRACECLK */
+ scu_pinmux(0x7, 4, MD_PDN, 0x5); /* P7_4 = TRACEDATA[0] */
+ scu_pinmux(0x7, 5, MD_PDN, 0x5); /* P7_5 = TRACEDATA[1] */
+ scu_pinmux(0x7, 6, MD_PDN, 0x5); /* P7_6 = TRACEDATA[2] */
+ scu_pinmux(0x7, 7, MD_PDN, 0x5); /* P7_7 = TRACEDATA[3] */
- //------------- Led Init -------------//
- for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
- {
- scu_pinmux(leds[i].port, leds[i].pin, MD_PUP|MD_EZI|MD_ZI, FUNC4);
- GPIO_SetDir(leds[i].port, BIT_(leds[i].pin), 1); // output
- }
+ /* Init I2C @ 400kHz */
+ I2C_Init(LPC_I2C0, 400000);
+ I2C_Cmd(LPC_I2C0, ENABLE);
#if CFG_UART_ENABLE
//------------- UART init -------------//
- scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_TX, MD_PDN , FUNC1);
- scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_RX, MD_PLN|MD_EZI|MD_ZI, FUNC1);
+ scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_TX, MD_PDN , FUNC1);
+ scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_RX, MD_PLN|MD_EZI|MD_ZI, FUNC1);
- UART_CFG_Type UARTConfigStruct;
+ UART_CFG_Type UARTConfigStruct;
UART_ConfigStructInit(&UARTConfigStruct);
- UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE;
- UARTConfigStruct.Clock_Speed = 0;
+ UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE;
+ UARTConfigStruct.Clock_Speed = 0;
- UART_Init(BOARD_UART_PORT, &UARTConfigStruct);
- UART_TxCmd(BOARD_UART_PORT, ENABLE); // Enable UART Transmit
+ UART_Init(BOARD_UART_PORT, &UARTConfigStruct);
+ UART_TxCmd(BOARD_UART_PORT, ENABLE); // Enable UART Transmit
#endif
+#if CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
+#endif
}
//--------------------------------------------------------------------+
@@ -93,15 +97,14 @@ void board_init(void)
//--------------------------------------------------------------------+
void board_leds(uint32_t on_mask, uint32_t off_mask)
{
- for (uint32_t i=0; i<BOARD_MAX_LEDS; i++)
+ if (on_mask & 0x01)
+ {
+ LPC_GPIO_PORT->SET[BOARD_LED0_GPIO_PORT] = (1 << BOARD_LED0_GPIO_PIN);
+ }
+
+ if (off_mask & 0x01)
{
- if ( on_mask & BIT_(i))
- {
- GPIO_SetValue(leds[i].port, BIT_(leds[i].pin));
- }else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask
- {
- GPIO_ClearValue(leds[i].port, BIT_(leds[i].pin));
- }
+ LPC_GPIO_PORT->CLR[BOARD_LED0_GPIO_PORT] = (1 << BOARD_LED0_GPIO_PIN);
}
}
diff --git a/demos/bsp/boards/microbuilder/board_lpc4357usb.h b/demos/bsp/boards/microbuilder/board_lpc4357usb.h
index ac051a409..9a67d4a00 100644
--- a/demos/bsp/boards/microbuilder/board_lpc4357usb.h
+++ b/demos/bsp/boards/microbuilder/board_lpc4357usb.h
@@ -26,16 +26,22 @@
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This file is part of the tinyusb stack.
*/
/**************************************************************************/
+/** \file
+ * \brief TBD
+ *
+ * \note TBD
+ */
+
/** \ingroup TBD
* \defgroup TBD
* \brief TBD
@@ -55,8 +61,9 @@
#include "lpc43xx_cgu.h"
#include "lpc43xx_gpio.h"
#include "lpc43xx_uart.h"
+#include "lpc43xx_i2c.h"
-#define CFG_PRINTF_TARGET PRINTF_TARGET_DEBUG_CONSOLE // PRINTF_TARGET_UART
+#define CFG_PRINTF_TARGET PRINTF_TARGET_UART
#ifdef __cplusplus
}