USB Host Lite downloaded from NXP web site. Untested! Compiled, dropped on MBED, booted up, and get the console message that it is initializing the stack. I however do not have the ability to connect a USB Memory device to test it.

Dependencies:   mbed

Committer:
mshoemaker
Date:
Wed Jan 13 01:29:30 2010 +0000
Revision:
0:0826fcc5d020

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mshoemaker 0:0826fcc5d020 1 /*
mshoemaker 0:0826fcc5d020 2 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 3 * NXP USB Host Stack
mshoemaker 0:0826fcc5d020 4 *
mshoemaker 0:0826fcc5d020 5 * (c) Copyright 2008, NXP SemiConductors
mshoemaker 0:0826fcc5d020 6 * (c) Copyright 2008, OnChip Technologies LLC
mshoemaker 0:0826fcc5d020 7 * All Rights Reserved
mshoemaker 0:0826fcc5d020 8 *
mshoemaker 0:0826fcc5d020 9 * www.nxp.com
mshoemaker 0:0826fcc5d020 10 * www.onchiptech.com
mshoemaker 0:0826fcc5d020 11 *
mshoemaker 0:0826fcc5d020 12 * File : usbhost_uart.c
mshoemaker 0:0826fcc5d020 13 * Programmer(s) : Prasad.K.R.S.V
mshoemaker 0:0826fcc5d020 14 * Version :
mshoemaker 0:0826fcc5d020 15 *
mshoemaker 0:0826fcc5d020 16 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 17 */
mshoemaker 0:0826fcc5d020 18
mshoemaker 0:0826fcc5d020 19 /*
mshoemaker 0:0826fcc5d020 20 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 21 * INCLUDE HEADER FILES
mshoemaker 0:0826fcc5d020 22 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 23 */
mshoemaker 0:0826fcc5d020 24
mshoemaker 0:0826fcc5d020 25 #include "usbhost_uart.h"
mshoemaker 0:0826fcc5d020 26
mshoemaker 0:0826fcc5d020 27 /*
mshoemaker 0:0826fcc5d020 28 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 29 * INITIALIZE UART
mshoemaker 0:0826fcc5d020 30 *
mshoemaker 0:0826fcc5d020 31 * Description: This function initializes UART port, setup pin select, clock, parity, stopbits, FIFO etc
mshoemaker 0:0826fcc5d020 32 *
mshoemaker 0:0826fcc5d020 33 * Arguments : baud_rate UART baud rate (115200)
mshoemaker 0:0826fcc5d020 34 *
mshoemaker 0:0826fcc5d020 35 * Returns : None
mshoemaker 0:0826fcc5d020 36 *
mshoemaker 0:0826fcc5d020 37 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 38 */
mshoemaker 0:0826fcc5d020 39
mshoemaker 0:0826fcc5d020 40 void UART_Init(USB_INT32U baudrate)
mshoemaker 0:0826fcc5d020 41 {
mshoemaker 0:0826fcc5d020 42 USB_INT32U Fdiv;
mshoemaker 0:0826fcc5d020 43 USB_INT32U pclkdiv, pclk;
mshoemaker 0:0826fcc5d020 44 uint32_t SystemFrequency = SystemCoreClock;
mshoemaker 0:0826fcc5d020 45
mshoemaker 0:0826fcc5d020 46 LPC_PINCON->PINSEL0 |= 0x00000050; /* RxD0 and TxD0 */
mshoemaker 0:0826fcc5d020 47
mshoemaker 0:0826fcc5d020 48 LPC_UART0->LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
mshoemaker 0:0826fcc5d020 49 /* Bit 6~7 is for UART0 clock divider. */
mshoemaker 0:0826fcc5d020 50 pclkdiv = (LPC_SC->PCLKSEL0 >> 6) & 0x03;
mshoemaker 0:0826fcc5d020 51 switch ( pclkdiv )
mshoemaker 0:0826fcc5d020 52 {
mshoemaker 0:0826fcc5d020 53 case 0x00:
mshoemaker 0:0826fcc5d020 54 default:
mshoemaker 0:0826fcc5d020 55 pclk = SystemFrequency/4;
mshoemaker 0:0826fcc5d020 56 break;
mshoemaker 0:0826fcc5d020 57 case 0x01:
mshoemaker 0:0826fcc5d020 58 pclk = SystemFrequency;
mshoemaker 0:0826fcc5d020 59 break;
mshoemaker 0:0826fcc5d020 60 case 0x02:
mshoemaker 0:0826fcc5d020 61 pclk = SystemFrequency/2;
mshoemaker 0:0826fcc5d020 62 break;
mshoemaker 0:0826fcc5d020 63 case 0x03:
mshoemaker 0:0826fcc5d020 64 pclk = SystemFrequency/8;
mshoemaker 0:0826fcc5d020 65 break;
mshoemaker 0:0826fcc5d020 66 }
mshoemaker 0:0826fcc5d020 67 Fdiv = ( pclk / 16 ) / baudrate ; /*baud rate */
mshoemaker 0:0826fcc5d020 68
mshoemaker 0:0826fcc5d020 69 LPC_UART0->DLM = Fdiv / 256;
mshoemaker 0:0826fcc5d020 70 LPC_UART0->DLL = Fdiv % 256;
mshoemaker 0:0826fcc5d020 71 LPC_UART0->LCR = 0x03; /* DLAB = 0 */
mshoemaker 0:0826fcc5d020 72 LPC_UART0->FCR = 0x07; /* Enable and reset TX and RX FIFO. */
mshoemaker 0:0826fcc5d020 73 }
mshoemaker 0:0826fcc5d020 74
mshoemaker 0:0826fcc5d020 75 /*
mshoemaker 0:0826fcc5d020 76 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 77 * PRINT CHARECTER
mshoemaker 0:0826fcc5d020 78 *
mshoemaker 0:0826fcc5d020 79 * Description: This function is used to print a single charecter through UART1.
mshoemaker 0:0826fcc5d020 80 *
mshoemaker 0:0826fcc5d020 81 * Arguments : ch charecter to be printed
mshoemaker 0:0826fcc5d020 82 *
mshoemaker 0:0826fcc5d020 83 * Returns : None
mshoemaker 0:0826fcc5d020 84 *
mshoemaker 0:0826fcc5d020 85 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 86 */
mshoemaker 0:0826fcc5d020 87
mshoemaker 0:0826fcc5d020 88 void UART_PrintChar (USB_INT08U ch)
mshoemaker 0:0826fcc5d020 89 {
mshoemaker 0:0826fcc5d020 90
mshoemaker 0:0826fcc5d020 91 while (!(LPC_UART0->LSR & 0x20));
mshoemaker 0:0826fcc5d020 92 LPC_UART0->THR = ch;
mshoemaker 0:0826fcc5d020 93 }
mshoemaker 0:0826fcc5d020 94
mshoemaker 0:0826fcc5d020 95 /*
mshoemaker 0:0826fcc5d020 96 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 97 * PRINT STRING
mshoemaker 0:0826fcc5d020 98 *
mshoemaker 0:0826fcc5d020 99 * Description: This function is used to print a string
mshoemaker 0:0826fcc5d020 100 *
mshoemaker 0:0826fcc5d020 101 * Arguments : str Pointer to the string
mshoemaker 0:0826fcc5d020 102 *
mshoemaker 0:0826fcc5d020 103 * Returns : None
mshoemaker 0:0826fcc5d020 104 *
mshoemaker 0:0826fcc5d020 105 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 106 */
mshoemaker 0:0826fcc5d020 107
mshoemaker 0:0826fcc5d020 108 void UART_PrintStr (const USB_INT08U * str)
mshoemaker 0:0826fcc5d020 109 {
mshoemaker 0:0826fcc5d020 110
mshoemaker 0:0826fcc5d020 111 while ((*str) != 0) {
mshoemaker 0:0826fcc5d020 112 if (*str == '\n') {
mshoemaker 0:0826fcc5d020 113 UART_PrintChar(*str++);
mshoemaker 0:0826fcc5d020 114 UART_PrintChar('\r');
mshoemaker 0:0826fcc5d020 115 } else {
mshoemaker 0:0826fcc5d020 116 UART_PrintChar(*str++);
mshoemaker 0:0826fcc5d020 117 }
mshoemaker 0:0826fcc5d020 118 }
mshoemaker 0:0826fcc5d020 119 }
mshoemaker 0:0826fcc5d020 120
mshoemaker 0:0826fcc5d020 121 /*
mshoemaker 0:0826fcc5d020 122 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 123 * PRINT FORMATTED STRING
mshoemaker 0:0826fcc5d020 124 *
mshoemaker 0:0826fcc5d020 125 * Description: This function is used to print formatted string. This function takes variable length arguments
mshoemaker 0:0826fcc5d020 126 *
mshoemaker 0:0826fcc5d020 127 * Arguments : variable length arguments
mshoemaker 0:0826fcc5d020 128 *
mshoemaker 0:0826fcc5d020 129 * Returns : None
mshoemaker 0:0826fcc5d020 130 *
mshoemaker 0:0826fcc5d020 131 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 132 */
mshoemaker 0:0826fcc5d020 133
mshoemaker 0:0826fcc5d020 134 void UART_Printf (const USB_INT08U *format, ...)
mshoemaker 0:0826fcc5d020 135 {
mshoemaker 0:0826fcc5d020 136 static USB_INT08U buffer[40 + 1];
mshoemaker 0:0826fcc5d020 137 va_list vArgs;
mshoemaker 0:0826fcc5d020 138
mshoemaker 0:0826fcc5d020 139
mshoemaker 0:0826fcc5d020 140 va_start(vArgs, format);
mshoemaker 0:0826fcc5d020 141 vsprintf((char *)buffer, (char const *)format, vArgs);
mshoemaker 0:0826fcc5d020 142 va_end(vArgs);
mshoemaker 0:0826fcc5d020 143 UART_PrintStr((USB_INT08U*) buffer);
mshoemaker 0:0826fcc5d020 144 }