Anonymous
Not applicable
Oct 24, 2012
02:28 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2012
02:28 AM
GPIFII is master mode, I try to create "CY_U3P_DMA_TYPE_MANUAL_IN" DMA channel(CH1) and "CY_U3P_DMA_TYPE_MANUAL_OUT" channel(CH0). However, I can only create CH0 or CH1. When I create "CY_U3P_DMA_TYPE_MANUAL_OUT" & " _IN" channel, I write the code as below. To start the "GPIF state machine", I created "prodSckId" by using "CY_U3P_PIB_SOCKET_0" then called "CyU3PDmaChannelSetupRecvBuffer()". This procedure is fine. I got my expected function. However, it didn't run when I used "CY_U3P_PIB_SOCKET_1" instead of "CY_U3P_PIB_SOCKET_0". I want to cretae IN DMA channel(CH1) and OUT DMA channel(CH0). So, I use "CY_U3P_PIB_SOCKET_1" for CH1 and "CY_U3P_PIB_SOCKET_0" for CH0. However, it doesn't run in case of using "CY_U3P_PIB_SOCKET_1". Why? dmaCfg.size = 512; dmaCfg.count = 0; dmaCfg.prodAvailCount = 0; dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; dmaCfg.prodHeader = 0; dmaCfg.prodFooter = 0; dmaCfg.consHeader = 0; dmaCfg.notification = 0; dmaCfg.cb = NULL; // CH1(GPIF2 to CPU) // dmaCfg.prodSckId = CY_U3P_PIB_SOCKET_0; // OK dmaCfg.prodSckId = CY_U3P_PIB_SOCKET_1; // NG dmaCfg.consSckId = CY_U3P_CPU_SOCKET_CONS; status = CyU3PDmaChannelCreate( &glChHandleGPIFRegIn, CY_U3P_DMA_TYPE_MANUAL_IN, &dmaCfg ); // CH0(CPU to GPIF2) dmaCfg.prodSckId = CY_U3P_CPU_SOCKET_PROD; dmaCfg.consSckId = CY_U3P_PIB_SOCKET_0; status = CyU3PDmaChannelCreate( &glChHandleGPIFRegOut, CY_U3P_DMA_TYPE_MANUAL_OUT, &dmaCfg );
3 Replies
Attachments are accessible only for community members.
Anonymous
Not applicable
Oct 24, 2012
02:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2012
02:32 AM
Anonymous
Not applicable
Oct 24, 2012
02:45 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2012
02:45 AM
Re-POST, again..... GPIFII is master mode, I try to create "CY_U3P_DMA_TYPE_MANUAL_IN" DMA channel(CH1) and "CY_U3P_DMA_TYPE_MANUAL_OUT" channel(CH0). However, I can only create CH0 or CH1. When I create "CY_U3P_DMA_TYPE_MANUAL_OUT" & " _IN" channel, I write the code as below. To start the "GPIF state machine", I created "prodSckId" by using "CY_U3P_PIB_SOCKET_0" then called "CyU3PDmaChannelSetupRecvBuffer()". This procedure is fine. I got my expected function. However, it didn't run when I used "CY_U3P_PIB_SOCKET_1" instead of "CY_U3P_PIB_SOCKET_0". I want to cretae IN DMA channel(CH1) and OUT DMA channel(CH0). So, I use "CY_U3P_PIB_SOCKET_1" for CH1 and "CY_U3P_PIB_SOCKET_0" for CH0. However, it doesn't run in case of using "CY_U3P_PIB_SOCKET_1". Why? dmaCfg.size = 512; dmaCfg.count = 0; dmaCfg.prodAvailCount = 0; dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; dmaCfg.prodHeader = 0; dmaCfg.prodFooter = 0; dmaCfg.consHeader = 0; dmaCfg.notification = 0; dmaCfg.cb = NULL; // CH1(GPIF2 to CPU) // dmaCfg.prodSckId = CY_U3P_PIB_SOCKET_0; // OK dmaCfg.prodSckId = CY_U3P_PIB_SOCKET_1; // NG dmaCfg.consSckId = CY_U3P_CPU_SOCKET_CONS; status = CyU3PDmaChannelCreate( &glChHandleGPIFRegIn, CY_U3P_DMA_TYPE_MANUAL_IN, &dmaCfg ); // CH0(CPU to GPIF2) dmaCfg.prodSckId = CY_U3P_CPU_SOCKET_PROD; dmaCfg.consSckId = CY_U3P_PIB_SOCKET_0; status = CyU3PDmaChannelCreate( &glChHandleGPIFRegOut, CY_U3P_DMA_TYPE_MANUAL_OUT, &dmaCfg );
Anonymous
Not applicable
Oct 24, 2012
04:17 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2012
04:17 AM
Sumitsu,
Could you please attach your project source code, if possible.
If not, please paste the part of code where you are creating both of these channels.
Thanks,
sai krishna.