dsp与fpga通信之dsp在nwrite时如果带门铃信号,完成传输的时间会很长

    现象:dsp在nwrite完成会发送一个nwrite finished的门铃信号,计时dsp的单次发送传输时间会很长,达到秒级别
    分析:多种尝试后,发现nwrite不加门铃,传输时间是正常的,因此怀疑门铃发送问题;网上查了有类似问题,提到一个关键问题,门铃信号是要有response信号的,查询dsp的状态寄存器也确实是指示传输超时;fpga端的代码没有对门铃做response处理,因此基本确认问题的根源。
    srio手册中“SP_RT_CTL”说明如下:
    Timeout value for all ports on the device. This timeout is for sending a packet to receiving the corresponding
response packet. Max value represents 3 to 6 seconds. The timeout duration can be expressed as:
Timeout = 15 x((Prescale Value + 1) x DMA Clock Period x Timeout Value)
where Prescale Value is set in PER_SET_CNTL (offset 0020h) and the Timeout Value is the decimal representation
of this register value. For example, given a 400 MHz DMA, a Prescale Value of 4, and a Timeoout Value of FFFFFFh,
the Timeoout duration would be:
Timeout = 15 x((4 + 1) x 2.5 ns x 16777216) = 3.15 s
    查dsp的寄存器确实是0xFFFFFF,为最大时长的超时时间,这个值我在初始化时是没有配置的
    解决:将SP_RT_CTL设置为0,测试的结果和无门铃的方式基本相同。
    

    补充:fpga这边增加response信号,应该也可以正常,目前还未验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值