wince5.0系统起来后无法自动同步,必须拔插USB线才能同步~~~~~~~~
我现在想让系统起来后自动实现同步(跳出同步框),不需要再拔插了。。。
哪位大哥高见下~~~我想应该是USB配置问题,难道是一个跳变?
看看你的USB驱动,是否默认情况下未开启USB功能,而是在当检测到有USB线插入的时候才开启的USB功能?如果是这样的话在INIT阶段就开启USB功能,或者INIT阶段就检测是否有线插入,有的话就开启。
谢谢前辈,小弟实在愚昧~“看看你的USB驱动,是否默认情况下未开启USB功能”能否具体点~~USB驱动太庞大了~我们我板子上用的是EINT20 但是就是找不到GPG12~
感觉问题在USB上,你可以测试一下你的系统是否支持冷启动识别:
在插入U盘,冷启动情况下看看能否在进入系统后找到U盘。
如果U盘也只是开机后热插拔才能使用的话,你说的问题就不奇怪了。
你的USB是OTG的吗?会不会是驱动中的连接状态有问题。
引用: 引用 4 楼 sunrain_hjb 的回复:
你的USB是OTG的吗?会不会是驱动中的连接状态有问题。
是OTG 2.0的
我的是OTC 2.0的从USB口~这个封装是小的USB封装,接U盘需要转接头~呵呵~我没转接头,
我现在用它连USB线~实现与PC同步
引用: 引用 4 楼 sunrain_hjb 的回复:
你的USB是OTG的吗?会不会是驱动中的连接状态有问题。
连接状态 能具体点吗?
如1楼所说的,
应该是PLUG_IST中,对USB检测问题。
可能你的USB在驱动起来以后,需要等待PLUG_IST检测到USB插入,中断引脚跳动时,才开始enable USB功能。
而对于,开机就插着USB的情况,USB driver起来后,没有检测到这个跳动,所以没有打开usb 功能。
办法就是,在Init的时候检测USB如果已经插入,让enable USB功能。
引用: 引用楼主 lightsoure 的回复:
wince5.0系统起来后无法自动同步,必须拔插USB线才能同步~~~~~~~~
我现在想让系统起来后自动实现同步(跳出同步框),不需要再拔插了。。。
哪位大哥高见下~~~我想应该是USB配置问题,难道是一个跳变?
我以前用YCKJ的板子也有这个问题,必须热插拨才可以。
引用: 引用1楼 Veabol的回复:
看看你的USB驱动,是否默认情况下未开启USB功能,而是在当检测到有USB线插入的时候才开启的USB功能?如果是这样的话在INIT阶段就开启 USB功能,或者INIT阶段就检测是否有线插入,有的话就开启。
引用: 引用8楼 skynet000的回复:
如1楼所说的,
应该是PLUG_IST中,对USB检测问题。
可能你的USB在驱动起来以后,需要等待PLUG_IST检测到USB插入,中断引脚跳动时,才开始enable USB功能。
而对于,开机就插着USB的情况,USB driver起来后,没有检测到这个跳动,所以没有打开usb 功能。
办法就是,在Init的时候检测USB如果已经插入,让enable USB功能。
这两位高人说的都是真理,经典呀!
2440wince5.0 OAL\INIT.c中GPIO:
s2440IOP->GPGDAT = 0x1004;
s2440IOP->GPGUP = 0xFEFF;
s2440IOP->GPGCON = 0x0180FD9A;
s2440IOP->GPGDAT |= 0x1<<2;
s2440IOP->GPGDAT |= 0x3<<6;
s2440IOP->GPGDAT |= 0x1<<12;
s2440IOP->GPGUP |= 0x1<<12;
s2440IOP->GPGCON = (s2440IOP->GPGCON & ~(0x3<<24)) | 0x1<<24;
根据我的电路,是用GPG12这个I/O口来检测USB的。默认为高
我把它改为低就可以实现系统起来后自动同步了;那么又有2个问题:
1,按照我的原理图GPG12这个I/O脚是作为拉高D+用的,设置成0按照道理应该是 不可能同步才对。。奇怪了,难道在哪里又拉高了这个脚?
2,我不明白USB驱动中是怎样检测USB是否插上的~前辈能否贴个代码列举下?
当有USB插入的时候USB接口的VBUS是高电平,没有USB插入的时候VBUS是低电平,根据这个特性来判断。
也就是说在哪里检测这个I/O状态,从而使能USB?可否列举下~呵呵
引用: 引用 11 楼 veabol 的回复:
当有USB插入的时候USB接口的VBUS是高电平,没有USB插入的时候VBUS是低电平,根据这个特性来判断。
但是我的电路上VBUS是没接任何东西的,而且我的电路上的主USB HOST的VBUS是接+5V的,应该不同电路把
引用: 引用 13 楼 lightsoure 的回复:
引用 11 楼 veabol 的回复:当有USB插入的时候USB接口的VBUS是高电平,没有USB插入的时候VBUS是低电平,根据这个特性来判断。
但是我的电路上VBUS是没接任何东西的,而且我的电路上的主USB HOST的VBUS是接+5V的,应该不同电路把
电路是不同,但是你可以按照这个思路去处理
引用: 引用 14 楼 gooogleman 的回复:
我的有时候需要插拔,有时候不需要,呵呵。
这个有可能是硬件上的阻抗问题哦。。
D+脚....
PC检测到 复位信号才会开始枚举!
你在开机时如果接着USB的话,由于你的 一些设置(多是硬件) 使得D+脚没有复位信号 所以PC不枚举
顺便问下!LZ的头像是不是 "抱对"
引用: 引用 17 楼 trueman_onlyme 的回复:
D+脚....
PC检测到 复位信号才会开始枚举!
你在开机时如果接着USB的话,由于你的? 一些设置(多是硬件) 使得D+脚没有复位信号 所以PC不枚举
1,我原先的驱动中D+是用GPG12这个I/O控制的,并设置为高的,但是出现了我开始问的“连上USB后开启CE系统,不能自动同步”;后来设置为低后,就能实现自动同步了。。。这个让我觉得很奇怪,D+不是要上拉才对哦。怎么拉低是对的呢??这个一直迷惑
是哪里又把它拉高了????