43 LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
49 LPC_SYSCON->SYSAHBCLKCTRL |= (1<<14);
53 LPC_IOCON->PIO0_3 |= 0x08;
54 LPC_IOCON->PIO0_3 &= ~0x10;
55 LPC_GPIO0->DIR &= ~0x0008;
59 LPC_IOCON->PIO0_6 &= 0x0;
60 LPC_GPIO0->DIR |= 0x0040;
61 LPC_GPIO0->DATA &= ~0x0040;
74 for ( i = 0; i < length; i++ );
89 val = (EPNum & 0x0F) << 1;
106 LPC_USB->CmdCode = cmd;
148 LPC_USB->CmdCode = cmd;
150 return (LPC_USB->CmdData);
165 LPC_USB->DevFIQSel = 0x01;
168 NVIC_EnableIRQ(USB_FIQn);
172 NVIC_EnableIRQ(USB_IRQn);
200 LPC_USB->DevIntClr = 0x000FFFFF;
394 LPC_USB->Ctrl = ((EPNum & 0x0F) << 2) |
CTRL_RD_EN;
399 cnt = LPC_USB->RxPLen;
400 }
while ((cnt &
PKT_DV) == 0);
403 for (n = 0; n < (cnt + 3) / 4; n++) {
410 if ((EPNum & 0x80) != 0x04) {
431 LPC_USB->Ctrl = ((EPNum & 0x0F) << 2) |
CTRL_WR_EN;
434 LPC_USB->TxPLen = cnt;
436 for (n = 0; n < (cnt + 3) / 4; n++) {
473 disr = LPC_USB->DevIntSt;
474 LPC_USB->DevIntClr = disr;
494 #if USB_SUSPEND_EVENT
520 if (disr & ERR_INT) {
521 WrCmd(CMD_RD_ERR_STAT);
528 if (disr & (0xFF<<1)) {
533 if ((disr>>1) & (1 << n)) {
568 disr = LPC_USB->DevIntSt;
569 LPC_USB->DevIntClr = disr;
589 #if USB_SUSPEND_EVENT
615 if (disr & ERR_INT) {
616 WrCmd(CMD_RD_ERR_STAT);
623 if (disr & (0xFF<<1)) {
628 if ((disr>>1) & (1 << n)) {
void USB_Configure(uint32_t cfg)
void USB_ResetEP(uint32_t EPNum)
void USB_EnableEP(uint32_t EPNum)
uint32_t USB_ReadEP(uint32_t EPNum, uint8_t *pData)
uint32_t EPAdr(uint32_t EPNum)
void WrCmdDat(uint32_t cmd, uint32_t val)
void USB_Suspend_Event(void)
void USB_ConfigEP(USB_ENDPOINT_DESCRIPTOR *pEPD)
void USB_Power_Event(uint32_t power)
void(*const USB_P_EP[USB_LOGIC_EP_NUM])(uint32_t event)
uint32_t RdCmdDat(uint32_t cmd)
void USB_DisableEP(uint32_t EPNum)
void USB_Resume_Event(void)
uint32_t USB_GetFrame(void)
void USB_SetAddress(uint32_t adr)
uint32_t USB_WriteEP(uint32_t EPNum, uint8_t *pData, uint32_t cnt)
void USBIOClkConfig(void)
void USB_ClearEPBuf(uint32_t EPNum)
void delay(uint32_t length)
void USB_Connect(uint32_t con)
void USB_IRQHandler(void)
void WrCmdEP(uint32_t EPNum, uint32_t cmd)
void USB_SetStallEP(uint32_t EPNum)
void USB_DirCtrlEP(uint32_t dir)
#define CMD_SEL_EP_CLRI(x)
void USB_WakeUpCfg(uint32_t cfg)
void USB_Reset_Event(void)
void USB_ClrStallEP(uint32_t EPNum)
#define CMD_SET_EP_STAT(x)
#define USB_GETSTATUS_REMOTE_WAKEUP
void USB_Error_Event(uint32_t error)
#define DAT_SEL_EP_CLRI(x)
uint16_t USB_DeviceStatus