hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2134回复:26

多问题,多分

楼主#
更多 发布于:2004-08-14 17:33
1、P0^4设置为nRST,是51芯片的P0口吗?怎么可以既做数据传输又做复位引脚?你用的什么芯片是什么封装。
2、EZUSB中EZ代表什么?为什么我们都用51芯片,却都在提这个词汇?
3、在sl811.h中定义了sl811的寄存器,用#define CtrlReg         0x05
   这样的语句,就这样直接定义,在引用的时候就可以找到这个寄存器而没有找到片内ram   中?
4、其中还有许多其他定义,如chapter9,是做什么的?
5、EP0_BUF=0X10;
   EP1_BUF=0X40;这两个地址分别是data0和data1的缓冲器首地址吧,上面说这两个数据都是64个字节,可是这两个地址差是48,
6、u盘是mass storage 设备,就一定要做全速设备处理是吧。

最新喜欢:

sunmaculasunmac...
新手上路,各位大侠莫不理睬
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-16 12:01
我没用过CYPRESS的片子.
1.我想他的P0口的第四脚应该不可能直接接到RESET端,他可能在片内
 设了个锁存(或别的什么),具体你看看硬件电路.
3.是的.我建议你用仿真器看看.将他编译一下,看生成的汇编程序,那
 就一目了然了.
4.是固件中的一部分,他包含了标准USB命令代码,用于建立USB HOST
与USB设备之间的基本连接.
新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-16 12:48
谢谢你回答我的问题,我用的是sl811芯片,在看开发包中的例程时对下面这个问题不懂:
intena(0x06)和intstatus(0x0d)两个寄存器都有device detect/resume和insert/remove,都是接入/移出中断允许位,这个中断到底是哪个控制?
其实我还有很多不懂啊,第一次做硬件,真的好多不会的。
新手上路,各位大侠莫不理睬
xxczsy123456
驱动牛犊
驱动牛犊
  • 注册日期2004-08-12
  • 最后登录2006-05-15
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-16 16:56
5、EP0_BUF=0X10;
EP1_BUF=0X40;这两个地址分别是data0和data1的缓冲器首地址吧,上面说这两个数据都是64个字节,可是这两个地址差是48,

是这样的,他们的地址是两个FIFO存储器的地址,你只要对这两个地址进行操作就可以了,因为一个FIFO存储器只要占一个地址就行了,你好好学学FIFO存储器吧!!
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-16 17:59
谢谢你回答我的问题,我用的是sl811芯片,在看开发包中的例程时对下面这个问题不懂:
intena(0x06)和intstatus(0x0d)两个寄存器都有device detect/resume和insert/remove,都是接入/移出中断允许位,这个中断到底是哪个控制?
 

我想一个是中断允许(可能是0X06),一个是中断源(可能是0X0D),
中断允许表征允许什么产生中断,如:你在0X06里将DEVICE DETECT/
RESUME置0,则对于此事件不产生中断(或相反).中断源表征产生的是
什么中断,如:产生中断后,读0X0D,哪一位置1,那么就是什么事件产生
的中断(或相反,注意可能同时有几个中断源产生了中断).
总而言之,0X06是你想要什么产生中断的寄存器(通过编程实现),0X0D
是产生了什么中断的寄存器,你无法对他进行控制.以上在芯片手册里
应该有描述,你可以看看.
新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-17 08:55
是这样的,他们的地址是两个FIFO存储器的地址,你只要对这两个地址进行操作就可以了,因为一个FIFO存储器只要占一个地址就行了,你好好学学FIFO存储器吧!! [/quote]
谢谢,我已经弄明白了
新手上路,各位大侠莫不理睬
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-17 11:17
因为是新手,可能有很多蠢问题要问,高手包含哈。请问:
J-K状态做什么用?D+,D-置高置低是做什么的?
usb引擎指什么?
新手上路,各位大侠莫不理睬
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-17 11:20
我想一个是中断允许(可能是0X06),一个是中断源(可能是0X0D),
中断允许表征允许什么产生中断,如:你在0X06里将DEVICE DETECT/
RESUME置0,则对于此事件不产生中断(或相反).中断源表征产生的是
什么中断,如:产生中断后,读0X0D,哪一位置1,那么就是什么事件产生
的中断(或相反,注意可能同时有几个中断源产生了中断).
总而言之,0X06是你想要什么产生中断的寄存器(通过编程实现),0X0D
是产生了什么中断的寄存器,你无法对他进行控制.以上在芯片手册里
应该有描述,你可以看看. [/quote]

