CYUSB3065 Mipi block init

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

cross mob
Anonymous
Not applicable

Hi,

   

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,

   

Marat

0 Likes
3 Replies
Anonymous
Not applicable

Hi,

   

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

   

refer section 5.25.6.5 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

   

Regards,

   

-Madhu Sudhan

0 Likes
Anonymous
Not applicable

5.25.6.5 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

0 Likes
Anonymous
Not applicable

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,

   

Marat

0 Likes