阅读:5851回复:24
今天我的优盘调试成功,谈谈感想
今天我的优盘调试成功,有点感想和大家分享
我选用avr系列的 atmega162单片机原因是速度快,有外部扩展接口 使用方便一些,1K RAM。 缺点是价格偏高,资料全是E文(头大的很,好在与其他avr机型差别不大)。usb是pdiusbd12,单片机时钟是d12输出8M,Flash是k9f5608,32M,这些搭配完全是为了速度。信我一句话千万别用51了(慢),协议scsi2,Bluk_only,别的协议都试过,不行。 有3点要注意: 1。中断用电平触发 2。Write10命令时由于D12是双缓冲所以要等128Byte全满才读(在此 处我是大费周折)。 3。用512Byte当缓存 好了。我的优盘速度非常快似乎比我买的还快,读、写、格式化一切正常。 有句话与大家共勉: 事物是由问题组成的,没有问题不能被解决 ---- 我 希望大家成功!!!!!!!!!!!!!!!!!! |
|
沙发#
发布于:2005-04-07 17:30
做USB驱动必须要单片机或开发卡吗?
它们起什么作用? 谢谢! |
|
|
板凳#
发布于:2005-04-08 09:33
当然,不然你驱动谁呀,
我叫它们目标板这样可能更清楚点 我做驱动直接用DDK这样一切都在你的掌握中,DriverStudio我想更象VB,学起来容易,用起来难,感觉不好(一家之言,只供参考) 驱动程序本身是为硬件服务的。 单片机系统只是硬件之一,不一定用到。 |
|
地板#
发布于:2005-04-08 09:41
一个USB移动磁盘包含一个单片机加一个Flash对吗?
我怎样知道我的移动磁盘的这些相关参数? 谢谢! |
|
|
地下室#
发布于:2005-04-08 12:46
当pc能够正确读到描述符后,pc是根据什么去匹配window2000的标准mass storage 驱动?自动装上驱动(microsoft提供的),谢谢
|
|
5楼#
发布于:2005-04-08 14:04
能否把SCSI协议部分原码共享,我正在研究协议
|
|
6楼#
发布于:2005-04-08 15:04
我的读取优盘有问题
sd_mod scsi_mod usbcore sl811.o usb_storage 等模块均insmod成功。插上优盘,提示是no partition table 但是在linux下面一起正常 不知哪里设置缺了?高手指点下啊,郁闷一下午了 |
|
7楼#
发布于:2005-04-08 15:45
为什么一定要写满128个才能读呢?如果我每次只读64个字节,那么是不是仍需要写满128个才能读对???
|
|
8楼#
发布于:2005-04-08 17:15
文件系统是按簇分配空间的,也就是说至少要写512Byte,
D12的双缓冲的第2缓冲有时读出不一定是64字节这样在写 页时,记数会混乱有时超出512,有时少于512,如果你硬 要这样处理的话,会增加难度,缓存不好设置,所以我用 每128字节读。 对于源码,现在我还在调试,对不起等等吧 |
|
9楼#
发布于:2005-04-08 17:21
系统是根据你提供的设备描述符中的VIP、DIP和接口描述符中的
类、子类、协议类型来确定驱动程序的、 |
|
10楼#
发布于:2005-04-08 17:35
对于6楼,我想你需要在固件程序中加入一个格式化函数,等调试完成把这个函数屏蔽掉。让windows在format一遍
格式化函数要按你的容量来自己做 不过我没有遇到你的问题,按理说应该提示你磁盘没有格式化 也可能是你 Read_capacity、Read_format_capacity、mode_sense 返回有问题、可用BusHound抓一个好的u盘看一下好好设置,问题 应该很好解决 |
|
11楼#
发布于:2005-04-08 19:42
请问楼主,您做过移动硬盘方面的开发吗?
我作的U盘好使了! 但是作移动硬盘一直没有成功啊! 希望能和您交流! mail:helei99@163.com QQ:18022238 说明:移动硬盘 谢谢! |
|
|
12楼#
发布于:2005-04-09 23:04
楼主能不能给一下mode sense这条命令的应答,我U盘这条命令应答总是有些问题,请说一下如何应答,或者贴一下Bus Hound捕捉的文件,我想看一下,多谢
[编辑 - 4/9/05 by supersxj] |
|
13楼#
发布于:2005-04-11 09:32
mode sense 应答:
3,0,0,0 或 3,0,0x80,0二者的区别是第一个没有写保护,第二个有写保护 |
|
14楼#
发布于:2005-04-15 16:45
设备枚举成功,并且在设备管理器中能够看到我的USB设备,主机发了inquiry命令,我也成功的回了数据,但是为何不能够看到盘符呢?中间还要做起他的工作吗?主机也发了mode sense和read capacity,read sect 0,我都正确的回了相关的数据,但是还是没有看到盘符,接着主机就不命令了,不知道为何?我的文件系统的MBR没有启动功能也没有partition entry的那种。
|
|
15楼#
发布于:2005-04-16 17:29
看看host是否发出 Read format capacity (0x23)命令,
如果有返回相应数据 我的32M是: #define CAPACITY_LIST_LENGTH sizeof(CAPACITYLIST_HEAD)+sizeof(CM_FORMAT_CAPACITY_DATA) const CAPACITYLIST_HEAD CapacitylistHead={ 0,0,0,//unsigned char Reserved0[3]; sizeof(CM_FORMAT_CAPACITY_DATA) //unsigned char CapacityLength; }; const CM_FORMAT_CAPACITY_DATA CMFormatCapacityData={ 0,0x10,0,0,//unsigned char LogicalBlockAddress[4]; 3, //unsigned DescriptorCode :2; 0, //unsigned Reserved0 :6; 0,2,0 //unsigned char LogicalLength[3]; }; 按CAPACITY_LIST_LENGTH 长度返回 如果还不行 看看你的格式化是否有问题; 不过我的盘符没格式化很容易就出来了,很可能是你返回的 前几个命令有问题,好好查一查。 |
|
16楼#
发布于:2005-04-18 11:15
多谢了,我的flash上的文件系统时没有MBR的那种,你能否把你抓下来的数据给我看看?yonganxie@sohu.com,我不知道windows能够认出这种文件系统否?我们以前自己开发的是对这种文件系统兼容的。
|
|
17楼#
发布于:2005-04-20 15:10
我已经把源码贴到‘源代码与分析’栏目中
请各位好好享用吧, 如果发现问题,一定要回复,这样才能共同进步 |
|
18楼#
发布于:2005-04-21 14:30
有源代码与分析这个栏目吗?
|
|
19楼#
发布于:2005-04-21 16:29
不知咋回事 就是下不了
|
|
上一页
下一页