阅读:3191回复:33
200分求助51单片机开发u盘
用51单片机开发u盘时遇到困难,寻找用51单片机开发u盘并成功的兄弟给予解惑。
|
|
沙发#
发布于:2003-08-24 15:09
正在做这个项目的也可以讨论一下
|
|
板凳#
发布于:2003-08-24 21:21
连什么问题都不说解什么惑啊?
我倒是正有些经验 [编辑 - 8/24/03 by liweibh] [编辑 - 8/24/03 by liweibh] |
|
|
地板#
发布于:2003-08-25 20:50
具体问题也搞不清楚,给我感觉就是cpu速度问题。写的时候总是来不及处理系统发来的数据。不知道大侠是怎么处理的?
|
|
地下室#
发布于:2003-08-26 02:19
用双缓冲啊!
|
|
5楼#
发布于:2003-08-30 01:09
NewTech:
看来又得麻烦你了,如果你的方法可行,200分就归你了! 具体怎么实现的呢?我想问你用51单片机开发过u盘吗? 我想求证51单片机到底能不能作为u盘控制器?如果行的话 速度问题该如何解决。特别是写flash花的时间太长了! |
|
6楼#
发布于:2003-08-30 09:13
用51做U盘控制器没有问题,按照你的现象只要在中间FIFO进行缓冲就行,根据速度可以选择8K或更大的FIFO,这样可以有效的缓解你的问题(这里说的FIFO你可以用硬件实现,有很多FIFO芯片的),再者你应该考虑提高51的速度,换个速度快些的!
|
|
7楼#
发布于:2003-08-30 10:54
flytomoon:
怎么用啊,没见过。 读是没问题了,只是一写就超时! |
|
8楼#
发布于:2003-08-30 10:56
为什么还在自己开发呢?
u盘早已作烂了。 |
|
|
9楼#
发布于:2003-09-14 17:06
高手在哪呢?
|
|
10楼#
发布于:2003-09-16 15:59
应该没有问题的,我的U盘内核也是51,而且还要当Camera用呢。不过数据读写速度上面有些差距。
|
|
11楼#
发布于:2003-09-16 22:45
changbanpo:
能否留下你的联系方式,请教几个问题! |
|
12楼#
发布于:2003-09-17 12:28
NewTech: 其实做u盘,跟用什么usb控制器、cpu根本无关的! 首先开一个缓冲区,用两个循环的指针指向头尾,一个读一个写! 够512就写flash就行了! |
|
13楼#
发布于:2003-09-17 17:29
系统发过来的数据往往不止一个扇区,而是多个扇区,这时候要是把第一个扇区的内容写入flash的话,就会发生超时现象,我觉得还是和单片机速度有关!
|
|
14楼#
发布于:2003-09-18 23:01
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。
|
|
15楼#
发布于:2003-09-19 08:24
擦除是一Block的吧。如果这Block中有需要的内容,你还得保留这部分。这就是为什么需要一个缓冲区,或者称为过渡区。
|
|
|
16楼#
发布于:2003-09-21 14:15
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。 太奇怪了,我上次回答的怎么没了!重写把! 1、如果mcu太慢,就要开比较大的缓冲区,这个缓冲区是循环使用的! 2、接受cbw 3、找个新的block,然后够512byte就写,直到这个block结束 4、将旧的block未被刷新的数据搬过来 5、发送csw |
|
17楼#
发布于:2003-09-21 14:16
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。 太奇怪了,我上次回答的怎么没了!重写把! 1、如果mcu太慢,就要开比较大的缓冲区,这个缓冲区是循环使用的! 2、接受cbw 3、找个新的block,然后够512byte就写,直到这个block结束 4、将旧的block未被刷新的数据搬过来 5、擦除旧的block 6、发送csw |
|
18楼#
发布于:2003-09-21 20:10
这个缓冲区要多大,8k够吗?是指RAM缓冲区吧。我用的flash是每块16页。
|
|
19楼#
发布于:2003-09-21 20:13
擦除操作什么时候做?最多系统会发过来多大的数据,8个扇区吗?甚至更多。
|
|
上一页
下一页