阅读:3552回复:12
SL811已经可行的原理图,一些体会
来这儿的大部分人都不需要这个东西了,但是共享一下也是好的。
我花了三个星期时间,从基本的读写到设备枚举成功到能读优盘扇区,有些心得,希望还要做SL811HS的同行不要走同样的弯路 1.晶振要工作正常。在这儿看到过贴子,说最好使用48M晶振,但是事实上48M晶振对PCB要求似乎比较高,我曾经用48M试过,无法工作,使用高质量的12M晶振即可。检验晶振是否正常的方法是启动硬件SOF,在插上设备后用示波器查看SOF包产生频率,要1ms一个,如果示波器足够好再看看每个SOF包的长度,与电脑做比较,要几乎相同才成。记住SOF包要接上设备后才有。 2.枚举过程时如果这一步有读数过程则需要写一个空包,否则读一个空包,这个在示例程序上是有的,我当初就认为可有可无,结果有些设备无法枚举成功。 3.DATA0/DATA1交换使用。因为我现在做的设备在对优盘读写时需要进行其它工作,所以我使用的中断里置标志位,主循环检测的方法,这种方法用双缓冲没有太大必要,就全用DATA0,结果老NAK。后来发现在数据读写时DATA0/DATA1还是必须交换使用。 4.以前好多人问过为什么读数据时优盘老NAK,除了上面第三条的原因外还有就是每次写CBW后需要一定延时。 [编辑 - 11/7/03 by zf_98412] |
|
|
沙发#
发布于:2008-07-08 15:30
![]() |
|
板凳#
发布于:2008-06-16 11:19
每次写要加Delay(150);也就是延时150MS,所以导致超慢,不加的话写的时候又老是要出错。郁闷啊
|
|
地板#
发布于:2008-06-16 11:18
是哦。我也被这个问题困扰。写的速度超慢的。现在才3KB/S.真是超级的慢啊。
|
|
地下室#
发布于:2008-03-31 10:17
同问,read10和write10的时候老是NAK,在CBW后延时好像不大起作用,哪位大大指教下吧。bow
|
|
5楼#
发布于:2008-03-29 12:11
![]() |
|
6楼#
发布于:2004-10-21 10:56
我正有一个问题不清楚。请做过主设备的人回答。 如果我做一个单片机读U盘的冬冬,我那个单片机上面都需要写些什么程序阿,是不是要写一个u盘的驱动进去呢。还要写些什么呢。请大拿们赐教 感激不尽
|
|
7楼#
发布于:2004-10-18 10:42
鼎鼎
|
|
|
8楼#
发布于:2003-11-08 16:43
每个CBW后的延时我发现主要是命令25-ReadCapacity,我不知道我的为什么100ms的延时都不认帐,返回NAK。其它的不怎么需要延时。
我现在还没有做写,所以不知道写有会有什么问题出现。读的速度大概是42k byte/s |
|
9楼#
发布于:2003-11-08 11:00
嗯,其实12M也是可以的,我们用的是48M
欢迎光临我的网站:http://eden.51.net主要是USB开发方面的一些信息 |
|
10楼#
发布于:2003-11-07 14:21
单片机读写U盘,能读出扇区数据,但写不上。
在写扇区数据的时候,第二个64B时间特长,可能是U盘NAK,因为NAK时我一直重发,其它7个64B包均正常,但数据丝毫没有写上,为什么? CBW 64B 64B 64B 64B 64B 64B 64B 64B SBW =1mS 1mS 35mS 1mS 1mS 1mS 1mS 1mS 1mS 1mS |
|
11楼#
发布于:2003-11-07 11:22
请问每次CBW后要多久的延时呢?
我用BUSBOND监视WINDOWS对优盘操作发现同一条命令其操作时间会有很大的不同,有些是几us,有些是几ms,有些达到3s。如何来判断要多久的延时呢? |
|
12楼#
发布于:2003-11-07 09:36
我现在也在考虑是否用SL811HS,主要是担心它的传输速率上不去,因为这个片子是8bit的数据端口,同ISP1161比起来,理论上速度要慢一倍啊!(1161是16bit的数据端口)想问一下,你现在测试的传输速率达到了多少呢?!
|
|