完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用FPGA循环产生0-65535的数据,通过CYUSB3014向PC发送,但是第一次填满CYUSB3014的2个buffer后,FLAG_A异常的保持低,过一个较长的时间才重新置高,导致FPGA中数据阻塞丢失。固件设置buffer个数为2,大小为1024。传输的数据为32位,根据signalTap抓取的信号(见下图)可以发现,开始发送数据后,填满第一个buffer时,FLAG_A拉低,但很快回到高电平,进而填充第二个buffer,但是填满后,FLAG_A便出现异常。(相应的控制信号已给出)
但是在之后的数据传输中,如下图所示,FLAG_A保持正常变化。 根据传上来的数据和抓取的时序图中数据的计数,可以发现FLAG_A的异常只出现在了第一次填满两个buffer时。而FPGA中的FIFO设置为32位*32768,因此丢失的数据从32768+第一次被写入的数据长度处开始,根据收上来的数据验证了这个位置。 我们验证了以下的问题: 考虑到是不是PC读取慢了导致CYUSB3014第一次被填满:我们使用可控的触发方式,使得PC进入读取函数后,才开始让FPGA产生数据,但是同样会遇到这个问题,因此不是PC读取慢了。 那么我们想知道什么情况会导致这种问题,或者有没有什么方法可以用于尝试解决该问题或确定该问题的产生原因?非常感谢! |
|
相关推荐
1个回答
|
|
FLAG_A信号异常低的原因可能有多种可能性,以下是一些可能的原因和解决方法:
1. FPGA数据生成速度超过了CYUSB3014传输速度:FPGA可能会在CYUSB3014的缓冲区被填满之前产生过多的数据。当缓冲区被填满时,FLAG_A信号会被拉低,指示缓冲区已满。如果FPGA继续生成数据而没有等待缓冲区传输完成,FLAG_A可能会保持在低电平。解决方法是在FPGA生成数据之前检查FLAG_A信号,如果它已经低电平,则需要等待缓冲区传输完成后再继续生成数据。 2. CYUSB3014缓冲区传输错误:FLAG_A信号低电平可能是由于CYUSB3014在传输数据时发生了错误导致的。这可能是由于硬件故障、传输线路问题或者软件配置错误等原因引起的。解决方法是检查CYUSB3014的硬件连接和配置是否正确,确保没有任何故障或错误发生。 3. 数据信号错误:FLAG_A信号异常低可能是由于数据信号错误导致的。在传输数据之前,应仔细检查数据信号是否正确地连接到CYUSB3014和PC之间,并且没有任何干扰或损坏发生。如果有数据信号错误,应检查数据源(FPGA)和数据接收端(CYUSB3014)之间的连接和配置,确保正确传输和接收数据。 4. 软件配置问题:FLAG_A信号异常低可能是由于软件配置错误导致的。确保在CYUSB3014和PC之间正确配置和设置缓冲区、传输速度和其他相关参数。检查并确保软件配置与硬件连接和要求相匹配。 如果以上解决方法仍然无法解决FLAG_A信号异常低的问题,建议进行更详细的故障排除和调试,例如使用逻辑分析仪进行更详细的信号抓取和分析,或者与供应商或专业威廉希尔官方网站 人员咨询以获得更详细的帮助和支持。 |
|
|
|
只有小组成员才能发言,加入小组>>
756个成员聚集在这个小组
加入小组2124 浏览 1 评论
1866 浏览 1 评论
3682 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1802 浏览 6 评论
1549 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
613浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
456浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
451浏览 2评论
403浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1087浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 19:10 , Processed in 0.989940 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号