完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!我正在开发一个数据链,从FPGA上的测试系统通过GPIF II和FX3到PC主机。我用FX3和主机(控制中心,…)的演示应用程序进行了第一次测试。目前,我在主机上有一个问题,即中断程序和BulkJin。我在主机上有一个C 2应用程序,用于发送和接收数据。将数据发送到测试系统是完美的。但我收到以下问题:中断端点:如何检测中断?在CYUSB .NET引用中没有示例…任何标志或例程,没有描述中断端点精确BulkJiNi端点的文档:超时问题或数据长度……我不确定,不能从BulkJiNi端点连续编程一个接口来连续读取。系统通过发送命令在发送线程后发送数据,谢谢!
以上来自于百度翻译 以下为原文 Hi! I'm developing a chain for data transfer from a testing system with a FPGA over GPIF II and FX3 to a PC-Host. My first tests with the demo applications for fx3 and the host ( Control Center,...) were successful. At the moment I have a Problem with the endpoint on the host, Interrupt_In and Bulk_In. I have on the host a c#-application with 2 threads for transmit and receive data. sending data to the testing System works perfect. But I'm having following Problems while receiving: Interrupt endpoint: how can I detect an Interrupt? there is no example in the CyU*** .Net Reference...any flag or Routine, there is no document which describe the Interrupt endpoint exactly Bulk_In_Endpoint: timeout problems or data length...i'm not sure and not able to programm a interface to read continuously from a bulk_in_endpoint. The System sends data after starting by sending the command over the transmit_thread....Thank you in advance! |
|
相关推荐
4个回答
|
|
在这个意义上,中断实际上是一个误称。端点实际上不发送中断,您必须轮询它以获取数据。您是否尝试使用控制中心来进行IN传输以隔离该问题是否与固件或主机应用程序有关?问候,阿南德
以上来自于百度翻译 以下为原文 Interrupt is actually an misnomer in this sense. The endpoint doesn't actually send an interrupt, you'll have to poll it to get the data. Have you tried using control center to do the IN transfer to isolate whether the issue is with the firmware or the host application? Regards, Anand |
|
|
|
好的,但是如何在中断情况下进行有效的轮询?我找到了一个称为bTalk的端点描述符属性,它用来指定某些传输的轮询间隔。但是值总是0,在Cy***. DLL.NET中,它只是一个get函数。当用XFER()读取数据并获得错误返回时,端点传输被阻塞。是的,我先尝试了控制中心和单机传输工程。在从FPGA的突发写入模式中,我得到固件的回调函数中的数据并将它们发送到端点。但是,在主机上的BulkJooEtPoT中,用XFelDATA()返回错误。我目前不知道,谁来连续检查主机上的端点?xx,而不规则的数据可以来自测试系统而没有崩溃端点…
以上来自于百度翻译 以下为原文 ok, but how can i effective poll in the Interrupt case? i found an endpoint describtor property called bInterval, which is used to specify the polling interval of certain transfers. but the value is always 0 and in the CyUSb.dll .NET it is only a get-function. and when reading data with Xfer() and getting a false-return, the endpoint Transfer is blocked. Yes, i tried first with the control Center and the single Transfer works. in the burst write mode from the fpga i get the data in the callback-function of the Firmware and send them to the endpoint. but the in-Transfer on the bulk_endpoint on the host with XferData() returns with false. i currently have no idea, who to check continuously the endpoint_XX on the host, while irregular data can come from the testing System without a crashing endpoint.... |
|
|
|
单次转移与突发性转移的差异不大。您只需排队请求即可实现。应用程序中的单次传输是否正常工作?你可能想确保部分是正确的,然后尝试传输突发。BTAL作为描述符的一部分由设备提供。所以只有它有一个与它相关的get函数。你只需要根据你的需求排队传输一批。较低的驱动程序堆栈将负责轮询间隔。使用异步传输(BeaDimaTaxFr/WaITFrxFelf/FixSHIFER),如果您尝试做流式应用程序,将为您提供更好的吞吐量和轮询一致性。您可以使用我们的SULILE应用程序作为SUITEUSB的一部分来作为开发代码的参考。
以上来自于百度翻译 以下为原文 There is not much difference between single transfer and burst of transfers. You just queue the requests to achieve that. Does single transfer work properly in your application? You might want to make sure that part is right before trying burst of transfers. bInterval is provided by the device as part of the descriptor. So only it has a get-function associated with it. You just have to queue bunch of transfers based on your requirement. The lower driver stack will take care of the polling interval. Using asynchronous transfer (begindataxfer/waitforxfer/finishxfer) will give you better throughput and polling consistency if you're trying to do a streaming application. You can use our streamer application that comes as part of suiteu*** as reference to develop your code. |
|
|
|
单次转移与突发性转移的差异不大。您只需排队请求即可实现。应用程序中的单次传输是否正常工作?你可能想确保部分是正确的,然后尝试传输突发。
BTAL作为描述符的一部分由设备提供。所以只有它有一个与它相关的get函数。你只需要根据你的需求排队传输一批。较低的驱动程序堆栈将负责轮询间隔。使用异步传输(BeaDimaTaxFr/WaITFrxFelf/FixSHIFER),如果您尝试做流式应用程序,将为您提供更好的吞吐量和轮询一致性。您可以使用我们的SULILE应用程序作为SUITEUSB的一部分来作为开发代码的参考。 以上来自于百度翻译 以下为原文 There is not much difference between single transfer and burst of transfers. You just queue the requests to achieve that. Does single transfer work properly in your application? You might want to make sure that part is right before trying burst of transfers. bInterval is provided by the device as part of the descriptor. So only it has a get-function associated with it. You just have to queue bunch of transfers based on your requirement. The lower driver stack will take care of the polling interval. Using asynchronous transfer (begindataxfer/waitforxfer/finishxfer) will give you better throughput and polling consistency if you're trying to do a streaming application. You can use our streamer application that comes as part of suiteu*** as reference to develop your code. |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2113 浏览 1 评论
1859 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1794 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
581浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
434浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
445浏览 2评论
393浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1015浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 21:34 , Processed in 0.825910 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号