谢谢大虾指点,不过芯片手册里面没有写,芯片手册上只介绍了一个,说另外一个参考上一个。不过谢谢你哦,我自己再看看吧
新手上路,各位大侠莫不理睬
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-17 12:17
2,EZ是cypress为他的一个系列芯片起的名字的一部分,你可以不用在意他的具体含义,它就像一款芯片的型号一样。
4,chaper9 指的是usb协议的第9章,协议上这一章主要讲了枚举的过程及实现,具体描述符的含义等内容,如果你用ez系列的芯片,那么这一章的内容你不需要了解很深,因为cy给你完整的例程,作的非常好,你不需要修改就可以使用。
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-17 12:29
谢谢你们,我还想问一个,书上说许多USB芯片本身都已经确定了端点的数量和属性,用户只能按照既定的端点进行编程,我用SL811做主机,假定有一个U盘插入接口(第一个设备),HOST检测到有USB设备插入,就会给它分配地址00H,然后进行枚举,枚举成功后给它分配地址01H,对吗?
新手上路,各位大侠莫不理睬
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-17 15:48
??你的问题和假定我怎么对不上号?呵呵.
00H不是你分配的吧,好象是默认的地址,任何一个USB(2.0)设备在接
入时都是00H地址,HOST通过这个地址对设备进行枚举,并在枚举成功
后给设备分配一个系统唯一的地址(这个地址在设备拔除后被释放),
以便与再次分配.而且,他也不一定是01H,具体要看当时系统的负载
情况.
新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-17 16:01
metalwing,谢谢你哦,经常都是你和其他几个高手在回答我提出的问题,呵呵,谢谢你们的耐心指点。
我对端点一直都觉得不是很了解,比如,我做的系统中应该有三个端点,一个是读,一个是写,还有一个是中断,这三个端点是在我主机中sl811的寄存器中吗?
还有,我的命令发送对象可以是设备或者端点,那么我命令发出去之后,应该是设备或者其中的某个端点接受是吗?这个端点是设备自己的是吗?
新手上路,各位大侠莫不理睬
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-17 16:47
每一个USB接口芯片都会提供几个(不同芯片个数不同)端口(ENDPOINT).每个端口又对应几个寄存器(如:BUFF).这些端口准确的
说是属于该接口芯片的.而你发送的命令准确的说也是发送到相应的
端口.然后你的固件程序再根据你的命令作出不同的反应(操作设备
或端口),所以从宏观上来说,你的命令发送对象可以是设备或是端口.


新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-18 08:20
每一个USB接口芯片都会提供几个(不同芯片个数不同)端口(ENDPOINT).每个端口又对应几个寄存器(如:BUFF).

“几个寄存器”,明白了,我以为是一个寄存器的。我只要发送命令控制sl811的端点,让它明白我要它做什么就可以了对吧
新手上路,各位大侠莫不理睬
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-08-18 08:54
正确.
新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-08-18 09:27
还问一个别的问题,请问什么是漏极开路
新手上路,各位大侠莫不理睬
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-08-18 14:14
还问一个别的问题,请问什么是漏极开路

呵呵,这个问题恐怕要查一下模拟电路了,或者到数字电路板去问问,这个版估计现在还记得这个的人不会太多! :)
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-08-18 14:21
漏级开路是指场效应管(他包含源,漏,栅三级)的漏级丢空,在这种情
况下,一般是将漏级接一个上拉电阻.这时,低电平导通,高电平阻塞.
与此有关的还有集电极开路(就三极管而言).
新手上路,请多关照.
hongshanger
驱动小牛
驱动小牛
  • 注册日期2004-07-19
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-08-18 18:05
感谢两位的回答,不过现在我还没有空去看模拟电路,我没有学过模拟电路和数字电路,没有学过电路分析,甚至连单片机接触的都几乎没有就开始做USB,真的是一团糟,所以经常问一些不该问的问题,呵呵,很不好意思。
我在WWW.USB.ORG上下载到了一些源程序,可是我不知道我做的是叫做嵌入式主机还是其他的主机,里面分三个部分:主机,嵌入式主机和设备,我不知道我该看哪个,目前我看了嵌入式主机,已经看完了两个程序,CH811.C和CH811.H,积攒了一大堆问题想问。
里面有枚举的部分,而且很完备,是不是我只要把U盘插入,硬件电路就自动检测到有USB设备插入,这时候就要进入软件中断?在软件中断中进入枚举?或者是在主程序中进入枚举?
我用的是28脚的SL811HS芯片,PLCC封装,和51芯片组成电路图,我很担心自己硬件电路搞错了,上次差点搞坏了我们的仿真器。
新手上路,各位大侠莫不理睬
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-08-19 11:28
"这时候就要进入软件中断?在软件中断中进入枚举?或者是在主程序中进入枚举",??
在设备接入后,产生中断,进入中断处理程序,你可以在这里处理中断,
也可以在这里作简单的处理(如:设置状态),然后跳出中断,在你的主
程序里处理事件.
另:你做HOST还是DEVICE?呵呵,不记得了.
新手上路,请多关照.
上一页
游客

返回顶部