Facing problem while adding one more in endpoint to slavefifosync example

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
veRN_2322216
Level 3
Level 3
5 likes given First like received First like given

hello,

         I am working on fx3s to fetch data from fpga to host Pc. while doing this i want to fetch some data like firmware version and hardware version stored in memory from fx3 after sending some data to fx3 from pc as command . My planning is use to send some fixed  data from host to fx3 after sending that data i want check  that data if condition satisfied i want send that data to host pc without effecting the streaming end point  already i am using 3 endpoints one out and two in end points .i want one more in end point and that should send firmware and hardware version to pc after sending some command to fx3  i channged the discrytor and all but not working . can any any one explain me how this problem can be solved i have attached the slavefiffosync code  .

0 Likes
1 Solution

Hi Veerendra,

In the code attached I found a bug:

Here is the code snippet:

if (wIndex == CY_FX_EP_CONSUMER)

                {

                    CyU3PDmaChannelReset (&glChHandleSlFifoPtoU);

                    CyU3PUsbFlushEp(CY_FX_EP_CONSUMER);

                   CyU3PUsbResetEp (CY_FX_EP_CONSUMER);

                    CyU3PDmaChannelSetXfer (&glChHandleSlFifoPtoU, CY_FX_SLFIFO_DMA_RX_SIZE);

                }

                if (wIndex == CY_FX_EP_CONSUMER)   // This should be CY_FX_EP_CONSUMER2

                               {

                                   CyU3PDmaChannelReset (&glChHandleBulkSrc);

                                   CyU3PUsbFlushEp(CY_FX_EP_CONSUMER2);

                                  CyU3PUsbResetEp (CY_FX_EP_CONSUMER2);

                                   CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_SLFIFO_DMA_RX_SIZE);

                               }

Please verify.

Thanks & Regards
Abhinav

View solution in original post

0 Likes
3 Replies
abhinavg_21
Moderator
Moderator
Moderator
50 likes received 25 likes received 10 likes received

Hi Veerendra,

In USB descriptor you have "CyFxUSBManufactureDscr" and "CyFxUSBProductDscr" to store such info. These information will be passed to the host during enumeration phase. Why do you want to add another EP to send such info, you can make use of these descr.

The code that you have attached has only 3 EP, Could you please attach the code which has 3 + 1 EP (for product info transfer).

Thanks & Regards
Abhinav

0 Likes

hello abhinav ,

                          we are working on camera system where we interfaced fx3s with other processors such as zynq . so we want store some information about those processors some where in the fx3s . we want that information when we want to upgrade the firmware or some thing else we want to do . so i want to get that information when i send some command like $ZYNGETCONFIG#CS! .if i send this command to fx3s through out end point then through in end point i want that  stored data either by 4th or it may be with 3rd also i am happy can you help me to implement this condition.

thanks regards

veerendra

0 Likes

Hi Veerendra,

In the code attached I found a bug:

Here is the code snippet:

if (wIndex == CY_FX_EP_CONSUMER)

                {

                    CyU3PDmaChannelReset (&glChHandleSlFifoPtoU);

                    CyU3PUsbFlushEp(CY_FX_EP_CONSUMER);

                   CyU3PUsbResetEp (CY_FX_EP_CONSUMER);

                    CyU3PDmaChannelSetXfer (&glChHandleSlFifoPtoU, CY_FX_SLFIFO_DMA_RX_SIZE);

                }

                if (wIndex == CY_FX_EP_CONSUMER)   // This should be CY_FX_EP_CONSUMER2

                               {

                                   CyU3PDmaChannelReset (&glChHandleBulkSrc);

                                   CyU3PUsbFlushEp(CY_FX_EP_CONSUMER2);

                                  CyU3PUsbResetEp (CY_FX_EP_CONSUMER2);

                                   CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_SLFIFO_DMA_RX_SIZE);

                               }

Please verify.

Thanks & Regards
Abhinav

0 Likes