完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的系统由FPGA和FX3组成。
将pKTANKα单插入到数据的最后一个字,每个FX3缓冲器的SIZEF设置为16KB。 我不知道为什么那台PC什么也没收到,当我发送多个1KB数据,但小于16KB,从FPGA到FX3。 有人告诉我,当每个FX3缓冲区的大小被设置时,我如何发送多个1KB数据,但小于16KB? 16kb。 谢谢 以上来自于百度翻译 以下为原文 My system is composed with FPGA and FX3. The PKTEND# single was inserted along with the last word of data, and the sizeof of every FX3 buffer was set 16KB. I don't know why that PC received nothing, when i sent multiple of 1KB data ,but smaller than 16KB, from fpga to FX3. Can somebody tell me how can i send multiple of 1KB data ,but smaller than 16KB,when the sizeof of every FX3 buffer is set 16KB. Thanks |
|
相关推荐
30个回答
|
|
Suyang
请创建一个技术支持案例,以便我们的客户支持工程师帮助您解决您的问题。 如果你需要任何帮助来创建技术支持案例,请告诉我。 谢谢, Sai Krishna。 以上来自于百度翻译 以下为原文 Suyang, Please create a tech support case so that one of our customer support engineer helps you in solving your issue. Let me know if you need any help in creating the tech support case. Thanks, Sai Krishna. |
|
|
|
苏阳208
正如Lumpi指出的,PPAR缓冲区内容不会自动转移到USB端直到缓冲区满。如果你将1KB的数据外部源发送到更大尺寸的从FIFO缓冲器(在你的情况下是16 KB),你需要用SLWR和SLCS信号来断言PKKED信号用于最后一个字的写入。 假设您使用的是作为GPIF 2设计器的示例项目提供的从FIFO状态机。它应该工作得很好 或者,你可以试试我在Zip文件中附加的状态机和固件。 该状态机类似于从FIFO示例项目所提供的,除了对于短包(小于16kb的任何),而不是在GPIF状态中执行提交动作,使用内部CPU动作来生成中断,并且在使用CYU3PDMACHANNEL SETRAWAPUP()API的固件中执行提交动作。h被称为iCyfxAppngPIFEncIf()函数(为内部CPU动作注册的回调函数)。您还可以添加UART调试打印来检查回调是否正在发生。 当做 穆达比尔卡比尔 以上来自于百度翻译 以下为原文 Hi suyang208, As Lumpi pointed out, the PPORT buffer content will not transferred automatically to USB end till the buffer is full. If you are sending 1KB of data external source to Slave Fifo buffer of bigger size (16 KB in your case), you need to assert PKEND signal with SLWR and SLCS signals for last word write. I assume you are using the Slave Fifo state machine provided as example project with GPIF 2 designer. It should work fine Alternatively, you can try with the state machine and firmware I have attached in the .zip file.. This state machine is similar to Slave Fifo example project provided except that , for short packets (anything less than 16KB) instead of doing COMMIT action in GPIF state, interrupt is generated using INTR_CPU action and commit action is done in the firmware using CyU3PDmaChannelSetWrapUp() API which is called in CyFxApplnGPIFEventCB() function ( Registered callback function for the INTR_CPU action) . You can also add UART debugprints to check if callback is happening. Regards Mudabir Kabir |
|
|
|
我很抱歉。我无法在这里上传文件。下面是附件的链接。
HTTPS://DOCS.GoGoLe.COM/FIL/D/0B-EPQWXSNA3LUEN WRZTRBTCXR1E/EDGE?USP =共享 当做 穆达比尔卡比尔 以上来自于百度翻译 以下为原文 I am sorry. I couldnt upload the files here. Here is the link to the attachment. https://docs.google.com/file/d/0B-EPqwXSNA3lUENWRTZRbTcxR1E/edit?usp=sharing Regards Mudabir Kabir |
|
|
|
嗨,Mudabir Kabir,谢谢你的回答!
按照您的建议,当发送数据大小为1KB(小于16KB)的非整数倍时,它将工作,就像1KB+4B。 但是,当大小为1KB的倍数时,它不起作用,当URB的大小与DMA缓冲器的大小(16KB)相同时,结果与PC不能接收任何数据包相同。 以上来自于百度翻译 以下为原文 hi, Mudabir Kabir, thanks for your answer! Following your advice,it will work when sent data size of whick is non-integer multiples of 1KB(less than 16KB),just like 1KB+4B. But it doesn't work when the size is multiples of 1KB,the result is the same that pc can't receive any packet ,when the size of urb is set the same as the size of the dma buffer(16KB). |
|
|
|
你好,
你能详细说明一下你的申请,以便我们能进一步帮助你吗? 你使用的外部主机是什么?对于一个16 kb的缓冲器,1kb或1kb+4字节,都被认为是短数据包,并且在用SLWR和SLCs断言PKDENATION时,数据应该被提交到USB端。 在上一篇文章中,在使用中断CPU方法时,您是否看到回调发生。(可以使用UART调试检查)。这将有助于判断问题是从FIFO状态机还是外部主控器。 当做 穆达比尔卡比尔 以上来自于百度翻译 以下为原文 Hi, Can you elaborate about your application so that we can help you further. What is the External Master you are using. For a 16 KB buffer, 1KB or 1KB+4 bytes , both are considered short packets and on asserting PKEND signal with SLWR and SLCS, the data should be committed to USB end. In the previous post , on using interrupt CPU method, did you see callback occuring. ( You can check using UART debugs). This will help tell if the problem is with the Slave Fifo state machine or external master. Regards Mudabir Kabir |
|
|
|
您好!
你是在尝试控制中心还是定制应用?如果自定义应用程序,您可以尝试使用控制中心。当URB的大小与DMA缓冲器的大小(16KB)相同时,“PC不能接收任何数据包”是什么意思? 当做, 加亚特里 以上来自于百度翻译 以下为原文 Hi Are you trying fro Control center or custom application? If custom application, can you try with Control center. What do you mean by "pc can't receive any packet ,when the size of urb is set the same as the size of the dma buffer(16KB)"? Regards, Gayathri |
|
|
|
你好。
整个问题在附图中描述。 我不知道红色部分的原因,我怎样才能通过FPGA发送1KB数据的倍数。 问:BMP 2兆字节 以上来自于百度翻译 以下为原文 Hi . The whole question is described in the attached Image. I don't know the reason of Red Part, and how can i to send the multiples of 1KB data by FPGA.
|
|
|
|
HI,在PC应用中,必须向USB驱动器提供多到包大小的缓冲器,以执行从设备读取。USB驱动器将在完成整个缓冲区时完成读取操作,或者接收来自设备的短包(数据包中的数据量小于最大包,但不为零)或零长度包(ZLP,包中的数据量为0)。因此,如果您希望在PC应用程序中接收分组大小(1KB)的数据块,那么可以在那里提供一个分组大小的读缓冲区。如果提供更大的缓冲区,则设备必须发送短包或ZLP以强制PC中的读取操作提前完成。如果你用最后一个数据同时声明PKKADE,那么FX3在FX3缓冲器中的数据量不是多到包大小的情况下提交数据到PC.,发送到PC的最后一个包将是自然短包。这就完成了PC中的读操作。如果缓冲区中的数据是多个包大小,那么最后一个包将是完整的包。当然,这并不能完成在PC.的阅读,在这种情况下,你必须强迫FX3发送额外的ZLP。
Kalev 以上来自于百度翻译 以下为原文 Hi, In PC application, multiple to packet size buffer must be provided to USB driver to perform read from device. USB driver will complete the read operation when the whole buffer gets fulfilled, or, it receives Short Packet (data amount in packet is less than max packet, but not zero) or Zero Length Packet (ZLP, data amount in packet is 0) from device. So, if you want to receive packet size (1KB) chunks of data in PC application, you can provide just a packet size read buffer there. If you provide bigger buffer then device must send Short Packet or ZLP to force the read operation in PC to complete prematurely. If you assert PKTEND simultaneously with last data then FX3 commits data to PC. In cases where data amount in FX3 buffers is not multiple to packet size, the last packet sent to PC will be naturally Short Packet. And this completes read operation in PC. If data in buffers is multiple to packet size, then the last packet will be the full packet. And of course this does not complete the read in PC. You have to force FX3 to send extra ZLP in this case. Br, Kalev |
|
|
|
嗨,谢谢你的回答!
我使用了额外的ZLP,但是一些不能理解的现象显示了附加图像。 问题解决方案 2.4兆字节 以上来自于百度翻译 以下为原文 Hi,thanks for your answer ! I used extra ZLP ,but some phenomenon which could not be understood occured ,shown the attach image.
|
|
|
|
你是不是在断言SLWR同时宣称PKKNADE?如果是这样,尝试在断言SLWR之后给出一个周期延迟,然后断言PKKAND信号。
当做 加亚特里 以上来自于百度翻译 以下为原文 Are you deasserting the SLWR and asserting PKTEND at the same time? If so, try giving one cycle delay after deasserting the SLWR and then assert PKTEND signal. regards Gayathri |
|
|
|
在断言SLWR之后,我给出了4个周期的延迟,然后断言PKKAND信号,但是结果是相同的。
以上来自于百度翻译 以下为原文 I have given four cycles delay after deasserting the SLWR and then assert PKTEND signal,but the result was the same. |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2100 浏览 1 评论
1846 浏览 1 评论
3664 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1782 浏览 6 评论
1532 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
560浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
410浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
433浏览 2评论
379浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
905浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 19:07 , Processed in 0.961436 second(s), Total 66, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号