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

📄 init.h

📁 基于ARM的读U盘
💻 H
字号:
/****************************************************************************/
/*	constants																*/
/****************************************************************************/

/*
**		register init values
*/
//********************************************************************************
#define		InitVal_HcITLBufferLength		0x0400
#define		InitVal_HcATLBufferLength		0x0800


//**********************************************************************
#define		InitVal_HcInterruptDisable			0xFFFFFFFF		// 禁止所有的中断
#define		InitVal_HcHcInterruptStatus			0xFFFFFFFF		// 清所有中断状态标志位

//**********************************************************************
//#define		InitVal_HcInterruptEnable			0x80000060		// 使能帧号溢出中断和根集线器状态改变中断,同时使用主中断(MasterInterruptEnable)
#define		MasterInterruptEnable			1U 	//(31)
#define		RootHubStatusChange				1 	//(6)
#define		FrameNumberOverflow				1	//(5)
#define		UnrecoverableError				0	//(4)
#define		ResumeDetected					0	//(3)
#define		StartOfFrame					0	//(2)
#define		SchedulingOverrun				0	//(0)

#define		InitVal_HcInterruptEnable		( MasterInterruptEnable<<31 \
											| RootHubStatusChange<<6 \
											| FrameNumberOverflow<<5 \
											| UnrecoverableError<<4 \
											| ResumeDetected<<3 \
											| StartOfFrame<<2 \
											| SchedulingOverrun )
										

//*********************************************************************************
//#define		InitVal_HcHardwareConfiguration	0x1428			// 硬件配置寄存器值
#define		DownstreamPort15K				1	// (12)
#define		SuspendClkNotStop				0	// (11)
#define		AnalogOCEnable					1	// (10)
#define		DACKMode						0	// (8)
#define		EOTInputPolarity				0	// (7)
#define		DACKInputPolarity				0	// (6)
#define		DREQOutputPolarity				1	// (5)
#define		DataBusWidth					1	// (4~3)
#define		InterruptOutputPolarity			0	// (2)
#define		InterruptPinTrigger				0	// (1)
#define		InterruptPinEnable				0	// (0)

#define		InitVal_HcHardwareConfiguration	( DownstreamPort15K<<12 \
											| SuspendClkNotStop<<11 \
											| AnalogOCEnable<<10 \
											| DACKMode<<8 \
											| EOTInputPolarity<<7 \
											| DACKInputPolarity<<6 \
											| DREQOutputPolarity<<5 \
											| DataBusWidth<<3 \
											| InterruptOutputPolarity<<2 \
											| InterruptPinTrigger<<1 \
											| InterruptPinEnable)


//*********************************************************************************
//#define		InitVal_HcFmInterval				0x20002EDF
#define		FrameIntervalToggle				0		// (31)
#define		FSLargestDataPacket				0x2000	// (30~16)
#define		FrameInterval					0x2EDF	// (13~0)	0x2EDF=11999,一帧内有多少位

#define		InitVal_HcFmInterval			( FrameIntervalToggle<<31 \
											| FSLargestDataPacket<<16 \
											| FrameInterval )

//*********************************************************************************
//#define		InitVal_HcRhDescriptorA			0x20000202
#define 	PowerOntoPowerGoodTime			0x20				// [7:0](31~24):
#define 	NoOverCurrentProtection			0					// (12~12):
#define 	OverCurrentProtectionMode		0					// (11~11):
#define 	DeviceType						0					// (10~10):
#define 	NoPowerSwitching				1					// (9~9):
#define 	PowerSwitchingMode				0					// (8~8):
#define 	NumberDownstreamPorts			2					// [1:0](1~0):

#define		InitVal_HcRhDescriptorA			( PowerOntoPowerGoodTime<<24 \
											| NoOverCurrentProtection<<12 \
											| OverCurrentProtectionMode<<11 \
											| DeviceType<<10 \
											| NoPowerSwitching<<9 \
											| PowerSwitchingMode<<8 \
											| NumberDownstreamPorts)

//*********************************************************************************
//#define		InitVal_HcRhDescriptorB			0x00000001		//
#define		PortPowerControlMask			0					// (18~16)
#define		DeviceRemovable					0					// (2~0)

