阅读:3826回复:50
问题多,分也多-------我的USB驱动开发问题专帖
首先说说板子的配置和我的工作:
MCU--一款采用ARM7TDMI核设计的32位芯片,有内部SRAM(8K) USB CORE--这个任务的目的就是测试它的功能, UART--CY68300 要作的事:1.单片机对USB芯片进行配置,配置它的寄存器,使USB芯片能够提供设备描述符表(这个是原来放在USB芯片里的)给主机,这样主机就能识别连接上的是个什么东东了 2.写固件,驱动程序(由于时间关系,我打算用windriver或找个现成的),主机可以对设备发出IRQ请求,设备也可以回复,通过读UART的管脚来检测USB芯片工作是否正常。 下面这个图是大致的结构框架: |
|
最新喜欢:![]()
|
沙发#
发布于:2004-01-18 11:45
看了这么多,不知道你的目的是不是这样?
1。目标板上的ML1210E是不是有USB口,如果有的话是不是MASTER 2。由于PC和ARM的USB都是MASTER,所以不能直接连接通讯,所以用两个SLAVE的器件68000和USB CORE连接,这两个器件间用UART口通讯。 |
|
板凳#
发布于:2004-01-12 21:19
再开个贴子吧我看的头都大了
把问题简化一下 目的讲清楚 |
|
地板#
发布于:2004-01-09 23:07
[quote][quote][quote]感觉有点帮不上忙了! :(没关系 :),不管怎样,我坚信会及时完成的。就是中间过程比较痛苦 :D他们就跟催命一样。 你说的“其实USB寄存器都是在固件中配置的,不用通过ARM配置”,是不是指在ezregs.h中的那些寄存器声明?象 EXTERN xdata volatile BYTE OUT7BUF[64] _AT_ 0x7B40;这样的? [/quote] 在.c里配置,只要调用.h中的寄存器描述符就可以了! [/quote] 不解,在C里怎么配置啊?举个例子好吗?用什么样的代码配置呢?还有,象OUT7BUF这样的寄存器给我的感觉就是给一个地址指针,但是象USBCS这样的USB寄存器就不是一个指针那么简单了,对于这样的寄存器,我该怎么配置呢? [/quote] OUT7BUF可以看成是一个数组的起始地址,理解为指针也可以,反正OUT7BUF[0]标志第一个字节数据。 USBCS定义的方法是:EXTERN xdata volatile BYTE USBCS _AT_ 0xXXXX; 可以直接象变量一样访问,如:USBCS = 0 |
|
地下室#
发布于:2004-01-09 15:30
算了,这个帖子太乱了,诸位看一遍很费时间,我整理好思路,重开一贴吧,这个的分先放了。 :)
|
|
|
5楼#
发布于:2004-01-09 12:51
不过我还是有点不太理解, 这个我也不知道,也许这是市场的需要,也许是为了骗项目基金吧。 :D :D :D |
|
|
6楼#
发布于:2004-01-09 12:49
[quote][quote]感觉有点帮不上忙了! :(没关系 :),不管怎样,我坚信会及时完成的。就是中间过程比较痛苦 :D他们就跟催命一样。 你说的“其实USB寄存器都是在固件中配置的,不用通过ARM配置”,是不是指在ezregs.h中的那些寄存器声明?象 EXTERN xdata volatile BYTE OUT7BUF[64] _AT_ 0x7B40;这样的? [/quote] 在.c里配置,只要调用.h中的寄存器描述符就可以了! [/quote] 不解,在C里怎么配置啊?举个例子好吗?用什么样的代码配置呢?还有,象OUT7BUF这样的寄存器给我的感觉就是给一个地址指针,但是象USBCS这样的USB寄存器就不是一个指针那么简单了,对于这样的寄存器,我该怎么配置呢? |
|
|
7楼#
发布于:2004-01-09 12:33
不过我还是有点不太理解,
如果仅仅是读写硬盘,为什么不使用68300? 如果为了节省成本,那为什么要用ARM? 如果为了保护设计,而又有流片的能力,那何不从头设计,把USB收发器、MCU、逻辑都是到一个芯片里去,为什么还要用68000? |
|
|
8楼#
发布于:2004-01-09 12:23
[quote]感觉有点帮不上忙了! :(没关系 :),不管怎样,我坚信会及时完成的。就是中间过程比较痛苦 :D他们就跟催命一样。 你说的“其实USB寄存器都是在固件中配置的,不用通过ARM配置”,是不是指在ezregs.h中的那些寄存器声明?象 EXTERN xdata volatile BYTE OUT7BUF[64] _AT_ 0x7B40;这样的? [/quote] 在.c里配置,只要调用.h中的寄存器描述符就可以了! |
|
9楼#
发布于:2004-01-09 12:19
感觉有点帮不上忙了! :(没关系 :),不管怎样,我坚信会及时完成的。就是中间过程比较痛苦 :D他们就跟催命一样。 你说的“其实USB寄存器都是在固件中配置的,不用通过ARM配置”,是不是指在ezregs.h中的那些寄存器声明?象 EXTERN xdata volatile BYTE OUT7BUF[64] _AT_ 0x7B40;这样的? |
|
|
10楼#
发布于:2004-01-09 11:52
感觉有点帮不上忙了! :(
|
|
11楼#
发布于:2004-01-09 11:45
68000管脚图
|
|
|
12楼#
发布于:2004-01-09 11:38
这是USB 芯片的管脚,其中UTMIXXX是和UTMI 68000的XXX管脚连在一起的,比如utmidata0管脚就是和6800的D0管脚连在一起的,FIFOXXX管脚在这里不使用,以up开头的管脚都连在MCU上。
|
|
|
13楼#
发布于:2004-01-09 11:03
没什么,那就麻烦你再看看我的问题吧?
|
|
|
14楼#
发布于:2004-01-09 10:43
不好意思,看错资料了,嘿嘿。
|
|
|
15楼#
发布于:2004-01-09 10:09
楼上的,我都说了,整个项目的目的是设计一块USB核芯片,现在已经投片了,但是还需要测试它的功能,才能大批量生产。我的任务测试那块USB芯片能否正常工作,如果最后能够在主机上对连接在MCU 1201E上的硬盘进行读写,那就成功了。
由于这块USB芯片是被测试的目标,所以必须在整个数据传输中扮演角色,目的是测试芯片功能,实现硬盘的读写只是手段 ,你说的 cy7c68000是一个独立的USB2IDE芯片,他不需要MCU参与,而是直接与IDE硬盘相连我不太清楚,只记得当时他们测试电路的时候,还用过一块683000,它就是可以直接连在硬盘和USB端口之间,然后我什么也不作,就可以在主机上读写硬盘。 |
|
|
16楼#
发布于:2004-01-09 10:05
引用:
―――――――――――――――――――――――――――――――― 嗯,上面的那一大段引用不是用什么语言写的程序代码,具体是什么,给我提供这分资料的人说了我也没明白,反正是在工作站上的,关键是要完成响应的功能。 ―――――――――――――――――――――――――――――――― 我估计这段语言只是描述所要实现的方法,功能,就象用英文告诉你怎么做,而不是编程语言 |
|
|
17楼#
发布于:2004-01-09 08:48
个人认为:
cy7c68000是一个独立的USB2IDE芯片,他不需要MCU参与,而是直接与IDE硬盘相连,也就是说你的电路上只需要把cy7c68000的管脚和硬盘线相连(好向他们的定义都一样)、D+D-和USB线练就可以了,你不需要写任何固件,也不需要写任何驱动,固件在68000内固化了。唯一需要做的就是给他挂一个256字节的串行EEPROM,在里面按照固定的格式给处你的描述符就可以了,如果你没有外挂EEPROM,那也没关系,他会按照缺省的描述符描述自己,你也可以用。 如果你非要让MCU参与,我实在想不出来理由。因为那样子的花卉多非很多事儿。或许你是出于保密的考虑。反正你没把实际的情况说出来。 |
|
|
18楼#
发布于:2004-01-08 18:50
诸位放心吧,俺什么时候赖过帐 :D,不过一个帖子不能放两次分,这样对以后回答问题的人就不公平了,对诸位的指点,我是很感激的 :)。这个项目必须年前做完(用项目负责人的话说就是-作不完不行 :mad: :(),到时候不管怎样我争取放999分 :D :D :D :D
emailcdh,jinghuiren两位说的68000的作用倒是和我的板子上的USB芯片很像,而这块芯片就是连接在68000和MCU之间的,发现我的概念很模糊,叙述不清,待会发个电路板的图片上来,大家看看。 最后,再一次感谢帮助我的人 :) |
|
|
19楼#
发布于:2004-01-08 18:38
楼上的说错的,俺是“苦”毙了。 :( :( :( :(
|
|
|
上一页
下一页