庆祝一下 用STC89C58RD+单片机内部的16KB EEPROM做U盘开发成功了

[复制链接]
9676|20
 楼主| wahahaabc 发表于 2007-10-8 12:26 | 显示全部楼层 |阅读模式
偶用STC89C58RD+内部的16KB EEPROM做U盘开发成功了,可以完成读写操作,但是不能进行格式化,不能格式化的原因是16KB的空间太小了,MICORSOFT不支持,使用的硬件平台是ZLG的SMART D12开发板
123654789 发表于 2007-10-8 12:27 | 显示全部楼层

恭喜 楼主

请&nbsp;公开&nbsp;&nbsp;原理图&nbsp;&nbsp;和程序&nbsp;代码&nbsp;拉<br /><br />
 楼主| wahahaabc 发表于 2007-10-8 12:33 | 显示全部楼层

source code

原理图就是ZLG的&nbsp;SMART&nbsp;D12开发板的原理图(网上有下载)<br />源代码因为偶是在公司的51单片机软件开发平台上开发的,有些地方涉及到公司的代码,所以只上传D12部分的代码和EEPROM部分的代码,希望大家见谅 <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/2007108123257748.pdf'>https://bbs.21ic.com/upfiles/img/200710/2007108123257748.pdf</a>
123654789 发表于 2007-10-8 12:35 | 显示全部楼层

谢谢 楼上

俺&nbsp;一时间&nbsp;&nbsp;还看不明白<br /><br />复制&nbsp;下来&nbsp;&nbsp;回去&nbsp;慢慢&nbsp;的研究
 楼主| wahahaabc 发表于 2007-10-8 12:36 | 显示全部楼层

源代码

  <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/2007108123641702.rar'>https://bbs.21ic.com/upfiles/img/200710/2007108123641702.rar</a>
 楼主| wahahaabc 发表于 2007-10-8 12:39 | 显示全部楼层

格式化的.HEX文件

大家只要将.HEX文件写入到SMART&nbsp;D12开发板,打开U盘就可以看见TEST.TXT文件,文件的内容是“简洁就是美&nbsp;”,然后就可以任意写文件和读文件 <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/2007108123919567.rar'>https://bbs.21ic.com/upfiles/img/200710/2007108123919567.rar</a>
 楼主| wahahaabc 发表于 2007-10-8 12:43 | 显示全部楼层

顺便说一下源代码

偶写的源代码并不是很完善,更谈不上完美,偶主要是想学习一下用USB开发U盘的原理,大家如果对源代码有什么意见或是有更好的程序架构,也发帖出来互相交流一下
123654789 发表于 2007-10-8 12:48 | 显示全部楼层

wahahaabc 除了 这个 还有没有 得意制作 啊 ??

  
 楼主| wahahaabc 发表于 2007-10-9 11:37 | 显示全部楼层

用SMART D12开发板做的HID多媒体键盘(计算器 和 一键上网)

不敢说得意之作,只是没什么事情的时候做点小玩具玩玩。用SMART&nbsp;D12开发板做的HID多媒体键盘,按下其中的一个按键就可以启动windows的计算器程序,按下另一个按键就可以打开IE浏览器,偶将.HEX文件上传,直接将.HEX文件写入D12开发板就可以了 <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200710/2007109113522338.rar'>https://bbs.21ic.com/upfiles/img/200710/2007109113522338.rar</a>
huangqi412 发表于 2007-10-9 13:54 | 显示全部楼层

好东西,下了学习一下

  
古道热肠 发表于 2007-10-10 11:45 | 显示全部楼层

楼主好样的,鼓掌!

&nbsp;&nbsp;楼主的ID咱像当年红极一时的“姓哈哈”,想必也是乐天派性格。
 楼主| wahahaabc 发表于 2007-10-10 12:14 | 显示全部楼层

古道热肠大侠也来捧场 偶有些激动 谢了

  
古道热肠 发表于 2007-10-12 09:48 | 显示全部楼层

版主奖罚分明,楼主还不快谢谢版主

&nbsp;&nbsp;&nbsp;昨天拿你的U盘Hex文件测试了一下,现象如下,一次枚举完全成功,U盘大小为0字节,无文件。<br />&nbsp;&nbsp;&nbsp;拔掉,重新插上,出现TXT文件,打开文件,看到你的那句话了“简单就是美”。修改文件内容存盘不成功。<br />&nbsp;&nbsp;&nbsp;能做成这样,已经离完全兼容不远了。共享给大家,会给拥有D12开发板的网友一个看得见的目标,很好!!!<br /><br />键盘Hex文件测试,一键上网正常,一键启动计算器没反应,也还不错。
 楼主| wahahaabc 发表于 2007-10-12 12:39 | 显示全部楼层

古道热肠大侠可以这样测试一下

偶的U盘程序和HID键盘程序在偶的办公室中的10台机器上做过测试,只有一台机器没有通过,其余都OK,所有测试机器的操作系统都是WIN&nbsp;XP&nbsp;SP2版本。古道热肠大侠在测试中出现问题,可以这样测试一下:<br />方法(1)换一台机器<br />方法(2)先插入D12开发板,等待windows的“设备管理器”中出现相应设备时,然后卸载相应设备的驱动程序,然后拔下D12开发板,再插入D12开发板。<br /><br />偶原来在调试HID的键盘程序时,也出现过类似的情况,只要将其驱动程序卸载以后,再重新插入D12开发板即可解决<br /><br />但是U盘程序好像还从来没出现这样的问题,多谢古道热肠大侠帮忙测试程序,偶再仔细测试一遍,看看会不会出现问题
古道热肠 发表于 2007-10-12 16:44 | 显示全部楼层

哈哈,我不测了周立功的了

&nbsp;&nbsp;&nbsp;U盘我做了,我了做过类似的D12开发板,我将抽空也学你弄个袖珍版U盘。
 楼主| wahahaabc 发表于 2007-10-12 17:40 | 显示全部楼层

古道热肠大侠不要误会,偶可不是周立功公司的

古道热肠大侠不要误会,偶可不是周立功公司的,偶也不是给D12开发板打广告,只是原来在ZLG公司买了一块SMART&nbsp;D12开发板,觉的提供的程序功能比较单一,不太好玩,前段时间没什么事情,就写了一个袖珍版的U盘
CAESARKING 发表于 2007-11-21 16:24 | 显示全部楼层

SCSI_ModeSense

wahahaabc,古道热肠,大侠你们好,在下在做U盘开发过程中一直困惑于SCSI命令块,比如主机发出一个命令,设备反回一个命令结果。其中有SCSI_ModeSense这条指令,要求设备返回的结果,看楼主的程序中返回为<br /><br />static&nbsp;INT8U&nbsp;code&nbsp;TimerAndProtectPage[]=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0B,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Mode&nbsp;Parameter&nbsp;Header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x1C,&nbsp;0x06,&nbsp;0x00,&nbsp;0x05,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00&nbsp;&nbsp;//&nbsp;Timer&nbsp;and&nbsp;Protect&nbsp;Page<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;INT8U&nbsp;code&nbsp;ModeSense[]=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0B,&nbsp;0x00,&nbsp;0x00,&nbsp;0x08,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00,&nbsp;0x00,&nbsp;0x00,&nbsp;0x20,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00,&nbsp;0x00,&nbsp;0x02,&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br /><br />这两组数据中的一个(是对应mode&nbsp;sense中的page&nbsp;code来选择对吗),依照SCSI的规范中要求返回数据结构为<br />parameter&nbsp;list&nbsp;header+block&nbsp;descriptor+page<br /><br />但看楼主返回的数据结构与规范中对应不上,这是怎么回事呢,能详细解说一下吗?<br />
 楼主| wahahaabc 发表于 2007-11-22 14:52 | 显示全部楼层

RE: SCSI_ModeSense

先来解释一下<br />static&nbsp;INT8U&nbsp;code&nbsp;ModeSense[]=<br />{<br />//&nbsp;前4个字节是模式参数头标<br />0x0B,&nbsp;//&nbsp;模式数据长度<br />0x00,&nbsp;//&nbsp;介质类型<br />0x00,&nbsp;//&nbsp;设备特定<br />0x08,&nbsp;//&nbsp;块描述符长度<br /><br />//&nbsp;后8个字节是一个块描述符<br />0x00,&nbsp;//&nbsp;写密度<br />0x00,&nbsp;//&nbsp;块数目(共32块)<br />0x00,&nbsp;<br />0x20,<br />0x00,&nbsp;//&nbsp;保留<br />0x00,&nbsp;//&nbsp;块长度,每块512字节<br />0x02,&nbsp;<br />0x00<br />};<br /><br /><br />static&nbsp;INT8U&nbsp;code&nbsp;TimerAndProtectPage[]=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0B,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Mode&nbsp;Parameter&nbsp;Header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x1C,&nbsp;0x06,&nbsp;0x00,&nbsp;0x05,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00,&nbsp;0x00&nbsp;&nbsp;//&nbsp;Timer&nbsp;and&nbsp;Protect&nbsp;Page<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br /><br />可参见《USB&nbsp;Mass&nbsp;Stroage&nbsp;Class&nbsp;UFI&nbsp;Command&nbsp;Specification.pdf》<br />P24&nbsp;&nbsp;4.5&nbsp;Mode&nbsp;Select&nbsp;/&nbsp;Sense&nbsp;Parameters<br />P28&nbsp;&nbsp;4.5.7&nbsp;Timer&nbsp;and&nbsp;Protect&nbsp;Page&nbsp;(1Ch)<br />SCSI协议偶也没有完全搞清楚,希望大家共同学习
王紫豪 发表于 2007-11-25 01:03 | 显示全部楼层

16k的u盘,不错,哈哈!不能格式化,哈哈!

  
woshansi 发表于 2014-1-31 12:52 | 显示全部楼层
不错,值得学习,如果自己做硬件,这些程序还可以使用吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

627

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部