didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2750回复:25

我的枚举过程为什么会有这种情况

楼主#
更多 发布于:2003-07-19 09:15
我怀疑是硬件问题
每次去读interruptregister
读到的数据总是0000;
然后就一直中断
中断了也不做任何事情就推出了
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-19 09:24
你用的是什么片子?
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-19 09:33
d12
我的a0脚接的8051地址线上的a0
但是8051地址数据复用
会不会是这个问题?
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-19 10:08
我把a0接高电平还是不行
读来读去都是0000
我又郁闷了
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-19 10:54
你查查reset引脚,说不定你的片子一直在reset呢。
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-19 11:02
我RESET接的是VCC
我一个上午就这么痛苦的过去了
现在连中断都收不到了
@_@
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-19 11:07
说错了,是一直都会收到中断
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-19 15:42
那你读一下有个存储了chipid的寄存器,看能不能读出东西来,如果不能就检查硬件,包括读写信号,数据线地址线,以及片选(如果没有这个寄存器就随便找一个,先写一个值进去再读出来)。
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-19 19:58
请教什么是chipid
是写在code段的pin吗?
pc机发现我的usb 芯片是不是和我的程序没有关系
只要把softconnect 置位就可以了
pc会产生中断吗?
我读到的中断寄存器是00
goodlink会闪3下
然后就到此为止了
一开始的时候不停的进入中断
后来吧int_n接了个上拉电阻到vcc
suspend原来是悬空的
后来接vcc.
我打算重新做个小程序
看看我的中断里面到底读到了个什么
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-20 10:44
你先别想那么远、
你先看看主机方有没有发现usb设备再说,一般是个unknown device,如果没有就是你的softconnect根本没起作用,你就检查一下读写寄存器是否正确吧,就按我说的方法,chpid是一个寄存器,存放了该芯片的一些版本信息,是只读的,如果能读出来说明片子没什么问题,读写也没什么问题。
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-20 11:13
我在中断里面读完interruptregister后设了个端点,程序运行的时候,将usb口插入到pc时产生中断,程序停止,但这个时候pc机就开始发现了usb设备并且goodlink 闪烁3次,运行窗口出现usb的标志。检查clkout也按照我写进去的时钟分频系数改变。

我觉得至少我的setmode是对的。

我后来将中断程序改为只读中断寄存器
遗憾的是,还是读到00

我在我重新做的小程序里面结果pc连usb都找不到了
我哭啊
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-20 11:24
读chipid的命令是什么?我没有找到阿
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-20 16:10
原来你的设备原先主机能发现设备呀,那就说明硬件上没什么问题,很可能是你的软件寄存器设置有些问题,你在仔细看看吧,主要是中断配置寄存器,使能地址0,以及那些初始化的寄存器设置。还有下面的这句话我不大明白,难道你原先还做了什么吗?
“我后来将中断程序改为只读中断寄存器”
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-07-20 16:56
就是按照飞利浦的程序编得中断

后来把中断里面所有的内容都删掉只剩下一开始的读中断寄存器
然后就读到0000


软件寄存器的设置有什么要注意的吗?
unsigned short D12_ReadInterruptRegistervoid)                                    
{
unsigned char b1,b2;
unsigned int j1=0x00000;

outportcmd(0xF4);
b1 = inportb();
b2 = inportb();
        j1=b2;
        j1 <<= 8;
j1 +=b1;
return j1;
}


b1是0
b2是0
j1还是0


usb_isr() interrupt 2
{
         unsigned int in_ist;
         DISABLE;
         in_ist= ReadInterruptRegister();
}
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-07-20 19:13
这个我就不大懂了,为什么原先的程序有后来就没有了呢,找找差别!
blue_wind
驱动中牛
驱动中牛
  • 注册日期2002-11-24
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-07-21 19:52
d12
我的a0脚接的8051地址线上的a0
但是8051地址数据复用
会不会是这个问题?

我也是这么用的,一开始和你情况一样,我还换了快d12,结果还是老一样。后来才发现硬件有问题,我估计你不是d12坏了就是连的有地方不对。
你接上usb,然后soft connect,看看在d+上是不是有大概3v的电压。如果没有,后面就不用谈了。
好东西大家共享,没必要做从复的劳动! 冒着微软的炮火前进!前进!前进!进!
didar
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-07-22 15:21
你硬件大概是那里的问题那

我又换了块板子
先前的那块d12被我给烧掉了
但是现在的这块输出clkout竟然始终为4m
原来的程序一跑到setmode就出不去了

我跟踪的时候就在第一句outportcmd那出的问题
原来的好板子,现在又不在我这里
~~~~~~~~~~~~~~~~>_<~~~~~~~~~~~~~~~~~~~~~~~
急死我了现在
有不知道是硬件问题还是软件问题
一般说来
philips的代码不会出什么问题吧
blue_wind
驱动中牛
驱动中牛
  • 注册日期2002-11-24
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-07-22 16:48
我以前只能写不能读,后来发现把rd漏了。:(
连12m都没有?你好好看看译码电路有没有问题,或地址分配是不是和你的电路一致。你可以先把其他外设去掉,把cs接地,看看能不能得到12m。
好东西大家共享,没必要做从复的劳动! 冒着微软的炮火前进!前进!前进!进!
collen
驱动牛犊
驱动牛犊
  • 注册日期2003-08-03
  • 最后登录2004-02-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-08-29 23:20
我也遇到同样的问题,敬候佳音!!
wildluo
驱动牛犊
驱动牛犊
  • 注册日期2003-07-10
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-08-30 15:49
我的D12更郁闷,
读中断寄存器总返回F4F4。
其实早一段时间枚举已经通过,
后来硬件主要是稍微作了些改动(主要是单片机周围的电路),结果中断脚就一直为低(有效)。
而且读到中断寄存器的值总为F4F4。
读芯片ID, Set_Mode却都工作正常。
该怎么办?
经常碰到这样那样的怪问题,
几乎让我对搞项目失去了兴趣。
我的问题出在哪里?
上一页
游客

返回顶部