完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
你好, 使用FX3进行Sync_SlaveFIFO_2bit 双向通信,,将FLAGA-FALGD都配置成thread_x_DMA_Ready(x= 0,1,2,3),烧录程序后用usb control center 无法识别出设备,但在设备管理器里面能检测到设备,代码是在原demo上增加了2个dma通道,硬件上没有引出uart接口,不知道程序卡在哪里了,代码里#if test #end之间代码是自己添加的,可能是哪里出了问题,
#ifdef MANUAL /* Create a DMA MANUAL channel for U2P transfer. * DMA size is set based on the USB speed. */ dmaCfg.size = DMA_BUF_SIZE* size; dmaCfg.count = CY_FX_SLFIFO_DMA_BUF_COUNT_U_2_P; dmaCfg.prodSckId = CY_FX_PRODUCER_USB_SOCKET; dmaCfg.consSckId = CY_FX_CONSUMER_PPORT_SOCKET; dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; /* Enabling the callback for produce event. */ dmaCfg.notification = CY_U3P_DMA_CB_PROD_EVENT; dmaCfg.cb = CyFxSlFifoUtoPDmaCallback; dmaCfg.prodHeader = 0; dmaCfg.prodFooter = 0; dmaCfg.consHeader = 0; dmaCfg.prodAvailCount = 0; apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoUtoP, CY_U3P_DMA_TYPE_MANUAL, &dmaCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, “CyU3PDmaChannelCreate failed, Error code = %dn”, apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } /* Create a DMA MANUAL channel for P2U transfer. */ dmaCfg.prodSckId = CY_FX_PRODUCER_PPORT_SOCKET; dmaCfg.consSckId = CY_FX_CONSUMER_USB_SOCKET; dmaCfg.count = CY_FX_SLFIFO_DMA_BUF_COUNT_P_2_U; dmaCfg.cb = CyFxSlFifoPtoUDmaCallback; apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoPtoU, CY_U3P_DMA_TYPE_MANUAL, &dmaCfg) #if test /*------------------------------------add ---------------------------------------*/ /* Create a DMA MANUAL channel for U2P transfer. * DMA size is set based on the USB speed. */ dmaCfg.count = CY_FX_SLFIFO_DMA_BUF_COUNT_U_2_P_CAN_RX; dmaCfg.prodSckId = CY_FX_PRODUCER_USB_SOCKET; dmaCfg.consSckId = CY_FX_CONSUMER_PPORT_SOCKET_CAN_RX; dmaCfg.cb = CyFxSlFifoUtoPDmaCallback; apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoUtoP_CAN_RX, CY_U3P_DMA_TYPE_MANUAL, &dmaCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, “CyU3PDmaChannelCreate failed, Error code = %dn”, apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } /* Create a DMA MANUAL channel for P2U transfer. */ dmaCfg.prodSckId = CY_FX_PRODUCER_PPORT_SOCKET_CAN_TX; dmaCfg.consSckId = CY_FX_CONSUMER_USB_SOCKET; dmaCfg.count = CY_FX_SLFIFO_DMA_BUF_COUNT_P_2_U_CAN_TX; dmaCfg.cb = CyFxSlFifoPtoUDmaCallback; apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoPtoU_CAN_TX, CY_U3P_DMA_TYPE_MANUAL, &dmaCfg); /*------------------------------------end of add ------------------------------------------*/ #endif |
|
相关推荐
1个回答
|
|
|
针对您在使用FX3的SlaveFIFO模式时遇到的USB识别问题,以下是可能的原因和排查步骤: 1. USB描述符/配置问题
2. DMA通道配置错误
3. GPIO标志(FLAGA-FLAGD)配置错误
4. 固件卡死在初始化阶段
5. 硬件问题
调试建议
参考代码片段如果问题仍未解决,建议提供更详细的代码片段(尤其是DMA配置部分)和硬件连接图,以便进一步分析。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2353 浏览 0 评论
1425 浏览 0 评论
1874 浏览 0 评论
CYUSB3014烧录失败Cypress Benicia USB Boot Device
7868 浏览 1 评论
11294 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 15:53 , Processed in 0.550395 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2262