bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2837回复:22

长时间读写9052导致死机?

楼主#
更多 发布于:2004-08-31 16:35
我做了一块9052的AD板,驱动是用Driverstudio写的,现在已经可以按300K的速率采到数据,但是如果让它连续采样10分钟以上,有时会使系统死机(WIN2000),有时系统没死,但驱动死了,再也读不到采到的数据和9052的配置数据;不知哪位高手遇到过类似的情况,如能指点一二不胜感激!!!
ABC000
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2004-09-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-01 01:18
That is unstability issue. You need to make sure all control signals meet setup/hold time requirement.
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-01 10:50
有一点得补充一下,我在应用程序不发送IRP读取板上的数据时,板子可以工作很长时间没问题,用示波器监视DA输出非常正确,此时发命令读取9052的配置数据和FPGA以及采样RAM的数据都正确,但是一旦让应用程序依次不断的发送IRP去读板上的采样数据,持续数分钟保持正常后就会导致死机,或者系统没死,但读不到正确的数据,感觉好象是驱动程序与9052的数据交互上出了问题,在保持系统运行情况下,将板子断电然后上电,把驱动更新安装同一驱动,之后板子又可正常工作,但是还和以前一样不能连续长时间发送IRP读取采样数据,否则可能死机;是不是驱动程序存在问题????
hs_49
驱动牛犊
驱动牛犊
  • 注册日期2003-05-14
  • 最后登录2005-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-01 11:16
用中断了吗?是否驱动中有死等的情况??你的上层发IRP的方式是什么方式(BUFFER还是DIRECT OUT/IN??)可能和这些有关。
互相帮助! 互相学习! 我爱编程,我爱驱动!
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-01 11:38
中断暂时没用(屏蔽了),IRP的方式是BUFFER方式,我用MEMERY方式读取AD缓冲RAM的数据,用IO方式读取FPGA的配置数据,只要在非连续发送IRP读取数据时不会有问题,连续读取板上缓冲RAM时会死机,每次都是读完一个IRP然后再发下一个IRP,每个IRP读500个字节数据时大概10分钟后会死掉,读300字节有时可以坚持很长时间,有时大概一个多小时也会死掉,我观察是否死机是将采样得到的数据波形在屏幕上绘出观察,一旦与信号源的波形不一致,或屏幕停止更新时便可发现出了问题,要么死机,要么驱动死掉了???
chengjunjie
驱动小牛
驱动小牛
  • 注册日期2004-06-05
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望44点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-01 12:44
和我的问题很像,不过我是在PLXMON调试环境下发现的问题,读写大量数据就会死机

  关注!!
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-01 13:50
有一次驱动死掉后,用SOFTICE调试,发现应用程序发送的IRP包已经可以让驱动捕获,而驱动程序在执行完读或写操作后,读不到正确数据或写不下正确的指令控制FPGA动作,好象是9052出了什么问题,此时硬件的其他功能(如DA)还能照常工作,只是驱动再也不能正确访问硬件,是不是在某种情况下使9052进入了一个错误的状态,但为什么驱动读写数据的操作还能进行,但得不到正确的数据???而且,更多的时候是直接使系统死掉,根本没法进入SoftICE观察???
hs_49
驱动牛犊
驱动牛犊
  • 注册日期2003-05-14
  • 最后登录2005-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-01 14:38
你的EEPROM中CNTL(50H)中设置的是否有问题?可以仔细看看!可以贴出来看看!
互相帮助! 互相学习! 我爱编程,我爱驱动!
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-01 14:54
CNTRL: 1F204DB6
这样配置有问题吗?
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-01 15:20
EEPROM的配置如下:
00:0FFF FF00
04:0FFE 0000
08:0000 0000
0C:0000 0000
10:0002 0001
14:0000 0001
18:0000 0000
1C:0000 0000
20:0000 0000
24:0000 0000
28:4041 0082
2C:0040 0000
30:0000 0000
34:0000 0000
38:0000 0000
3C:0002 0001
40:0001 0001
44:0000 0000
48:0000 0000
4C:0000 0020
50:1F20 4DB6
我现在用了MEMERY方式,两个片选分别来选中FPGA和RAM,FPGA分配在LAS0共256字节空间,基地址从10000H开始,RAM分配在LAS1公64K字(16BIT)空间,这个配置现在已经可以进行正常读写,就不知死机的原因,请大家分析我的配置是否有问题???谢!!!
chengjunjie
驱动小牛
驱动小牛
  • 注册日期2004-06-05
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望44点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-01 19:50
 片选寄存器应是基地址+范围(右移)。看不太懂你的片选寄存器值
