chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3191回复:33

200分求助51单片机开发u盘

楼主#
更多 发布于:2003-08-23 12:52
用51单片机开发u盘时遇到困难,寻找用51单片机开发u盘并成功的兄弟给予解惑。
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-24 15:09
正在做这个项目的也可以讨论一下
liweibh
驱动牛犊
驱动牛犊
  • 注册日期2003-07-26
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-24 21:21
连什么问题都不说解什么惑啊?
我倒是正有些经验


[编辑 -  8/24/03 by  liweibh]

[编辑 -  8/24/03 by  liweibh]
大风 别的什么都没用,只要有希望,就什么都有。
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-25 20:50
具体问题也搞不清楚,给我感觉就是cpu速度问题。写的时候总是来不及处理系统发来的数据。不知道大侠是怎么处理的?
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-26 02:19
用双缓冲啊!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-30 01:09
NewTech:
看来又得麻烦你了,如果你的方法可行,200分就归你了!
具体怎么实现的呢?我想问你用51单片机开发过u盘吗?
我想求证51单片机到底能不能作为u盘控制器?如果行的话
速度问题该如何解决。特别是写flash花的时间太长了!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-30 09:13
用51做U盘控制器没有问题,按照你的现象只要在中间FIFO进行缓冲就行,根据速度可以选择8K或更大的FIFO,这样可以有效的缓解你的问题(这里说的FIFO你可以用硬件实现,有很多FIFO芯片的),再者你应该考虑提高51的速度,换个速度快些的!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-30 10:54
flytomoon:
怎么用啊,没见过。
读是没问题了,只是一写就超时!
jackzhang72
驱动小牛
驱动小牛
  • 注册日期2003-01-02
  • 最后登录2023-11-21
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2003-08-30 10:56
为什么还在自己开发呢?
u盘早已作烂了。
亿涛工作室 http://www.eetop.com.cn 中国电子顶级开发网--技术论坛 http://www.eetop.cn/cgi-bin/leoboard.cgi
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-09-14 17:06
高手在哪呢?
changbanpo
驱动牛犊
驱动牛犊
  • 注册日期2002-08-14
  • 最后登录2007-03-05
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-09-16 15:59
应该没有问题的,我的U盘内核也是51,而且还要当Camera用呢。不过数据读写速度上面有些差距。
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-09-16 22:45
changbanpo:
能否留下你的联系方式,请教几个问题!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-09-17 12:28
NewTech:
看来又得麻烦你了,如果你的方法可行,200分就归你了!
具体怎么实现的呢?我想问你用51单片机开发过u盘吗?
我想求证51单片机到底能不能作为u盘控制器?如果行的话
速度问题该如何解决。特别是写flash花的时间太长了!


其实做u盘,跟用什么usb控制器、cpu根本无关的!
首先开一个缓冲区,用两个循环的指针指向头尾,一个读一个写!
够512就写flash就行了!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-09-17 17:29
系统发过来的数据往往不止一个扇区,而是多个扇区,这时候要是把第一个扇区的内容写入flash的话,就会发生超时现象,我觉得还是和单片机速度有关!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-09-18 23:01
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。
sky412
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2013-03-07
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-09-19 08:24
擦除是一Block的吧。如果这Block中有需要的内容,你还得保留这部分。这就是为什么需要一个缓冲区,或者称为过渡区。
虽然我比较烦,但是我真不懂!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-09-21 14:15
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。


太奇怪了,我上次回答的怎么没了!重写把!
1、如果mcu太慢,就要开比较大的缓冲区,这个缓冲区是循环使用的!
2、接受cbw
3、找个新的block,然后够512byte就写,直到这个block结束
4、将旧的block未被刷新的数据搬过来
5、发送csw
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-09-21 14:16
闪存每个block有16page,不会来一page就写一page吧,而且每次都要先擦除,那样岂不是很麻烦。


太奇怪了,我上次回答的怎么没了!重写把!
1、如果mcu太慢,就要开比较大的缓冲区,这个缓冲区是循环使用的!
2、接受cbw
3、找个新的block,然后够512byte就写,直到这个block结束
4、将旧的block未被刷新的数据搬过来
5、擦除旧的block
6、发送csw
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-09-21 20:10
这个缓冲区要多大,8k够吗?是指RAM缓冲区吧。我用的flash是每块16页。
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-09-21 20:13
擦除操作什么时候做?最多系统会发过来多大的数据,8个扇区吗?甚至更多。
上一页
游客

返回顶部