Merge branch 'master' of github.com:microbuilder/tinyusb

Conflicts:
	demos/bsp/boards/microbuilder/board_lpc4357usb.c
	demos/bsp/boards/microbuilder/board_lpc4357usb.h
This commit is contained in:
hathach 2013-09-08 00:09:33 +07:00
commit 1646fb2887
2 changed files with 56 additions and 46 deletions

View File

@ -26,10 +26,10 @@
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 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. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This file is part of the tinyusb stack. This file is part of the tinyusb stack.
@ -40,52 +40,56 @@
#if BOARD == BOARD_LPC4357USB #if BOARD == BOARD_LPC4357USB
#define BOARD_MAX_LEDS 1 #define BOARD_UART_PORT (LPC_USART0)
const static struct { #define BOARD_UART_PIN_PORT (0x0F)
uint8_t port; #define BOARD_UART_PIN_TX (10) // PF.10 : UART0_TXD
uint8_t pin; #define BOARD_UART_PIN_RX (11) // PF.11 : UART0_RXD
}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_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) void board_init(void)
{ {
SystemInit(); SystemInit();
CGU_Init(); CGU_Init();
SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/CFG_TICKS_PER_SECOND ); /* 1 ms Timer */
/* 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] */
//------------- USB Bus power HOST ONLY-------------// /* Init I2C @ 400kHz */
// scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer I2C_Init(LPC_I2C0, 400000);
// I2C_Cmd(LPC_I2C0, ENABLE);
// 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
//------------- 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
}
#if CFG_UART_ENABLE #if CFG_UART_ENABLE
//------------- UART init -------------// //------------- UART init -------------//
scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_TX, MD_PDN , 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); 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); UART_ConfigStructInit(&UARTConfigStruct);
UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE; UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE;
UARTConfigStruct.Clock_Speed = 0; UARTConfigStruct.Clock_Speed = 0;
UART_Init(BOARD_UART_PORT, &UARTConfigStruct); UART_Init(BOARD_UART_PORT, &UARTConfigStruct);
UART_TxCmd(BOARD_UART_PORT, ENABLE); // Enable UART Transmit UART_TxCmd(BOARD_UART_PORT, ENABLE); // Enable UART Transmit
#endif #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) 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)
{ {
if ( on_mask & BIT_(i)) LPC_GPIO_PORT->SET[BOARD_LED0_GPIO_PORT] = (1 << BOARD_LED0_GPIO_PIN);
{ }
GPIO_SetValue(leds[i].port, BIT_(leds[i].pin));
}else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask if (off_mask & 0x01)
{ {
GPIO_ClearValue(leds[i].port, BIT_(leds[i].pin)); LPC_GPIO_PORT->CLR[BOARD_LED0_GPIO_PORT] = (1 << BOARD_LED0_GPIO_PIN);
}
} }
} }

View File

@ -26,16 +26,22 @@
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 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. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This file is part of the tinyusb stack. This file is part of the tinyusb stack.
*/ */
/**************************************************************************/ /**************************************************************************/
/** \file
* \brief TBD
*
* \note TBD
*/
/** \ingroup TBD /** \ingroup TBD
* \defgroup TBD * \defgroup TBD
* \brief TBD * \brief TBD
@ -55,8 +61,9 @@
#include "lpc43xx_cgu.h" #include "lpc43xx_cgu.h"
#include "lpc43xx_gpio.h" #include "lpc43xx_gpio.h"
#include "lpc43xx_uart.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 #ifdef __cplusplus
} }