是咋算出来的?
  问错了,请别见笑。







  如有帮助,请给点分
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-09-01 20:23
引用:
片选寄存器应是基地址+范围(右移)。看不太懂你的片选寄存器值
是咋算出来的?
问错了,请别见笑。


我的片选应该没问题,因为已经在非连续快速发IRP包的情况下,在两个片选空间上进行读写没问题!
我是这样算的:
片选一的基地址为20000H,RANGE为256字节
20000H + 100H>>1 =20080H 所以为200081H
片选二的基地址为0H,RANGE为64K WORD 即128K BYTE
0+(20000H)>>1 = 10000H 所以为10001H
不知错在哪里,请指正,谢了!!!
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-01 20:28
可能是一开始输入有错,不好意思
我的片选为
00020081
00010001
算法如上,不知是否有错???
chengjunjie
驱动小牛
驱动小牛
  • 注册日期2004-06-05
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望44点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-09-01 20:39
对的。
死机的问题我也正在研究。
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-02 13:55
我准备用WinDriver再写一个驱动程序,测试我的板子,不知还会不会出现死机的情况,如果不死机就说明用Driverstudio写的有问题,如果还死机就说明我的硬件可能有问题!
不知大家有什么好的建议???
chengjunjie
驱动小牛
驱动小牛
  • 注册日期2004-06-05
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望44点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-09-02 19:52

28:4041 0082

50:1F20 4DB6

 以上配置能否大致 解释一下,什么目的?
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-09-02 21:18
4041 0082 是为了在读写FPGA时加入一点延时,设置详情在PCI9052 DataBooK中有描述。
至于1f20 4db6 我是用的别人原来用过的,没有仔细研究,现在正在考虑,不知你是否有更好的设置,指点一下??
我现在已经发现一个现象,在驱动出问题后,系统还没死的情况下,可以读写9052的配置寄存器,这时我往CNTRL中写入5F204DB6,然后再写入1F204DB6,这时即让PCI软件复位,之后我的板子又恢复正常工作,让我看到了一点曙光,但是还是一头雾水,不知是不是我的配置存在问题,现在正在琢磨,而且我用WinDriver写的驱动也出现了和以前一样的问题,这样我怀疑可能问题多半出在配置上,哪位如果能指点迷津,那在下就真的感激万分,一定高分献上!!!
不知哪为大侠是不是可以将你们成功的配置贴给小弟一看,以做参考???
chengjunjie
驱动小牛
驱动小牛
  • 注册日期2004-06-05
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望44点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-09-02 22:44
我的描述符:00000022
 控制     :00044ED2

 不一定正确,不过你可以试一下
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-09-03 16:40
我试过了,还是不行!
bigsoldier
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-09-03 17:18
我觉得大家来到这个论坛都是为了互相学习,互相交流,以达到共同进步的目的,不管问题回答得对或错,都会给对方一个提示或新的思路,所以我如果遇到自己能够解答的问题,一定会尽量解答清楚,一定不会吝惜我那一点微薄的经验或知识,即使答错了,也是值得尊敬和鼓励的,大家说对不对?
我相信只要大家只要多多交流,一定会共同进步的!!!
同意我的看法的朋友,如果有好的经验和想法,请多与我交流,大家交个朋友,不管对我的问题是否有帮助,都非常感谢!!!
上一页
游客

返回顶部