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. 即将MISCCR3位改成1,这个在初始化函数里修改,增加一行代码s2440IOP->MISCCR |= (1<<3);

 

---------------------------------------------------------------------

尊重他人劳动成果,转载请标明出处http://www.cnblogs.com/feishanm 

 

 

 

posted @ 2010-08-21 12:32  mike_fei  阅读(1631)  评论(0编辑  收藏  举报