⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mass_usb.h

📁 TELECHIPS MP3解决方案UMS实现源代码
💻 H
字号:
#ifndef __MASS_USB_H__
#define __MASS_USB_H__

#include "genlib.h"

// Power Managemnent Register(PWRMAN) (3F0081h)
#define PWRMAN_SUSPEND			0x01
#define PWRMAN_UC_RESUME		0x02
#define PWRMAN_USB_RESUME		0x04
#define PWRMAN_USB_RESET		0x08

// Interrupt Pending Register (INTREG) (3f0084h)
#define INTREG_EP0				0x01
#define INTREG_EP1IN			0x02
#define INTREG_EP1OUT			0x04
#define INTREG_EP2IN			0x08
#define INTREG_EP2OUT			0x10
#define INTREG_EP3IN			0x20
#define INTREG_EP3OUT			0x40
#define INTREG_RESUME			0x80

// ENDPOINT0 CSR REGISTER (EP0CSR) (3f008Ah or 3f008Bh)
#define EP0CSR_OUT_PKT_RDY		0x01
#define EP0CSR_IN_PKT_RDY		0x02
#define EP0CSR_SENT_STALL		0x04
#define EP0CSR_DATA_END			0x08
#define EP0CSR_FORCE_STALL		0x10
#define EP0CSR_SETUP_END		0x20
#define EP0CSR_CLR_OUT_PKT_RDY	0x40
#define EP0CSR_CLR_SETUP_END	0x80

// IN CONTROL STATUS REGISTER (INCSR) (3f008Ah)
#define INCSR_IN_PKT_RDY		0x01
#define INCSR_UNDER_RUN			0x02
#define INCSR_FORCE_STALL		0x04
#define INCSR_ISO				0x08
#define INCSR_INTPT_ENDP		0x10
#define INCSR_IN_PKT_RDY2		0x20
#define INCSR_FIFO_FLUSH		0x40
#define INCSR_CLR_DATA_TOGGLE	0x80

// OUT CONTROL STATUS REGISTER (OUTCSR) (3f008Bh)
#define OUTCSR_OUT_PKT_RDY		0x01
#define OUTCSR_OVERRUN			0x02
#define OUTCSR_SEND_STALL		0x04
#define OUTCSR_ISO				0x08
#define OUTCSR_FORCE_STALL		0x10
#define OUTCSR_DATA_ERR			0x20
#define OUTCSR_Reserved6		0x40
#define OUTCSR_Reserved7		0x80

// System Control Register (SYSCTRL) (3f009eh)
#ifndef SYSCTRL
#define SYSCTRL	(*(volatile unsigned char *) (IO_BASE+0x009e))
#endif

#define SYSCTRL_CLK			0x01
#define SYSCTRL_SYS_RST		0x02

/////////////////////////////////////////////////////////////////////////////

#define EP0_PACKET_SIZE				16
#define EP1_PACKET_SIZE				32
#define EP2_PACKET_SIZE				64
#define EP3_PACKET_SIZE				64

#define USBMASS_EP_RECV				2			// OUT	(PC -> TCC730)
#define USBMASS_EP_SEND				3			// IN	(TCC730 -> PC)

#define USBMASS_RECV_PACKET_SIZE	EP2_PACKET_SIZE
#define USBMASS_SEND_PACKET_SIZE	EP3_PACKET_SIZE

#define USBMASS_TIMEOUT_RECV		0x7fff
#define USBMASS_TIMEOUT_SEND		0x7fff

void	TCC730_USBMASS_ResetUSB		(void);
int		TCC730_USBMASS_ReadEP0		(void* lpBuffer);
int		TCC730_USBMASS_WriteEP0		(CONST_FAKE void** lpBuffer, int nCount);

unsigned TCC730_USBMASS_ReceiveBulkUsb(int nEndPoint, void* lpBuffer, unsigned nLen);
unsigned TCC730_USBMASS_TransmitBulkUsb(int nEndPoint, CONST_FAKE void* lpBuffer, unsigned nLen);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -