📄 usbci.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: USBCI.h
** Last modified Date: 2005-8-6
** Last Version: V1.0
** Descriptions: LPC214x USB 接口命令层头文件
** LPC214x USB: The Interface command layer header files
**------------------------------------------------------------------------------------------------------
** Created by: 郑明远 MingYuan Zheng
** Created date: 2005-8-6
** Version: V1.0
** Descriptions: 初始版本 The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#ifndef __USBCI_H__
#define __USBCI_H__
/** the Mask of USB Device Interrupt Register */
#define FRAME 0x00000001
#define EP_FAST 0x00000002
#define EP_SLOW 0x00000004
#define DEV_STAT 0x00000008
#define CCEMPTY 0x00000010
#define CDFULL 0x00000020
#define RxENDPKT 0x00000040
#define TxENDPKT 0x00000080
#define EP_RLZED 0x00000100
#define ERR_INT 0x00000200
/* Interrupt Bit Definitions for EPs and Device Status Interrupt */
#define FRAMEINTERRUPT 0x00000001
#define FASTINTERRUPT 0x00000002
#define SLOWINTERRUPT 0x00000004
#define DevStatusInterrupt 0x00000008
#define EP_RLZEDINT 0x00000100
/** the Mask of USB Device Interrupt Priority Register */
#define FRAME_PRIO 0x01
#define EP_FAST_PRIO 0x02
/* Interrupt Bit Definition for DMA Interrupt */
#define USB_DMA_INT 0x00000040
/** USB DMA interrupt */
#define USBDMA_EOT_INT 0x01
#define USBDMA_NDD_INT 0x02
#define USBDMA_ERR_INT 0x04
#define EP0MaxPacketSize 64
#define EP1MaxPacketSize 64
#define EP2MaxPacketSize 64
#define EP3MaxPacketSize 1023
#define EP4MaxPacketSize 64
#define EP5MaxPacketSize 64
#define EP6MaxPacketSize 1023
#define EP7MaxPacketSize 64
#define EP8MaxPacketSize 64
#define EP9MaxPacketSize 1023
#define EP10MaxPacketSize 64
#define EP11MaxPacketSize 64
#define EP12MaxPacketSize 1023
#define EP13MaxPacketSize 64
#define EP14MaxPacketSize 64
#define EP15MaxPacketSize 64
/******************************************************
the Register Mask of LPC214x USB
******************************************************/
// USB Interrupt Status Register Mask
#define USBINT_STATUS_BLOCKINTS 0x80000000
#define USBINT_STATUS_DMA 0x00000004
#define USBINT_STATUS_HP 0x00000002
#define USBINT_STATUS_LP 0x00000001
// Device Interrupt Status Register Mask
#define DEVINT_STATUS_ERRINT 0x00000200
#define DEVINT_STATUS_EPRLZED 0x00000100
#define DEVINT_STATUS_CDFULL 0x00000020
#define DEVINT_STATUS_DDEMPTY 0x00000010
#define DEVINT_STATUS_DEVSTAT 0x00000008
#define DEVINT_STATUS_EP_FAST 0x00000002
#define DEVINT_STATUS_EP_SLOW 0x00000004
// all endpoint register Mask
#define USB_ENDP00 0x00000001
#define USB_ENDP01 0x00000002
#define USB_ENDP02 0x00000004
#define USB_ENDP03 0x00000008
#define USB_ENDP04 0x00000010
#define USB_ENDP05 0x00000020
#define USB_ENDP06 0x00000040
#define USB_ENDP07 0x00000080
#define USB_ENDP08 0x00000100
#define USB_ENDP09 0x00000200
#define USB_ENDP10 0x00000400
#define USB_ENDP11 0x00000800
// Receive Packet length Register Mask
#define REC_PACKETSIZE_PKTRDY 0x00000800
#define REC_PACKETSIZE_DV 0x00000400
#define REC_PACKETSIZE_PKT_LNGTH 0x000003FF
// select endpoint mask
#define USB_STALL 0x02
#define USB_SETUPPACKET 0x04
/*********************************************************
Related command of LPC214x USB
**********************************************************/
/* Device Command */
#define USBCMD_SET_ADDRESS 0x00D00500
#define USBDAT_SET_ADDRESS 0x00000100
#define USBCMD_CONFIG_DEV 0x00D80500
#define USBDAT_CONFIG_DEV 0x00000100
#define USBCMD_SET_MODE 0x00F30500
#define USBDAT_SET_MODE 0x00000100
#define USBCMD_RDCURRENT_FRAME 0x00F50500
#define USBDAT_RDCURRENT_FRAME 0x00F50200
#define USBCMD_RDTEST_REG 0x00FD0500
#define USBDAT_RDTEST_REG 0x00FD0200
#define USBCMD_READ_TESTREG 0x00FD0500
#define USBDAT_READ_TESTREG 0x00FD0200
#define USBCMD_SET_DEVSTATUS 0x00FE0500
#define USBDAT_SET_DEVSTATUS 0x00000100
#define USBCMD_GET_DEVSTATUS 0x00FE0500
#define USBDAT_GET_DEVSTATUS 0x00FE0200
#define USBCMD_GET_ERRCODE 0x00FF0500
#define USBDAT_GET_ERRCODE 0x00FF0200
#define USBCMD_READ_ERRSTATUS 0x00FB0500
#define USBDAT_READ_ERRSTATUS 0x00FB0200
/* select endpoint */
#define USBCMD_SEL_ENDP 0x00000500
#define USBDAT_SEL_ENDP 0x00000200
/* select endpoint / clear interrupt */
#define USBCMD_SEL_CLRINT_ENDP 0x00000500
#define USBDAT_SEL_CLRINT_ENDP 0x00000200
/* set endpoint status */
#define USBCMD_SET_ENDP_STATUS 0x00000500
#define USBDAT_SET_ENDP_STATUS 0x00000100
/* cleare buffer */
#define USBCMD_CLEAR_BUFFER 0x00F20500
#define USBDAT_CLEAR_BUFFER 0x00F20200
/* validate buffer */
#define USBCMD_VALID_BUFFER 0x00FA0500
/*********************************************************
USBCI.c 相关函数
**********************************************************/
extern void USB_ConfigMaxPaketSize(INT8U endp, INT32U packetsize);
extern INT16U USB_ReadTestRegister(void);
extern void USB_SetAddressEnable(INT8U bAddress, INT8U bEnable);
extern void USB_SetEndpointEnable(INT8U bEnble);
extern void USB_SetMode(INT8U value);
extern void USB_SetDevStatus(INT8U value);
extern INT8U USB_GetDevStatus(void);
extern INT8U USB_SelectEndpoint(INT8U endp);
extern INT8U USB_SelectClrIntEndpoint(INT8U endp);
extern void USB_SetEndpointStatus(INT8U endp, INT8U bStalled);
extern INT8U USB_ClearBuffer(void);
extern void USB_ValidBuffer(void);
extern INT8U USB_ReadEndpoint(INT8U endp, INT8U len, INT8U *buf);
extern INT8U USB_WriteEndpoint(INT8U endp, INT8U len, INT8U *buf);
extern void reconnect_USB(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -