20楼#
发布于:2004-01-08 10:17
请问你的目的是不是要做一个类似硬盘盒的东西,仅仅让主机可以操纵硬盘里的内容,如果是这样子,那你可以不使用MCU(个人理解,没有实际做过),直接在CY7C68000外挂一个256字节的EEPROM(24LC02)。
不过我估计你的目的不是这样子,因为用了一个ARM,你可能是要先离线采集大量数据存在硬盘内,然后再传到主机,如果是这样子的,你可能要修改设计。 |
|
|
21楼#
发布于:2004-01-08 10:27
应该把设计目的说得更清楚些!
|
|
22楼#
发布于:2004-01-08 14:11
目的就是测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。
|
|
|
23楼#
发布于:2004-01-08 14:44
目的就是测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。 我觉得,硬盘应该直接连接在68000上。 |
|
|
24楼#
发布于:2004-01-08 15:10
[quote]目的就是测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。 我觉得,硬盘应该直接连接在68000上。 [/quote] 可板子上就是这么连的,68000被当作容USB 2.0收发器宏单元接口(UTMI)使用。 |
|
|
25楼#
发布于:2004-01-08 15:13
我没用过68000啊! :(
|
|
26楼#
发布于:2004-01-08 16:26
[quote][quote]目的就是测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。 我觉得,硬盘应该直接连接在68000上。 [/quote] 可板子上就是这么连的,68000被当作容USB 2.0收发器宏单元接口(UTMI)使用。 [/quote] 难道板子不是你设计的? |
|
|
27楼#
发布于:2004-01-08 16:31
[quote][quote][quote]目的就是测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。 我觉得,硬盘应该直接连接在68000上。 [/quote] 可板子上就是这么连的,68000被当作容USB 2.0收发器宏单元接口(UTMI)使用。 [/quote] 难道板子不是你设计的? [/quote] 当然不是,你还没看出来我对硬件一窍不通吗? |
|
|
28楼#
发布于:2004-01-08 16:47
我没用过68000啊! :( 可是在这里不用对它作什么呀,关键是MCU 1201E和USB核(具体名称XDML03C08). 现在MCU和USB核的连线已经差不多了,不过现在越来越糊涂了 :(整理一下思路,现在把整个流程和任务说一下 现在好像明白点了:主机发出IRQ请求,数据通过USB Transfer(68000),由USB芯片进行解码,错误检测,然后将数据传送给MCU,MCU根据接受到的SETUP包执行具体操作,比如取描述符什么的。MCU与硬盘之间的通信目前不作要求,就当没有连接这个硬盘,总之,只要完成象CYPRESS的例程bulktest那样的功能就行了。 |
|
|
29楼#
发布于:2004-01-08 17:50
我可能对个的问题比较清楚一点儿,我做过USN1.1,也做过ARM。
首先你得明确一下概念:68000是类似于USBN9603的USB接口芯片,没有MCU,所以必须外接一个MCU,在你的板子上就是ARM。 所以你先找一个9603的参考设计来看看,非常简单的,可以帮你明确一下概念。9603的参考设计非常多,你自己找一下,连固件都有的。 这样一来你就应该清楚怎么做了吧,把ARM跟68000连起来,应该有地址线有数据线还有其他杂七杂八的。通过ARM配置68000,比如把要通过USB传的数据写到68000的缓冲区,然后写一下OUTnCNT之类的寄存器,68000就自动帮你把数据通过USB传了;数据从PC机过来时候传好了在缓冲区后68000会触发一个中断,ARM读好了后再配置一下寄存器就行了,照着参考设计做非常快的。 ARM你先当成个单片机用,上手也很快的。cypress公司上68000的应用也有的,仔细看看。 最后硬盘是肯定要接在ARM上的,只有ARM才是MCU,才能去读硬盘。68000只是个USB接口芯片。我做ARM时没接IDE硬盘,但我看到有人这样做了,所以肯定是行得通的。祝你好运! 为了回答你的问题我不仅打了这么多字,还去cypress公司网站上看了datasheet,分,得给点儿吧:) |
|
30楼#
发布于:2004-01-08 17:59
楼主酷毙了!佩服佩服!
|
|
|
31楼#
发布于:2004-01-08 18:38
首先说说板子的配置和我的工作: cy7c68000不就是usb控制器吗?它后面接的那个usb core是什么东东??????我觉得它应该是在68000里面,这样才合理。 如果我上面的分析是对的,那么你的设计是如下一个情况: 你用了一个ARM来控制一个不带8051的usb全速控制器――68000,而那个arm的就充当8051的作用。ARM通过地址线和数据线于68000连接,而访问你说的那些寄存器就是通过地址线和数据线进行的,访问的时候就像前面有位仁兄说的那样,就像访问一块ram一样访问他就行了。 因为你做的是个Mass Storage的通用设备,因此在win2000下不需要再写驱动程序,直接把你的设备描述符里的设备类、设备子类设定为Mass Stroage类即可,到时候主机会向枚举u盘那样枚举你的设备并加在通用驱动。 你需要做的固件程序是要符合bulk-only协议的,本版以前有人贴过bulk-only协议的pdf文件,你可以搜一下,另外cy估计提供的有相应的例子代码,你可以参考以下。就算不是cy的也可以参看,东西都是近似的。 呵呵,给分吧 :D |
|
32楼#
发布于:2004-01-08 18:38
楼上的说错的,俺是“苦”毙了。 :( :( :( :(
|
|
|
33楼#
发布于:2004-01-08 18:50
诸位放心吧,俺什么时候赖过帐 :D,不过一个帖子不能放两次分,这样对以后回答问题的人就不公平了,对诸位的指点,我是很感激的 :)。这个项目必须年前做完(用项目负责人的话说就是-作不完不行 :mad: :(),到时候不管怎样我争取放999分 :D :D :D :D
emailcdh,jinghuiren两位说的68000的作用倒是和我的板子上的USB芯片很像,而这块芯片就是连接在68000和MCU之间的,发现我的概念很模糊,叙述不清,待会发个电路板的图片上来,大家看看。 最后,再一次感谢帮助我的人 :) |
|
|
34楼#
发布于:2004-01-09 08:48
个人认为:
cy7c68000是一个独立的USB2IDE芯片,他不需要MCU参与,而是直接与IDE硬盘相连,也就是说你的电路上只需要把cy7c68000的管脚和硬盘线相连(好向他们的定义都一样)、D+D-和USB线练就可以了,你不需要写任何固件,也不需要写任何驱动,固件在68000内固化了。唯一需要做的就是给他挂一个256字节的串行EEPROM,在里面按照固定的格式给处你的描述符就可以了,如果你没有外挂EEPROM,那也没关系,他会按照缺省的描述符描述自己,你也可以用。 如果你非要让MCU参与,我实在想不出来理由。因为那样子的花卉多非很多事儿。或许你是出于保密的考虑。反正你没把实际的情况说出来。 |
|
|
35楼#
发布于:2004-01-09 10:05
引用:
―――――――――――――――――――――――――――――――― 嗯,上面的那一大段引用不是用什么语言写的程序代码,具体是什么,给我提供这分资料的人说了我也没明白,反正是在工作站上的,关键是要完成响应的功能。 ―――――――――――――――――――――――――――――――― 我估计这段语言只是描述所要实现的方法,功能,就象用英文告诉你怎么做,而不是编程语言 |
|
|
36楼#
发布于:2004-01-09 10:09
楼上的,我都说了,整个项目的目的是设计一块USB核芯片,现在已经投片了,但是还需要测试它的功能,才能大批量生产。我的任务测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。
由于这块USB芯片是被测试的目标,所以必须在整个数据传输中扮演角色,目的是测试芯片功能,实现硬盘的读写只是手段 ,你说的 cy7c68000是一个独立的USB2IDE芯片,他不需要MCU参与,而是直接与IDE硬盘相连我不太清楚,只记得当时他们测试电路的时候,还用过一块683000,它就是可以直接连在硬盘和USB端口之间,然后我什么也不作,就可以在主机上读写硬盘。 |
|
|
37楼#
发布于:2004-01-09 10:43
不好意思,看错资料了,嘿嘿。
|
|
|
38楼#
发布于:2004-01-09 11:03
没什么,那就麻烦你再看看我的问题吧?
|
|
|
39楼#
发布于:2004-01-09 11:38
这是USB 芯片的管脚,其中UTMIXXX是和UTMI 68000的XXX管脚连在一起的,比如utmidata0管脚就是和6800的D0管脚连在一起的,FIFOXXX管脚在这里不使用,以up开头的管脚都连在MCU上。
|
|
|