完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好,
我正在开发一个USB 3视觉应用在CX3 MCU(使用DeNBOLA板和SNESOR OV5640)。我在启动GeICAM XML时遇到了一些麻烦。 我设法写一个固件为Cx3的帮助下的FX3笔记上的U3V和UVC的例子。到目前为止,该设备开始正确地创建3个DMA信道(DCICOMMAN,DCIREST和DSI多通道)。处理U3V命令所需的前2个是在StisCONFUSB事件被触发之前启用的。第三个仅配置并且未启动(因为一旦启用了启动启动,它将启动)。 有2个线程:一个用于U3V命令和响应,另一个用于流媒体。 因此,我启动主机应用程序,它将设备检测为USB 3视觉。一切都好。 然后,当我启动应用程序时,主机应用程序日志告诉我XML被检测到** MyMyAddio*,但是我得到了一个错误,表示内存读取错误。因此,使用USB嗅探器工具来查找USB打包原始数据,我设法发现在内存读取过程中没有错误,但是在某个点上,有大容量端点(DCICOMMand通道)的“中止管道”。 我已经调试了代码,但是找不到中止操作发生的代码段。有没有人找到他/她自己? 为了增加一些奇怪性,如果我在XML请求之前启动一切,XML下载就可以工作。DSIMultiChannel、MIPI-CSI和传感器(休眠模式)。 但是无论如何,我找不到为什么在安装过程中不使用流媒体的原因。 希望我解释得足够好。 谢谢。 堕胎 64.4 K 以上来自于百度翻译 以下为原文 Hello, I am developing a u*** 3 vision application in a CX3 MCU (using the Denebola board and snesor OV5640). I have encountered some trouble trying to launch download the Genicam XML. I managed to write a firmware for the CX3 with the help of the FX3 note on the U3V and UVC examples. So far the device starts correctly creating 3 dma channels (DCICommand, DCIRespond and DSIMultichannel). The first 2 as are needed to process any u3v command are enable just before the SET_CONF u*** event has been trigger. The third one is only configured and is not started (as it will start once the acquisition start is enabled). There are 2 threads: one for U3V Commands and respond, and another for streaming. So, I start the host application which detects the device as a USB 3 VISION. Everything ok. Then, when I start the application, the host app log tells me that the XML is detected @*MEM_ADDRESS*, but then I got an error saying that a memory reading error. So, using a USB sniffer tool to find the u*** packects raw data, I managed to find out that there is NO error during memory reading, but that at some point there is an "Abort Pipe" of the In Bulk Endpoint (DCICommand Channel). I have debugged the code but I cannot find the code segment where the abort operation is happening. Does anyone have found him/herself with this? To add some weirdness, the XML download works IF I start everything before the XML request. DSIMultiChannel, MIPI-CSI, and sensor (sleep mode). But anyway, I cannot find any reference why is happening when the streaming is NOT used during the setup. Hope I explained good enough. Thanks.
|
|
相关推荐
5个回答
|
|
你好,
当你看到主机端上的USB中止时,你会在设备端看到任何USB事件吗?(在UBE文案回调中) 请让我们知道设备端的调试日志的细节。 当做, - Madhu Sudhan 以上来自于百度翻译 以下为原文 Hi, When you see the USB abort on the host side, correspondingly do you see any USB Events on the device side? (In the USBEventCallback) Please let us know the details of debug logs on the device side. Regards, - Madhu Sudhan |
|
|
|
|
|
|
|
60user198 发表于 2018-10-2 19:41 更新!! 我发现了这个问题。初始化后,我正在分配DSI端点配置VAR。 因此此刻我可以发送有效载荷数据。但是由于在SM内没有提交(每个提交都是在回调中完成的),所以我有问题要发送领导者/拖车包。 所以我尝试只发送一帧。不幸的是,我不能在DMACallback中发送领导者/预告片,所以我决定创建一个从CPU到DSI端点并发送领导者的新的DMAChank。然后销毁它并从GPIF到DSI端点创建多通道以发送有效载荷数据。最后,重新创建另一个频道并发送预告片。 我成功地取得了领导和有效载荷,但我不能发送拖车。有什么想法吗? 代码: ---------------------- 状态= CYU3PDMAulultChurnEngRead(&GLCHANDRALUVCSTROW); 如果(状态)!= CYU-U3PY成功){ CYU3pDebug(4),“CYU3PDMACHANNELSER,错误代码= %DNR”,状态; Cycx3ApPrRrand处理程序(状态); } CYU3PUBFLUSSHEP(CX3AEPDSI); CurtEdTraceLaySaleIn通道(); 状态= CYU3PDMACHANNEL GETBASIC(&GLCHHEAD THESTROSTROW,ANP;DMABUFFER,CYU3PY NosiWAIT); 如果(状态)!= CYU-U3PY成功){ CYU3pDebug打印(4,\NRPLNSTRT:SETXFER Err= 0x%x),状态; Cycx3ApPrRrand处理程序(状态); } CYU3PMEMOREST(DMABUFFER,缓冲器,CYU3VTRALLIER,32); DMABUFFER。大小=32; Dababuff.Ct=32; DMABUFFER。状态=0; 状态= CYU3PDMACHANNEL提交缓冲(&GLCHHEAD TRAWSRAW,32, 0); 如果(状态)!= CYU-U3PY成功){ CYU3pDebug打印(4,\NRPLNSTRT:SETXFER Err= 0x%x),状态; Cycx3ApPrRrand处理程序(状态); } CYU3pBuyWATE(10); 做{ CYU3PDMACHANNEL GETStand(&GLCHHEAD TRAWSTROW,和国家,和PRODXXFECOUNT,和COXXXFECOUNT); }(状态== CyuU3pY-DMAYNIN完成)=状态= = CyuU3PyDMAA中止); 状态= CYU3PDMACHANNEL Read(&GLCHHEAD THESTRAW); 如果(状态)!= CYU-U3PY成功){ CYU3pDebug打印(4)\nrAPAPIIT:多通道RealeRe= 0x%x“,状态); Cycx3ApPrRrand处理程序(状态); } 状态= CYU3PDMACHANNEL销毁(&GLCHHEAD THESTRAW); 如果(状态)!= CYU-U3PY成功){ CYU3pDebug打印(4,\NRPLNSTRT:SETXFER Err= 0x%x),状态; Cycx3ApPrRrand处理程序(状态); } ---------------------- 当做。 以上来自于百度翻译 以下为原文 UPDATE!! I found the issue. I was allocating the DSI endpoint config var after initializing it. Therefore at this moment I can send payload data. But as there is no commit inside the SM (every commit is done in the CallBack), I am having issues to send the Leader/Trailer packets. So I am trying to send only ONE frame. Unfortunately, I cannot send Leader/Trailer within the DMACallback, so I decided to create a new DMAChannel that goes from CPU to DSI Endpoint and send the Leader. Then destroy it and create the multichannel from GPIF to DSI Endpoint to send the Payload data. Finally, recreate the other channel and send the Trailer. I succesfully manage to get the Leader and Payload, but I am unable to send the Trailer. Any ideas? CODE: ------------------------------- status = CyU3PDmaMultiChannelDestroy(&glChHandleUVCStream); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PDmaChannelReset, Error Code = %dnr", status); CyCx3AppErrorHandler(status); } CyU3PU***FlushEp(CX3_EP_DSI); CreateHeadTailSingleStreamingChannel(); status = CyU3PDmaChannelGetBuffer(&glChHeadTailStream, &dmaBuffer, CYU3P_NO_WAIT); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "nrAplnStrt:SetXfer Err = 0x%x", status); CyCx3AppErrorHandler(status); } CyU3PMemCopy(dmaBuffer.buffer, CyU3VTrailer, 32); dmaBuffer.size = 32; dmaBuffer.count = 32; dmaBuffer.status = 0; status = CyU3PDmaChannelCommitBuffer (&glChHeadTailStream, 32, 0); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "nrAplnStrt:SetXfer Err = 0x%x", status); CyCx3AppErrorHandler(status); } CyU3PBusyWait (10); do{ CyU3PDmaChannelGetStatus(&glChHeadTailStream, &state, &prodXferCount, &consXferCount); } while(state == CY_U3P_DMA_IN_COMPLETION || state == CY_U3P_DMA_ABORTED); status = CyU3PDmaChannelReset(&glChHeadTailStream); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint (4,"nrAppInit:MultiChannelReset Err = 0x%x", status); CyCx3AppErrorHandler(status); } status = CyU3PDmaChannelDestroy(&glChHeadTailStream); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "nrAplnStrt:SetXfer Err = 0x%x", status); CyCx3AppErrorHandler(status); } ------------------------------- Regards. |
|
|
|
60user198 发表于 2018-10-2 19:50 更新2!! 好消息和坏消息! 好的第一:我能抓到一个图像,领导,有效载荷和拖车。 坏消息:拖车以500毫秒的延迟到达。意思是获取2FPS代替60FPS;MIPI-CSI2块和传感器的配置速度。 实现与上次更新没有什么不同。此时,我使用了CUU3PDMALUTURCHANNEL SETUPPESSEN缓冲区指令 发送领导包。然后我重新启动GPIF机器并启动传感器。一旦一帧被抓取,我停止GPIF机器(从DMACLABACK消费者事件),它转回到线程并发送预告片。 所以领导者和Payloads在20到80毫秒内发送,这并不坏,但是预告片需要500毫秒,因为在DMACallback(在我停止GPIF)和在流线程中的第一条指令之间,需要大约500毫秒。 那么,又有什么想法如何大幅减少这个延迟时间呢? 谢谢大家。 以上来自于百度翻译 以下为原文 UPDATE2!! Good and bad news! Good first: I was able to grab an image, Leader, Payload and Trailer . Bad news: The Trailer arrives with 500ms of delay. Meaning that is grabbing @2fps instead of the 60fps; the speed which MIPI-CSI2 block and sensor are configured. The implementation is not very different from the last update. At this moment, I use the instruction CyU3PDmaMultiChannelSetupSendBuffer to send the Leader packet. Then I resume the GPIF machine and start the sensor. Once a frame is grab, I stopped the GPIF machine (from DMACallback consumer event) which swicthes back to the Thread and sends the Trailer. So the Leader and Payloads are send within 20 to 80 ms, which is not bad, but the Trailer takes 500ms because between the DMACallback (after I had stopped the GPIF) and the first instruction back in the Streaming Thread, takes around 500ms. Then, again, any ideas how to drastically reduce this delay time? Thanks people. |
|
|
|
你好,
还有这个问题,有人有线索吗? 当做 以上来自于百度翻译 以下为原文 Hello there, Still struggling with this problem, anyone has a clue on it? Regards |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2075 浏览 1 评论
1829 浏览 1 评论
3645 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1766 浏览 6 评论
1517 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
516浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
370浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
413浏览 2评论
360浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
868浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 08:12 , Processed in 1.127006 second(s), Total 87, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号