hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1400回复:4

read10读海量存储设备(U盘)为什么会数据丢失?

楼主#
更多 发布于:2004-03-23 10:32
单片机读写U盘程序,在开发包上已经通过了。但是做实际电路的时候,发现read10命令会丢失一些数据。
实际情况如下:
例如 待读fat区的数据如下:FFFF,0001,FFF1,FFF2,0002,0FFF,FFFB,FFFF,0003.......
实际读上来的数据会是,括号中的数据会丢失
(FFFF),0001,(FFF1),FFF2,0002,(0FFF),FFFB,FFFF,0003........

也就是说,如果数据的F在三个以上,就可能会有数据丢失,如果这样的数据连续出现两个以上,那么第一个数据会丢失。

不知各位大侠遇到过类似情况没有。或者给点调试的建议吧。
谢了先。
dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-24 13:47
我遇到过类似的问题.
我的总线宽度为16位,因为采用飞线,所以信号不稳定,主要是出现毛刺等,似乎有规律而又没有明显的规律,当初也百思不得其解,后来重焊一线路板问题解决.
如果你的数据总线宽度为16位,建议你焊一线路板试试.
www.dragon-2008.com 欢迎交流
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-24 15:21
大哥,你真是神了。
我用的USB控制芯片是ISP1362,正是16位的总线。
当初为了适应多种单片机,只作了USB芯片周围的电路。然后使用
飞线来连接各种单片机的控制线、数据线和地址线。

但是我仍然有一些疑问。
这样看来,我的问题应该出现在单片机读取USB控制芯片buffer的情况下。但是我曾经直接向buffer中写数据,然后就读取buffer。发现没有出现这种错误。这种错误只会出现在read10命令读取U盘数据后。

为什么我的write10命令能够正常工作呢?我可以使用write10命令创建目录和文件名,而且这里面的FFFF不会丢失。



dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-24 16:04
建议焊板子吧,我用的也是ISP1362,不过我不用单片机,而是DSP.
还有连线不要太长了,为此我可受了一周的折磨,脑袋都想破了,最后得出结论“IC出错”!
www.dragon-2008.com 欢迎交流
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-24 16:57
原来大哥也是用1362,以后多多指教。

我刚刚测试了一下。正是单片机读取buffer有错。也就是read_atl()出错,飞线的原因。

但是写buffer  write_atl()没有错误。

还有问一下大侠的传输速度是多少,我的大约为10kbyte左右。有没有提速的方法。我现在用的是arm7。
游客

返回顶部