GPIF

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

cross mob
GiSa_4520796
Level 4
Level 4
First like received

Hello,

I want to collect the incoming data from FPGA through GPIF II .For that I am using AN65974  GPIF without any changes but I am not able to get the data that is sent from FPGA.Which GPIF II State machine is best suited for this application?Anyone worked on the same application please let me know.

Regards,

Srujana.

0 Likes
1 Solution

Hello Srujana,

As per our discussion, the issue got resolved by replacing apiRetStatus = CyU3PGpifSMStart (START,ALPHA_START); with this CyU3PGpifSMStart (RESET,ALPHA_RESET);

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
53 Replies

Hello,

Yes,I was following the same steps as you mentioned in the above reply.I am getting only 0x00 in Control Center as below.

1.PNG

Regards,

Srujana.

0 Likes

Hello,

I have observed the Flags and SLWR traces in scope and they are as follows:

FLAGA - 0

FLAGB - 0

SLWR   -1

The above traces are for working firmware which is P to U and it is not there as per AN65974.

Regards,

Srujana.

0 Likes
lock attach
Attachments are accessible only for community members.

Hello Srujana,

Please refer to the attached folder with two firmware. One with slavefifo state machine. and other with gpiftousb state machine

The firmware is having one DMA buffer of 4096 bytes.

I have checked the firmware with gpiftousb state amchine. It s working as expected. Please try with slavefifo state machine.

mindflowtech.PNG

Let me know the results

Regards,

Rashi

Regards,
Rashi
0 Likes

Hello Srujana,

Please let me know whether you get the PROD events or not (with slave fifo SM)

Regards,

Rashi

Regards,
Rashi
0 Likes

Hello,

I am not getting PROD Events for Slavefifo State machine, I am getting only for GpifToUsb State machine.

Regards,

Srujana.

0 Likes

Hello Srujana,

Please replace  apiRetStatus = CyU3PGpifSMStart (START,ALPHA_START); with this   apiRetStatus = CyU3PGpifSMStart (RESET,ALPHA_RESET);  when you build the firmware with the slavefifo  state machine

Regards,

Rashi

Regards,
Rashi
0 Likes

Hello,

Now i am able to get PROD Events for Slavefifo SM also and i am getting all 00 in control center.My question is Is this firmware able to receive data from FPGA or FX3 DMA buffers from your side?

Regards,

Srujana.

0 Likes

Hello Sruajana,

I have not tested the firmware with slavefifo state machine due to hardware constraints.

If you getting PROD events know. Please try to check whether you get CY_U3P_SIB_EVENT_XFER_CPLT event after you send the vendor command to write to 255th location (00FF)

Regards,

Rashi

Regards,
Rashi
0 Likes

Hello,

I am getting only PROD Events and not CY_U3P_SIB_EVENT_XFER_CPLT  event.

Regards,

Srujana.

0 Likes

Srujana,

Please let me know the error code using debug prints. In the firmware i shared this functionality is there

   for (;;)

    {

    CyU3PDebugPrint (8, "SIB_REQUEST %d\r\n", error_status);

Please share the debug logs

Regards,

Rashi

Regards,
Rashi
0 Likes
lock attach
Attachments are accessible only for community members.

Hello,

Please refer to the below attached snapshot.

Regards,

Srujana.

0 Likes

Hello Srujana,

Are you getting the same value for error status every time.

The CY_U3P_SIB_EVENT_XFER_CPLT will come after write to the SD card is successful. If the event is not coming can you check whether the you get into the call back or not. If it is going into this callback, you can check which event is causing it to the callback

void

CyFxMscApplnSibCB (

        uint8_t             portId,

        CyU3PSibEventType   evt,

        CyU3PReturnStatus_t status)

{

    CyU3PDmaSocketConfig_t sockConf;

    CyU3PDeviceReset(CyFalse);

    if (evt == CY_U3P_SIB_EVENT_XFER_CPLT)

    {

Also, check whether the API fails or not. If it fails let me know the error code.

             case 0x11:

                CyU3PUsbAckSetup();

                status = CyU3PSibReadWriteRequest (CY_FX_SIB_WRITE, 0,glLunUnit[0], 8, (uint32_t)wIndex, 0);

                               if (status != CY_U3P_SUCCESS)

                               {

                               /* Abort the DMA Channel */

                               CyU3PDeviceReset(CyFalse);

                                CyU3PDmaChannelReset (&glChHandleMscIn);

                               }

                   break;

Please let me know the results for both the cases separately

Regards,

Rashi

Regards,
Rashi
0 Likes

Hello,

Are you getting the same value for error status every time.

     Yes.

can you check whether the you get into the call back or not.

     No.it is not going into the call back.

Also, check whether the API fails or not. If it fails let me know the error code.

     It is returning success.

Regards,

Srujana.

0 Likes

Hello Srujana,

As per our discussion, the issue got resolved by replacing apiRetStatus = CyU3PGpifSMStart (START,ALPHA_START); with this CyU3PGpifSMStart (RESET,ALPHA_RESET);

Regards,

Rashi

Regards,
Rashi
0 Likes