NAT9914调试记录

断断续续,折腾了小半年gpib,小个总结

最开始用tms9914+stc89c52,对于tms9914不熟悉,没有参考代码,资料太少,调试手段麻烦,导致一度进展很慢,后来虽然能简单收发数,设地址,单一直都没有严格调通,暂时搁置

采用68013+NAT9914方案,nat9914资料要多得多,这个方案也有调试麻烦的问题,而且,用惯了arm,用51,总有说不出的别扭,调到后来发现硬件上有一些bug,而且项目对于usb传输速度要就业没有那么高,全速就行,最主要68013写eeprom老不成功,也懒得弄了,于是搁置(写了大量代码,算是积累了)

最后采用STM32F103+NAT9914的方案,调试容易得多,很快GPIB可以通过Agilent IO Control找到设备了,这里需要感谢网上找到的一篇论文,“《GPIB接口实现及应用》,陈星燎,陈金树,陈峰,清华大学 电子工程系 计算机应用研究 2003”

里面关于NAT9914编程框架对于我有很多启发和帮助,当然,NAT9914的手册也是必须要看的。

调试的时候发现STM32中断只能边沿触发,而NAT9914中断是电平触发,所以采用查询方式操作,本担心效率不高,但实测效果很好

下面对一些关键点做个记录

1.NAT9914时钟采用STM32定时器3产生12MHz

2.通过STM32生成NAT9914接口时序时,需要有一定延时,经过大量测试,大约80周期延时,72MHz下1.11us左右,否则会出现接收丢数

3.接收时查询MA位,然后根据LA或TA进行收发操作,LA要判断END;TA最后一字节需要发送feoi,有多种方法,具体可以参考手册

4.T1延时尝试从默认的最大2000ns减小到350ns,没看出啥变化,老古董玩意儿,对速度没啥要求,也没细看

5.用Agilent IO Control USB-GPIB进行refresh时,收到*IDN?前后,会接收到大量0x0a 和0xff之类的数,也不知Agilent怎么操作细节,在程序里干脆把收到的数0x0a和0xff全丢弃,这样效果还不错。

 

最后在元宵节前,祝自己新的一年有所进展

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值