在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 4135|回复: 8

PCI设备无法获得GNT#的可能原因

[复制链接]
发表于 2009-1-13 16:51:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
PCI总线上只挂有一个设备,当其要进行DMA传输的时候,发出REQ请求后,却一直得不到GNT,表现在总线上GNT信号一直为高!
大家帮忙列举下可能造成这种现象的可能原因,好给我些提示,谢谢!
 楼主| 发表于 2009-1-13 17:19:43 | 显示全部楼层
一般情况下是不是只要有设备发出REQ,总线仲裁器都会给出GNT?我现在总线上就一个设备,应该不存在优先级的问题吧。
发表于 2009-1-14 13:45:27 | 显示全部楼层
你的IDSEL怎么连的
 楼主| 发表于 2009-1-14 14:31:43 | 显示全部楼层
从原理图上看,好像是串接一个1K的电阻后接地
发表于 2009-1-14 15:33:51 | 显示全部楼层
我也遇到了这个问题,楼主解决了吗
发表于 2009-1-14 16:07:30 | 显示全部楼层
了解先
 楼主| 发表于 2009-1-14 16:17:52 | 显示全部楼层
没有解决啊,对PCI总线协议不熟,期待熟悉PCI协议的多能给些提示。不知道到底有哪些因素会引起设备发出REQ,却无法获得GNT,按照我的想法应该是设备发出REQ后,经过仲裁后应该就要给出GNT的。而且确定了总线仲裁器是没问题的,现在就考虑有哪些总线信号,或者PCI配置参数会影响仲裁。
发表于 2009-2-16 10:54:07 | 显示全部楼层
PCI总裁器和其他的信号基本没关系,他基本上只看REQ#信号,甚至都不需要检测FRAME#和IRDY#来判断总线空闲与否,因为总裁器是一个隐形仲裁的过程。因此跟IDSEL等根本没有关系。
但PCI信号的REQ#和GNT#信号是成对使用的,即一个设备用了REQ0#,那么他相应的GNT#信号要接到总裁器的GNT0#信号上,这要检查你的REQ#信号和GNT#信号在物理连线上是否正确。
首先检查一下总裁器端的REQ#信号, 看当前设备发出的REQ#信号是否送给总裁器,其再判断总裁器输出的GNT#信号,如果有的话,再判断这个GNT#信号是否送到了你现在的设备上。我觉得最主要的原因可能是你的REQ#和GNT#没有成对使用,或者是仲裁器有问题。

还有就是有些PCI设计中对REQ#和GNT#有上拉电阻(PCI协议里规定是不需要的),如果有的话,检查一下这个上拉电阻的阻值,通常不能太小,需要一个上K的电阻。

我所知道的就这么多,希望对你有帮助。
发表于 2009-2-16 12:34:05 | 显示全部楼层
恩,楼上说的有道理,不要怀疑仲裁器,要看看REQ#和GNT#是否连接正确
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-10 20:03 , Processed in 0.024933 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表