完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当请求来自主机时,我需要能够从FX3中发送4字节。我正在使用一个音频反馈应用程序。我已经通过使用固件项目AbbBulkSuthCink进行了努力。我将端点配置更改为
CYU3PMESET((UIT88T**)和EPCFG,0,SIZEOF(EPCFG));EPCFG使能= CyTress;EpCFG.EpType = CyuU3PUSbBeEpSub;EpCF.BurSTLLN=(UBSTEED= = CyuU3PySuffi Survivin)?(CyfxxEpp-BurSTyLead长度):1;EpCFG.PCKTSIZE=4;DMA设置DMACFG大小=16;DMACFG计数=1;DMACFG.PRODSCKID=CyuU3PycPUCKEKYOPRD;DMACFG.CascSKID=CyfxfxEpCuffeleSerkSoad;DMACFG.dMAMODE=CyuU3PyDMAYMDEDEB字节;DMACFG.IStiON = CyuU3PyDMAYBCBIOXIGEL事件;DMACFG.CB=CyfxBulkSrcSnkdCMACARBACK;DMACFG.PRODHOMED=0;DMACFG.PRODHOPETER=0;DMACFG.CONSEADADER=0;DMACFG.PRODFACCESSUTCOUNT=0;我已经初始化了DMA缓冲区,具有计数模式0, 1, 2…14, 15。当我尝试控制中心的例子时,我在运输中得到以下的0000,00,01,02,03,散装,在运输中完成的散货,0000,08,09,0A,0B,在运输中完成的散装,在运输0000中完成的散货0000 01 01 02散装在运输中完成的散装货物在传输完成时,00×08 0A 0B 0B块看起来好像它发送了前4个字节,然后跳过下一个4字节,然后发送下一个4字节。最后的4个字节被跳过,因为我只有1个DMA缓冲器,它再次从顶部开始。我希望它能发送前4个字节,然后用前4个字节重新开始。我还有一个回调函数,但是这只会在每隔一个时间调用(在08个09 0A 0B字节)上。索尼能解释发生了什么事吗?谢谢乔恩 以上来自于百度翻译 以下为原文 I need to be able to send 4 bytes out of the FX3 when a request comes from the host. I am using an audio feedback application. I have exerprimented by using the firmware project USBBulkSourceSink. I changed the endpoint config as below CyU3PMemSet ((uint8_t *)&epCfg, 0, sizeof (epCfg)); epCfg.enable = CyTrue; epCfg.epType = CY_U3P_USB_EP_BULK; epCfg.burstLen = (u***Speed == CY_U3P_SUPER_SPEED) ? (CY_FX_EP_BURST_LENGTH) : 1; epCfg.streams = 0; epCfg.pcktSize = 4; And the DMA setup dmaCfg.size = 16; dmaCfg.count = 1; dmaCfg.prodSckId = CY_U3P_CPU_SOCKET_PROD; dmaCfg.consSckId = CY_FX_EP_CONSUMER_SOCKET; dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; dmaCfg.notification = CY_U3P_DMA_CB_CONS_EVENT; dmaCfg.cb = CyFxBulkSrcSinkDmaCallback; dmaCfg.prodHeader = 0; dmaCfg.prodFooter = 0; dmaCfg.consHeader = 0; dmaCfg.prodAvailCount = 0; I have initilised the DMA buffer with a counting pattern 0, 1, 2 ... 14, 15. When I try the example in control centre I get the following BULK IN transfer 0000 00 01 02 03 BULK IN transfer completed BULK IN transfer 0000 08 09 0A 0B BULK IN transfer completed BULK IN transfer 0000 00 01 02 03 BULK IN transfer completed BULK IN transfer 0000 08 09 0A 0B BULK IN transfer completed So it seems that it sends the first 4 bytes, then skips the next 4 bytes, then sends the next 4 bytes. The last 4 bytes are skipped then as I have only 1 DMA buffer it starts from the top again. I was expecting it to send the first 4 bytes then start again with the first 4 bytes. I also have a callback function but this only gets called every other time (on the 08 09 0a 0b bytes). Can somone explain what is happening? Thanks Jon |
|
相关推荐
2个回答
|
|
我发现我需要改变以下功能
状态= CYU3PDMACHANNEL COMPASTROM缓冲区(CHRAAD,BUFYP大小,0); 到 /状态= CYU3PDMACHANNEL COMPACTION缓冲区(CHRAAD,4, 0); 以上来自于百度翻译 以下为原文 Just worked out that I needed to change the following function status = CyU3PDmaChannelCommitBuffer (chHandle, buf_p.size, 0); to /status = CyU3PDmaChannelCommitBuffer (chHandle, 4, 0); |
|
|
|
正确的。感谢更新线程。
谢谢, 西克里希纳。 以上来自于百度翻译 以下为原文 Right. Thanks for updating the thread. Thanks, sai krishna. |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2111 浏览 1 评论
1858 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1792 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
579浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
432浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
442浏览 2评论
391浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
981浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 14:26 , Processed in 0.888571 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号