2416 USB Device 初始化问题
如题,最近在调试S3C2416 USB Device和PC机通讯的程序。我将2416 的USBD 作为一个模块加载到Linux内核中,然后等大约3s,板子就自动重启了,在这个过程中,PC机也能发现未知设备,但是PID和VID都是0x0。
不知道啥原因,求教各位大虾:(不太清楚我配置USBD的流程是否正确,开发板是TQ2416,和技术已经沟通过多次,无果)
先贴代码:
*S3C2416_PWRCFG|=S3C2416_PWRCFG_USBPHY;
*S3C2416_URSTCON|= (S3C2416_URSTCON_FUNCRST|S3C2416_URSTCON_PHYRST);
delay_us(10);
*S3C2416_URSTCON &= ~(S3C2416_URSTCON_FUNCRST|S3C2416_URSTCON_PHYRST);
*S3C2416_PHYPWR=0x30;
*S3C2416_PHYCTRL &= ~(S3C2416_PHYCTRL_CLKSEL|S3C2416_PHYCTRL_DSPORT);
*S3C2416_PHYCTRL |= (S3C2416_PHYCTRL_EXTCLK|S3C2416_PHYCTRL_PLLSEL);
*S3C2416_UCLKCON|= (S3C2416_UCLKCON_DETECT_VBUS|S3C2416_UCLKCON_FUNC_CLKEN);
*USB_SCR=0;
*USB_IR&=~(0xF<<0);
*USB_MPR&=(0x7FF<<0);
*USB_MPR|=(1<<3);
//EP1 端口配置
*USB_ECR=0xC0;
*USB_IR&=~(0xF<<0);
*USB_IR|=(1<<0);
*USB_MPR&=(0x7FF<<0);
*USB_MPR|=(1<<5);
*USB_ECR|=(1<<6);
*USB_EDR &= ~(1<<1); /*In mode*/
*USB_DCR &= ~(1<<0);
//EP2 端口配置
*USB_IR&=~(0xF<<0);
*USB_IR&=~(1<<1);
*USB_MPR&=(0x7FF<<0);
*USB_MPR|=(1<<6);
*USB_EDR &= ~(1<<2); /*Out mode*/
//EP3 端口配置
*USB_IR&=~(0xF<<0);
*USB_IR&=~(0x3<<1);
*USB_MPR&=(0x7FF<<0);
*USB_MPR|=(1<<5);
*USB_EDR &= ~(1<<3); /*In mode*/
//EP4 端口配置
*USB_IR&=~(0xF<<0);
*USB_IR&=~(1<<2);
*USB_MPR&=(0x7FF<<0);
*USB_MPR|=(1<<6);
*USB_EDR |= (1<<4); /*Out mode*/
*USB_EIER |= (0x1F<<0);
页:
[1]