在设备管理器里看没有任何不正常.但是却不能用

[复制链接]
9069|36
computer00 发表于 2007-10-18 21:02 | 显示全部楼层

当然可以完全一样了,windows会自动管理,

难道还不能插两个同样的U盘了?USB可不会这么SB的...
 楼主| lovec51 发表于 2007-10-18 21:04 | 显示全部楼层

驱动程序详细信息对比

vongy 发表于 2007-10-18 21:12 | 显示全部楼层

还是把你的固件发上来大家会比较清楚

当然如果这个只是练习的话:-)
 楼主| lovec51 发表于 2007-10-18 21:13 | 显示全部楼层

端点2怎么使能?

void&nbsp;set_endpoint_enable(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//端点使能<br />{<br />&nbsp;write_usb_command(Set_Endpoint_Enable);<br />&nbsp;write_a_usb_data(0x01);<br />}<br />这样了还不行?<br />还要专门使能端点2?<br />如果端点2没使能灯也不亮??
computer00 发表于 2007-10-18 21:19 | 显示全部楼层

我看你的端点描述符,0x81和0x01,明明是端点1啊,

你怎么弄到端点2去呢?将端点1使能试试。
 楼主| lovec51 发表于 2007-10-18 21:51 | 显示全部楼层

我有对端点2进行描述啊.端点1太慢了,PC程序没用它

白色框的是配制描述符和接口描述符,绿色框的是端点1描述符,红色框的是端点2描述符.都有啊!
computer00 发表于 2007-10-18 22:04 | 显示全部楼层

那就不清楚了,也许你的驱动程序不支持端点2?我没用过这

不清楚。
vongy 发表于 2007-10-18 22:10 | 显示全部楼层

端点2不是INTERRUPT

07&nbsp;05&nbsp;82&nbsp;02&nbsp;40&nbsp;00&nbsp;0A<br />端点类型是02,为BULK传输<br />端点类型03才是中断传输
 楼主| lovec51 发表于 2007-10-18 22:37 | 显示全部楼层

贴代码大家看看

代码传上,在computer00&nbsp;的基础上改的.请computer00&nbsp;把我的代码在你的板子上跑一下看! <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/2007101822360678.rar'>https://bbs.21ic.com/upfiles/img/200710/2007101822360678.rar</a>
 楼主| lovec51 发表于 2007-10-18 22:38 | 显示全部楼层

这是philips的驱动

  <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/20071018223812910.rar'>https://bbs.21ic.com/upfiles/img/200710/20071018223812910.rar</a>
computer00 发表于 2007-10-19 01:42 | 显示全部楼层

好,看周末有没有空,有空就试试...

  
 楼主| lovec51 发表于 2007-10-19 12:33 | 显示全部楼层

昏,我把这个代码移植到我以前的好板子上,很好用.

看来硬件有问题,1电路有问题,但是这不太可能,两个扳子大同小异,只是一个是5V一个是3.3V.一个是ALE一个是A0.其他一样.<br />2&nbsp;D12有问题.
 楼主| lovec51 发表于 2007-10-19 13:22 | 显示全部楼层

现象排除了,但是问题还没有解决办法

原来把CPU频率降下来就好了,60M是极限,75M就不行了.<br />那么有什么办法可以让我的CPU跑在100M<br />而D12照常用呢?<br /><br />static&nbsp;void&nbsp;delayUSB(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;delayxblag;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(delayxblag=100;delayxblag&gt0;delayxblag--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{}<br />}<br /><br /><br />#define&nbsp;SendD12Cmd(value)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XBYTE[0x8009]&nbsp;=&nbsp;(value);delayUSB();<br />#define&nbsp;SendD12Data(value)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XBYTE[0x8008]&nbsp;=&nbsp;(value);delayUSB();<br />#define&nbsp;GetD12Data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XBYTE[0x8008]<br /><br />我的程序里有这一段,事实证明这样还不够.<br />但是我分析以上现象,PC能认识我的设备,说明我的D12能承受到100M的频率,并且能在100M的时候很好的把数据发上去,也能很好的响应PC的各种请求.但是可能相应快了一点,也许某一些请求之间要求有一定的时间间隔.<br /><br />当然还有一个解决办法,就是对D12操作的时候把时钟改慢一些.
computer00 发表于 2007-10-19 13:33 | 显示全部楼层

这样是直接由总线产生时序,或许太快了。

  
 楼主| lovec51 发表于 2007-10-19 16:26 | 显示全部楼层

如果说时序不对,为什么D12还能对PC的请求正确响应?

如果不能正确相应,为什么设备管理器能认识我的设备?
computer00 发表于 2007-10-19 16:36 | 显示全部楼层

这个问题我也搞不清楚,哎。那就将时钟放慢点吧,快了太

  
 楼主| lovec51 发表于 2007-10-19 17:44 | 显示全部楼层

USB慢点无所谓,但是我干其他事情不能这么慢啊.

还有一个问题,就是D12老是不停中断,并且中断寄存器是0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部