3 Replies Latest reply on Aug 12, 2015 10:33 PM by userc_40590

    CYUSB3065 Mipi block init



      We are trying to initialize MIPI-CSI interface block on our board with CYUSB3065-BZX but initialization fails when configuring GPIF CyU3PMipicsiGpifLoad (CY_U3P_MIPICSI_BUS_16, ES_UVC_DATA_BUF_SIZE); with error CY_U3P_ERROR_NOT_SUPPORTED (the part on which this function is called is not a CX3 device).


      The same firmware successfully starts on Denebola CX3 RDK board.


      After a reset we boot from the USB. Our board is recognized as Cypress Benicia USB Boot Device with PID = 0x00BC. Denebola CX3 RDK board has PID = 0x00F3


      Schematics of the our board and Denebola board are the same.


      Where could be a possible bug?


      With kind regards,



        • 1. Re: CYUSB3065 Mipi block init



          As per our API documentation, the CyU3PMipicsiGpifLoad API does not return CY_U3P_ERROR_NOT_SUPPORTED  error. 


          refer section in FX3 API Guide. Can you please double check if it is CY_U3P_ERROR_NOT_SUPPORTED  or some other error?


          regarding PID:


          There are cases in which a FX3/CX3 based board comes up with different PIDs for the Boot Loader such as 0x00BC, 0x00B0, 0x0053. These are the PIDs of few other devices of Cypress which share the same Boot Loader code as that of FX3. These devices have different set of PMODE values for their boot options.


          When the PMODE Pins of FX3/CX3 are not soldered properly to appropriate values or if there is any fault in the PMODE Connection (High / Low / Tristate), the BootLoader code assumes FX3/CX3 as a different Cypress devices and assigns any one of the PIDs of 0x00BC, 0x00B0, 0x0053. These PIDs are recognized by the cyusb3.sys Driver.


          When this issue occurs, try any of these solution:


          1)    Re-check the PMODE Connections.




          2)    Manually bind the Cypress Driver to the FX3/CX3 Device with different PID using the Device manager. (Before binding, the device appears in the name “WestBridge” in the Device Manager) i.e you can go ahead with 0x00BC itself. This will not cause any probelem in the functionality




          -Madhu Sudhan

          • 2. Re: CYUSB3065 Mipi block init

   CyU3PReturnStatus_t CyU3PMipicsiGpifLoad ( CyU3PMipicsiBusWidth_t busWidth, uint32 t bufferSize )
            Fixed Function GPIF Waveform Load.
            Return value
            CY_U3P_SUCCESS - If the operation is successful CY_U3P_ERROR_NOT_SUPPORTED - If the part on which
            this function is called is not a CX3 device.


            This is from the EZ-USB® FX3 SDK Firmware API Guide Version 1.3.3


            Below is a piece of a code we use:


            status = CyU3PMipicsiGpifLoad(CY_U3P_MIPICSI_BUS_16, ES_UVC_DATA_BUF_SIZE);
                if (status != CY_U3P_SUCCESS)
                    CyU3PDebugPrint (4, "\n\rAppInit:MipicsiGpifLoad Err = 0x%x", status);


                    if (status == CY_U3P_ERROR_NOT_SUPPORTED)
                                /* a pulse on test point 17*/
                                status = CyU3PGpioSetValue (21, CyTrue);
                                status = CyU3PGpioSetValue (21, CyFalse);


            I'll check PMODE pins connections

            • 3. Re: CYUSB3065 Mipi block init

              Dear Madhu Sudhan,


              Thank you for your suggestion to check PMODE pins. PMODE[2] was set to 1 on our board.


              When I left it floating MIPI-CSI block was initialized successfully. The board has a right PID (F3).


              With kind regards,