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

📄 hc_comm.h

📁 Dsp控制1362芯片做主机
💻 H
字号:
/****************************************************************************/
/* IO: DSP-ISP1362														*/
/****************************************************************************/
#define usb_00 port0000
#define usb_01 port0001
#define usb_02 port0002
#define usb_03 port0003

#define usb_wake port2000

ioport unsigned usb_00;
ioport unsigned usb_01;
ioport unsigned usb_02;
ioport unsigned usb_03;

ioport unsigned usb_wake;


/*  1362 registers  */

/*
**	1362 Hc register access commands
**	
**		Each name is given in this rule
**
**		  ComBB_XXXXX
**        ^^^          <----- "Com" : Name for RegisterCommands
**           ^^        <----- BB    : Register accessing data width
**              ^^^^^^ <----- XXXXX : Register name defined in datasheet
*/
			//	OHCI - HC control and status registers

#define		Com32_HcRevision					0x00
#define		Com32_HcControl						0x01
#define		Com32_HcCommandStatus				0x02
#define		Com32_HcInterruptStatus				0x03
#define		Com32_HcInterruptEnable				0x04
#define		Com32_HcInterruptDisable			0x05

			//	OHCI - HC frame counter registers

#define		Com32_HcFmInterval					0x0D
#define		Com32_HcFmRemaining					0x0E
#define		Com32_HcFmNumber					0x0F
#define		Com32_HcLSThreshold					0x11

			//	OHCI - HC root hub registers

#define		Com32_HcRhDescriptorA				0x12
#define		Com32_HcRhDescriptorB				0x13
#define		Com32_HcRhStatus					0x14
#define		Com32_HcRhPortStatus1				0x15
#define		Com32_HcRhPortStatus2				0x16

			//	1362/1362 - HC DMA and Interrupt control registers

#define		Com16_HcHardwareConfiguration		0x20
#define		Com16_HcDMAConfiguration			0x21
#define		Com16_HcTransferCounter				0x22
#define		Com16_HcuPInterrupt					0x24
#define		Com16_HcuPInterruptEnable			0x25

			//	1362/1362 - HC Miscellaneous registers

#define		Com16_HcChipID						0x27
#define		Com16_HcScratch						0x28
#define		Com16_HcSoftwareReset				0xA9

			//	1362 - HC Buffer RAM control registers

#define		Com16_HcBufferStatus				0x2C
#define		Com32_HcDirectAddressLength			0x32
#define		Com16_HcDirectAddressData			0x45

			//	1362 - ISO transfer registers

#define		Com16_HcISTLBufferSize				0x30
#define		Com16_HcISTL0BufferPort				0x40
#define		Com16_HcISTL1BufferPort				0x42
#define		Com16_HcISTLToggleRate				0x47

			//	1362 - Interrupt transfer registers
			
#define		Com16_HcINTLBufferSize				0x33
#define		Com16_HcINTLBufferPort				0x43
#define		Com16_HcINTLBlkSize					0x53
#define		Com32_HcINTLPTDDoneMap				0x17
#define		Com32_HcINTLPTDSkipMap				0x18
#define		Com32_HcINTLLastPTD					0x19
#define		Com16_HcINTLCurrentActiePTD			0x1A

			//	1362 - Aperiodic transfer registers

			
#define		Com16_HcATLBufferSize				0x34
#define		Com16_HcATLBufferPort				0x44
#define		Com16_HcATLBlkSize					0x54
#define		Com32_HcATLPTDDoneMap				0x1B
#define		Com32_HcATLPTDSkipMap				0x1C
#define		Com32_HcATLLastPTD					0x1D
#define		Com16_HcATLCurrentActiePTD			0x1E
#define		Com16_HcATLPTDDoneThresholdCount	0x51
#define		Com16_HcATLPTDDoneThresholdTimeOut	0x52


/****************************************************************************/
/*	constants																*/
/****************************************************************************/


#define		PTD_HEADER_SIZE						8
#define			DISABLE		0
#define			ENABLE		1

#define		DirectionPID_SETUP					0
#define		DirectionPID_OUT					1
#define		DirectionPID_IN						2
#define		NoDirection_Just_Hold				3

#define		SETUP								DirectionPID_SETUP
#define		OUT									DirectionPID_OUT
#define		IN									DirectionPID_IN
#define		HOLD								NoDirection_Just_Hold

typedef	struct	PTD_h_p		{
								unsigned short	ActualBytes;
								unsigned char	CompletionCode;
								unsigned char	Active;
								unsigned char	Toggle;
								unsigned short	MaxPacketSize;
								unsigned char	EndpointNumber;
								unsigned char	Last;
								unsigned char	Speed;
								unsigned short	TotalBytes;
								unsigned char	DirectionPID;
								unsigned char	Format;
								unsigned char	FunctionAddress;
								unsigned char	PollingRate;
								unsigned char	StartingFrame;
							}
							PTD_header_param;  
							 


extern void read_direct_access( unsigned short address, unsigned char *data, unsigned short length );
extern void write_direct_access( unsigned short address, unsigned char *data, unsigned short length );
extern void read_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length  );
extern void write_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length  );
extern void read_register_burst_int( unsigned short register_address, unsigned char *data, unsigned short length  );
extern void write_register_burst_int( unsigned short register_address, unsigned short *data, unsigned short length  );
extern unsigned long read_register32( unsigned short register_address );
extern void write_register32( unsigned short register_address, unsigned long value );
extern unsigned short read_register16( unsigned short register_address );
extern void write_register16( unsigned short register_address, unsigned short value );
extern void erase_all( void );
extern void memory_test( void );
extern void check_1362_connection();
extern void Hc_reset();
extern void set_regValue();
extern void buffer_setting();


⌨️ 快捷键说明

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