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

📄 dc_chap9.h

📁 使用ISP1362芯片的USB_OTG参考设计源代码比较新的版本
💻 H
字号:
/*
**  WASABI-Hot! version 1.2c    (DeviceController sub-unit)
**
**
**      -- copyright (c) 2001-2004 by Philips Japan, Ltd. -- All rights reserved --
**
**
**      ** This code has been made to check/learn                          ** 
**      **                             the ISP1362/ISP1363 functionalities **
**      ** Release 06-Aug-2004                                             **
**
**     HIGASHIYAMA, Ken 
**      
**		Application Laboratory, Mobile and Connectivity
**      Semiconductors Div, Philips Japan Ltd.
**      ken.higashiyama@philips.com
**      +81-3-3740-5136 
**
**
*/

#include	"general.h"

#ifndef _DC_CHAP9_
#define _DC_CHAP9_


#define		PHILIPS_VID		0x04CC
#define		WASABI_PID		0x1A62






void dc_control_handler();

#define	XFER_DIRECTION		0x0080
#define	TYPE				0x0060
#define	RECIPIENT			0x001F

#define	MAX_PACKET_SIZE0	64

extern unsigned char bRequest;
extern unsigned short wValue, wIndex, wLength;
extern unsigned short dc_config_value, dc_alt_setting_value;

void Stall_handshake();
void start_transmit(unsigned short *table, unsigned short len );
void zero_packet();

extern void io_request( void );

void string_descriptor_init( void );

void overwrite_OTG_descriptor( unsigned char value );


/*		DESCRIPTOR TYPE		*/

#define	DEVICE			1
#define	CONFIGURATION	2
#define	STRING			3
#define	INTERFACE		4
#define	ENDPOINT		5
#define	OTG				9

//#define	MaxPacketSize	64

typedef struct _DEVICE_DESCRIPTOR {
	unsigned char		bLength;
	unsigned char		bDescriptorType;
	unsigned short	bcdUSB;
	unsigned char		bDeviceClass;
	unsigned char		bDeviceSubClass;
	unsigned char		bDeviceProtocol;
	unsigned char		bMaxPacketSize0;
	unsigned short	idVendor;
	unsigned short	idProduct;
	unsigned short	bcdDevice;
	unsigned char		iManufacturer;
	unsigned char		iProdcut;
	unsigned char		iSerialNumber;
	unsigned char		bNumConfigurations;
} DEVICE_DESCRIPTOR;

typedef struct _CONFIGURATION_DESCRIPTOR {
	unsigned char		bLength;
	unsigned char		bDescriptorType;
	unsigned short	wTotalLength;
	unsigned char		bNumInterfaces;
	unsigned char		bConfigurationValue;
	unsigned char		iConfiguration;
	unsigned char		bmAttributes;
	unsigned char		MaxPower;
} CONFIGURATION_DESCRIPTOR;

typedef struct _INTERFACE_DESCRIPTOR {
	unsigned char		bLength;
	unsigned char 	bDescriptorType;
	unsigned char		bInterfaceNumber;
	unsigned char		bAlternateSetting;
	unsigned char		bNumEndpoints;
	unsigned char		bInterfaceClass;
	unsigned char		bInterfaceSubClass;
	unsigned char		bInterfaceProtocol;
	unsigned char		Index;
} INTERFACE_DESCRIPTOR;

typedef struct _ENDPOINT_DESCRIPTOR {
	unsigned char		bLength;
	unsigned char		bDescriptorType;
	unsigned char		bEndpointAddress;
	unsigned char		bmAttributes;
	unsigned short		wMaxPacketSize;
	unsigned char		bInterval;
} ENDPOINT_DESCRIPTOR;

typedef	struct	_OTG_DESCRIPTOR	{
	unsigned char		bLength;
	unsigned char		bDescriptorType;
	unsigned char		bmAttributes;
} OTG_DESCRIPTOR;

typedef struct _STRING_LANGID {
	unsigned char		bLength;
	unsigned char		bDescriptorType;
	unsigned char		bString[2];
} STRING_LANGID;

typedef struct _STRING_DESCRIPTOR {
	unsigned char		bLength;
	unsigned char		bDescriptorType;
////
////
////	unsigned char		bString[32];
	unsigned char		*bString;
} STRING_DESCRIPTOR;

extern DEVICE_DESCRIPTOR	 		device_dscrptr;
extern CONFIGURATION_DESCRIPTOR	configuration_dscrptr;
extern INTERFACE_DESCRIPTOR		interface_dscrptr;
extern ENDPOINT_DESCRIPTOR			endpoint_dscrptr_10;
extern STRING_DESCRIPTOR			string_dscrptr_manufacturer, string_dscrptr_product, string_dscrptr_serialnumber;
extern STRING_LANGID				string_langid;
extern OTG_DESCRIPTOR				otg_dscrptr;

typedef struct _CONFIG_DESCRIPTOR_TABLE
{
	CONFIGURATION_DESCRIPTOR		uCdsc;
	INTERFACE_DESCRIPTOR			uIdsc_0;
	INTERFACE_DESCRIPTOR			uIdsc_1;
	ENDPOINT_DESCRIPTOR			uEdsc_1;
	ENDPOINT_DESCRIPTOR			uEdsc_2;
	ENDPOINT_DESCRIPTOR			uEdsc_3;
	ENDPOINT_DESCRIPTOR			uEdsc_4;
	OTG_DESCRIPTOR				uOdsc;
} CONFIG_DESCRIPTOR_TABLE;

extern CONFIG_DESCRIPTOR_TABLE	configuration_dscrptr_table;

extern unsigned short	wCount;
extern unsigned short	*pControlData;

//	Feature Selector
#define	DEVICE_REMOTE_WAKEUP	1
#define	ENDPOINT_STALL			0

#endif

⌨️ 快捷键说明

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