完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我的训练将16位、单声道音频数据在从SPI接口的48kHz~USB主机。为此我使用单通道DMA在无限循环(;;)如下, (;) { //获取缓冲区 音频数据的拷贝 /提交缓冲区 } 将每秒字节数为2(16位)* 48000 = 96000。但从上面的顺序我只能转移~ 85000(即一个计数器变量递增每个DMA后提交)。请帮助我达到要求的数量。 谢谢和问候, 维格涅什库马尔R 以上来自于百度翻译 以下为原文 Hi, I am training to transmit the 16 bit, Mono channel audio data at 48KHz from SPI interface to USB host. For this I am using Single channel DMA in a infinite for(;;) loop as follows, for(;;) { //Get buffer //Memcopy for audio data //Commit buffer } Number of bytes to be transferred per sec is 2(16 bit) * 48000 = 96000. But from the above sequence I can only transfer the ~85000 (i.e. A counter variable is incremented after every DMA commit). Please help me to achieve the required number. Thanks and Regards, Vignesh Kumar R. |
|
相关推荐
7个回答
|
|
你好,Vignesh Kumar,
请让我们知道您使用的缓冲区大小和缓冲区计数。 此外,还提到端点的类型和使用的突发长度。 最好的问候, 斯里纳斯 以上来自于百度翻译 以下为原文 Hello Vignesh Kumar, Please let know the buffer size and the buffer count that you are using. Also, mention the type of endpoint and the burst length used. Best regards, Srinath S |
|
|
|
嗨,Srinath, 谢谢你的回复。我配置如下, 缓冲区大小48。缓冲区数目10。端点类型同步端点与维修间隔值为3(投票发生两次在毫秒)。多重和突发长度为零。 维格涅什库马尔R 以上来自于百度翻译 以下为原文 Hi Srinath, Thanks for your response. I configured as follows,
Vignesh Kumar R. |
|
|
|
楼丞紫澈 发表于 2018-9-3 19:42 你好,Vignesh Kumar, -你能用一个分析器捕获USB流量并共享吗? -同时,请检查CyU3PDMACHANEngEngEngFulter()API是否为所有事务返回成功。 最好的问候, 斯里纳斯 以上来自于百度翻译 以下为原文 Hello Vignesh Kumar, - Can you capture the USB traffic using an analyzer and share the same? - Also, kindly, check if the CyU3PDmaChannelCommitBuffer() API returns success for all the transactions. Best regards, Srinath S |
|
|
|
wangcong12138 发表于 2018-9-3 19:54 嗨,Srinath, 我将分享你所要求的细节。在此之前,我想注意一件事,我在Cyu3PDMACHANEL GETBUFER()中使用CYU3PYAWITITY。如果我使用Cyu3PyNosiWalt,我得到了时间错误,如果我能连续获得缓冲,那么吞吐量会增加。你能对此发表评论吗? 最好的问候, 维格涅什库马尔R 以上来自于百度翻译 以下为原文 Hi Srinath, I will share the details that you asked. Before that I want to notice one thing, I am using CYU3P_WAIT_FOREVER in CyU3PDmaChannelGetBuffer(). if I use CYU3P_NO_WAIT I am getting time out error, if I can get buffer continuously then the throughput will get increase. Can you please comment on this. Best regards, Vignesh Kumar R. |
|
|
|
楼丞紫澈 发表于 2018-9-3 20:05 你好,Vignesh Kumar, -请让我们知道DMA通道的类型是手动还是(OR)自动。 由于您已经使用缓冲区计数为10,只要主机应用程序正在连续读取数据,缓冲区将可用于每一个CYU3PDMACHANEL GETBUFFER()API调用。因此,可以使用CyuU3PyNosiWalt。 此外,如果您使用CYU3PYWAITYA永久超时,则GETBuffic API不应在回调函数内调用。请确保这一点。 此外,请提供在以前的互动中要求的细节。 最好的问候, 斯里纳斯 以上来自于百度翻译 以下为原文 Hello Vignesh Kumar, - Please let know the type of DMA channel that is being used as to whether MANUAL (or) AUTO. - Since you have used the buffer count as 10, buffers will be available for every CyU3PDmaChannelGetBuffer() API call as long as the host application is reading the data continuously. So, CY_U3P_NO_WAIT can be used. - Also, in case you are using CYU3P_WAIT_FOREVER timeout, the GetBuffer API should not be called inside a callback function. Kindly, ensure this. Also, please provide the details asked in the previous interaction. Best regards, Srinath S |
|
|
|
wangcong12138 发表于 2018-9-3 20:18 嗨,Srinath, 通过增加缓冲器计数(缓冲计数=100,以前是10),可以实现吞吐量(每秒96000字节)。但是我仍然不能在GETBuffReor()API中使用CyuU3PyNosiIt,它给出了超时错误。DMA配置如下: 手动DMA通道。在这里我已经创建了一个音频数据提交线程,在那个线程中,我只使用GETBaseAPI。 最好的问候, 维格涅什库马尔R 以上来自于百度翻译 以下为原文 Hi Srinath, I can achieve the throughput (96000 bytes per second) by increasing the number of buffer count (Buffer count = 100, previously it was 10). But still I cannot use CY_U3P_NO_WAIT in GetBuffer() API, it gives timeout error. Dma configuration is as follows,
Best Regards, Vignesh Kumar R. |
|
|
|
楼丞紫澈 发表于 2018-9-3 20:35 你好,Vignesh Kumar, 请在DMA通道创建中使用CONS事件通知。在DMA-CONS事件的回调函数中,使用GETBuffER()API和CuffBuffReor()API。此方法将确保当USB端点从FX3设备消耗数据时调用GETBuffER()API。示例实现可以在带有FX3SDK1.3.4的UBBulkSuthsCink示例固件中看到。 请测试一下,让我们知道。 最好的问候, 斯里纳斯 以上来自于百度翻译 以下为原文 Hello Vignesh Kumar, Please use a CONS event notification in the DMA channel creation. In the callback function for the DMA CONS event, use the GetBuffer() API and the CommitBuffer() API. This method would ensure that the GetBuffer() API is called when the USB endpoint consumes data from the FX3 device. The example implementation can be seen in U***BulkSourceSink example firmware that comes with the FX3 SDK 1.3.4. Kindly, test it and let know. Best regards, Srinath S |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2105 浏览 1 评论
1851 浏览 1 评论
3669 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1786 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
570浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
423浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
437浏览 2评论
384浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
915浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:55 , Processed in 1.056728 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号