📄 init.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 + -