#define		InitVal_HcRhDescriptorB			( PortPowerControlMask<<16 \
											| DeviceRemovable )

//*********************************************************************************
//#define		InitVal_HcRhStatus				0x00080001
#define		ClearRemoteWakeupEnable			0 //(31)
#define		OverCurrentIndicatorChange		0 //(17)
#define		LocalPowerStatusChange			0//(16)
#define		DeviceRemoteWakeupEnable		0//(15)
#define		OverCurrentIndicator			0//(1)
#define		LocalPowerStatus				1 //(0)

#define		InitVal_HcRhStatus				( ClearRemoteWakeupEnable<<31 \
											| OverCurrentIndicatorChange<<18 \
											| LocalPowerStatusChange<<16 \
											| DeviceRemoteWakeupEnable<<15 \
											| OverCurrentIndicator<<1 \
											| LocalPowerStatus)
									
//***************************************************************************************
//#define		InitVal_HcRhPortStatus1			0x00000018
//#define		InitVal_HcRhPortStatus2			0x00000018
//#define		InitVal_HcRhPortStatus1			0x00000008		// 恢复集线器端点
//#define		InitVal_HcRhPortStatus2			0x00000008		// 恢复集线器端点

#define		PortResetStatusChange			0//(20)
#define		PortOverCurrentIndicatorChange	0//(19)
#define		PortSuspendStatusChange			0//(18)
#define		PortEnableStatusChange			0//(17)
#define		ConnectStatusChange				0//(16)
#define		LowSpeedDeviceAttached			0//(9)
#define		PortPowerStatus					0//(8)
#define		PortResetStatus					0//(4)
#define		PortOverCurrentIndicator		1//(3)
#define		PortSuspendStatus				0//(2)
#define		PortEnableStatus				0//(1)
#define		CurrentConnectStatus			0//(0)

#define		InitVal_HcRhPortStatus1			( PortResetStatusChange<<20 \
											| PortOverCurrentIndicatorChange<<19 \
											| PortSuspendStatusChange<<18 \
											| PortEnableStatusChange<<17 \
											| ConnectStatusChange<<16 \
											| LowSpeedDeviceAttached<<9 \
											| PortPowerStatus<<8 \
											| PortResetStatus<<4 \
											| PortOverCurrentIndicator<<3 \
											| PortSuspendStatus<<2 \
											| PortEnableStatus<<1 \
											| CurrentConnectStatus )
#define		InitVal_HcRhPortStatus2 		InitVal_HcRhPortStatus1


//********************************************************************************
//#define		InitVal_HcControl					0x00000600	/*  into USB RESET state	*/
#define		RemoteWakeupEnable				1	//(10)
#define		RemoteWakeupConnected			1	//(9)
#define		USBReset		0x0
#define		USBResume		0x1
#define		USBOperational	0x2
#define		USBSuspend		0x3
#define		HostControllerFunctionalState	USBReset	// (7~6)

#define		InitVal_HcControl				( RemoteWakeupEnable<<10 \
											| RemoteWakeupConnected<<9 \
											|HostControllerFunctionalState)

//********************************************************************************
//#define		InitVal_HcuPInterruptEnable			0x0013		// 使能同步帧、ATL、和运行寄存器中断
#define		ClkReadyEnable					0	//(6)
#define		HCSuspendedEnable				0	//(5)
#define		OPRInterruptEnable				1	//(4)
#define		EOTInterruptEnable				0	//(2)
#define		ATLInterruptEnable				0	//(1)
#define		SOFInterruptEnalbe				1	//(0)

#define		InitVal_HcuPInterruptEnable		( ClkReadyEnable<<6 \
											| HCSuspendedEnable<<5 \
											| OPRInterruptEnable<<4 \
											| EOTInterruptEnable<<2 \
											| ATLInterruptEnable<<1 \
											| SOFInterruptEnalbe )




/****************************************************************************/
/*	function prototypes														*/
/****************************************************************************/

void		USB_Host_Stack_Initialize( void );

⌨️ 快捷键说明

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