阅读:2750回复:25
我的枚举过程为什么会有这种情况
我怀疑是硬件问题
每次去读interruptregister 读到的数据总是0000; 然后就一直中断 中断了也不做任何事情就推出了 |
|
沙发#
发布于:2003-07-19 09:24
你用的是什么片子?
|
|
板凳#
发布于:2003-07-19 09:33
d12
我的a0脚接的8051地址线上的a0 但是8051地址数据复用 会不会是这个问题? |
|
地板#
发布于:2003-07-19 10:08
我把a0接高电平还是不行
读来读去都是0000 我又郁闷了 |
|
地下室#
发布于:2003-07-19 10:54
你查查reset引脚,说不定你的片子一直在reset呢。
|
|
5楼#
发布于:2003-07-19 11:02
我RESET接的是VCC
我一个上午就这么痛苦的过去了 现在连中断都收不到了 @_@ |
|
6楼#
发布于:2003-07-19 11:07
说错了,是一直都会收到中断
|
|
7楼#
发布于:2003-07-19 15:42
那你读一下有个存储了chipid的寄存器,看能不能读出东西来,如果不能就检查硬件,包括读写信号,数据线地址线,以及片选(如果没有这个寄存器就随便找一个,先写一个值进去再读出来)。
|
|
8楼#
发布于:2003-07-19 19:58
请教什么是chipid
是写在code段的pin吗? pc机发现我的usb 芯片是不是和我的程序没有关系 只要把softconnect 置位就可以了 pc会产生中断吗? 我读到的中断寄存器是00 goodlink会闪3下 然后就到此为止了 一开始的时候不停的进入中断 后来吧int_n接了个上拉电阻到vcc suspend原来是悬空的 后来接vcc. 我打算重新做个小程序 看看我的中断里面到底读到了个什么 |
|
9楼#
发布于:2003-07-20 10:44
你先别想那么远、
你先看看主机方有没有发现usb设备再说,一般是个unknown device,如果没有就是你的softconnect根本没起作用,你就检查一下读写寄存器是否正确吧,就按我说的方法,chpid是一个寄存器,存放了该芯片的一些版本信息,是只读的,如果能读出来说明片子没什么问题,读写也没什么问题。 |
|
10楼#
发布于:2003-07-20 11:13
我在中断里面读完interruptregister后设了个端点,程序运行的时候,将usb口插入到pc时产生中断,程序停止,但这个时候pc机就开始发现了usb设备并且goodlink 闪烁3次,运行窗口出现usb的标志。检查clkout也按照我写进去的时钟分频系数改变。
我觉得至少我的setmode是对的。 我后来将中断程序改为只读中断寄存器 遗憾的是,还是读到00 我在我重新做的小程序里面结果pc连usb都找不到了 我哭啊 |
|
11楼#
发布于:2003-07-20 11:24
读chipid的命令是什么?我没有找到阿
|
|
12楼#
发布于:2003-07-20 16:10
原来你的设备原先主机能发现设备呀,那就说明硬件上没什么问题,很可能是你的软件寄存器设置有些问题,你在仔细看看吧,主要是中断配置寄存器,使能地址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(); } |
|
14楼#
发布于:2003-07-20 19:13
这个我就不大懂了,为什么原先的程序有后来就没有了呢,找找差别!
|
|
15楼#
发布于:2003-07-21 19:52
d12 我也是这么用的,一开始和你情况一样,我还换了快d12,结果还是老一样。后来才发现硬件有问题,我估计你不是d12坏了就是连的有地方不对。 你接上usb,然后soft connect,看看在d+上是不是有大概3v的电压。如果没有,后面就不用谈了。 |
|
|
16楼#
发布于:2003-07-22 15:21
你硬件大概是那里的问题那
我又换了块板子 先前的那块d12被我给烧掉了 但是现在的这块输出clkout竟然始终为4m 原来的程序一跑到setmode就出不去了 我跟踪的时候就在第一句outportcmd那出的问题 原来的好板子,现在又不在我这里 ~~~~~~~~~~~~~~~~>_<~~~~~~~~~~~~~~~~~~~~~~~ 急死我了现在 有不知道是硬件问题还是软件问题 一般说来 philips的代码不会出什么问题吧 |
|
17楼#
发布于:2003-07-22 16:48
我以前只能写不能读,后来发现把rd漏了。:(
连12m都没有?你好好看看译码电路有没有问题,或地址分配是不是和你的电路一致。你可以先把其他外设去掉,把cs接地,看看能不能得到12m。 |
|
|
18楼#
发布于:2003-08-29 23:20
我也遇到同样的问题,敬候佳音!!
|
|
19楼#
发布于:2003-08-30 15:49
我的D12更郁闷,
读中断寄存器总返回F4F4。 其实早一段时间枚举已经通过, 后来硬件主要是稍微作了些改动(主要是单片机周围的电路),结果中断脚就一直为低(有效)。 而且读到中断寄存器的值总为F4F4。 读芯片ID, Set_Mode却都工作正常。 该怎么办? 经常碰到这样那样的怪问题, 几乎让我对搞项目失去了兴趣。 我的问题出在哪里? |
|
上一页
下一页