S3C2440 WINCE6将USB DEVICE改成USB HOST,实现两个USB HOST
S3C2440一般默认的是一个USB DEVICE,一个USB HOST,即一个主口,一个从口,先来看看USB Device与USB Host相关知识。
USB Host:
最底层就是USB Host控制器了,上层是USB Host Controller Driver,该驱动负责和硬件通讯来传输数据,在WinCE中支持UHCI,OHCI和EHCI。Host Core Driver & Hub Driver是独立于硬件的USB协议栈,支持USB Host协议及USB Hub功能。最上层就是USB Host Class driver是USB Host的应用协议,目前在WinCE中,支持RNDIS,Print,Mass Storage和HID四种应用。
USB Device:
最底层是USB Device控制器,上层是USB Device Driver负责和硬件通讯。Device Core Driver是USB Device的协议栈。最上层是USB Device的应用层,目前在WinCE中支持RNDIS,Serial和Mass Storage三种应用。
在Catalog Items View中,
USB Function Driver:用于支持USB Device驱动。
USB Host Support:用于支持USB Host控制器驱动。
要将USB Device改成USB Host,硬件与软件都需要修改。
硬件方面,可参考原理图,好像是要改两个电阻;
软件方面:先要将USB Function驱动去掉,这个可set BSP_NOUSBFN=1即可,然后再修改MISCCR寄存器值,MISCCR [3]SEL_USBPAD:USB1 Host/Device select register. 0=Use USB1 as Device,1=USE USB1 as Host. 即将MISCCR第3位改成1,这个在初始化函数里修改,增加一行代码s2440IOP->MISCCR |= (1<<3);
---------------------------------------------------------------------
尊重他人劳动成果,转载请标明出处http://www.cnblogs.com/feishanm