Quantcast
Channel: Cypress Semiconductor - USB 3.0: Super Speed
Viewing all 780 articles
Browse latest View live

CYUSB3014 UVC dataflow

$
0
0

Hi Cypress,

I am using cyusb3014 to transfer image dataflow through UVC, but there is no any image on AMCap.The attached file is dataflow captured by busbound.Is the format of video data wrong? If it's wrong, then what is the correct format?

Thank you! 


[AN65974] Why the PMODE is configured as output and set to b11 in slaveFIFO2b_fpga_top.v

$
0
0

It  creates this hassle described in the app note:

The FX3 DVK should be programmed before programming the Xilinx FPGA board. The FX3 DVK will not enumerate on the host PC if the FPGA has already been programmed, because it drives the PMODE lines

I don't want to disconnect the FPGA each time I program FX3, can simply I change the PMODE to be the input? 

input[1:0]  PMODE;  

 

 

[AN65974] What is purpose of GPIO 59?

$
0
0

How do I find out what is it connected to on SuperSpeed explorer kit? 

Is it the same as INT_N_CTL15? 

 

Cypress FX3 Multiple Image Files

$
0
0

Hi All,

Is there a way to create more than one image file under the debug folder when working on Cypress EZ USB Suite? I am currently using the FX3 Super Speed Kit and working on the SRAM_FX3 example from the SDK that I downloaded. I am using this project as a reference for my application and running multiple configurations of GPIF files, and it would be helpful if I can have an .img file for each GPIF file I modify.

I am new to this chip and any advice would be helpful.

Thanks,

Gil

FX3s SPI Boot fails when Reset

$
0
0

Hi,

I am having a Fx3s(3035) custom board. I am trying to boot fx3s using spi flash and my pmode[210] settings are 0Z1. I am able to program to my spi flash device, but when I hit a reset fx3 fails to boot from spi. It enumurates again as a bootloader device. 

I am having two spi slave devices on my board. One is M25P40 device. The other slave is Xilinx Zynq7020 Soc(which is enabled to operate in spi slave mode). So need some help!!   

Regards,
Swetha

GPIF-II Software setting

USB-IF Certification Fail Item

$
0
0

Hi Sir,

We got fail items on USB Link Layer Test (TD7.9/11/23/26), please help to check, thanks.

 

 

 

[AN65974] Slave FIFO stuck with FLAGA high and FLAGB low

$
0
0

I did modify the example given in slaveFIFO2b_streamIN.v (attached) to be able to send the stream of bytes packed into 32 bit words (using  Xilinx FIFO core). Quite naturally the SLWR now doesn't stay low all the time, but goes high when FIFO output is not valid. 

Unfortunately after this modification once FLAGB goes low it stays low forever. 

To reproduce it I did modify the test bench fpga_master_tb.v (attached) to simulate the FX3 behavior to the best of my understanding. 

From what I see if FLAGB goes low, but I don't write enough words to fill entire DMA buffer, the DMA will not get flushed.

Do I understand correctly that I have only two options:

  • Make sure that I always write exact number of words as a buffer size
  • Drive PKTEND low once the FLAGB is low to flush the DMA.

Otherwise FLAGB will stay low forever.

 


FX3/Cx3 usb on USB 2.0 video output format

$
0
0

Once CX3 development kit is connected to a USB 2.0 based host. CX3 recognizes a USB 2.0 host but it has only ONE video output format (640x480).  I was trying to add 720p and 1080p formats but all failed.  I wonder if anyone has any advice on getting 1080p or even higher video output working for a USB 2.0 host. Thanks.

Delay in USBBulkSourceSinkLED example

$
0
0

Hello, I'm using FX3 device.

I'm using "USBBulkSourceSinkLED"

and I notice in rows 1004 ... 1011 this code:

 

/* Request to reset the FX3 device. */CyU3PUsbAckSetup ();CyU3PThreadSleep (2000); /* Delay for 2 seconds */CyU3PConnectState (CyFalse, CyTrue);CyU3PThreadSleep (1000); /* Delay for 1 second */CyU3PDeviceReset (CyFalse);CyU3PThreadSleep (1000); /* Delay for 1 second */

 

The delays between UsbAckSetup...ConnectState....DeviceReset are mandatory ?

 

Invalid state in GPIF

$
0
0

Hello, I'm using FX3.

I read there is "CyU3PGpifSMSwitch" API

that can switch GPIF state machine to a state id from 0 to 255.

 

What happend if state machine is switched to a state not defined in GPIF II designer ?

changing delay in using spitransmitwords at fx3 spi dma mode...

$
0
0

Hello, I`m using FX3.

In SPIDMAMODE, I want to write/read n byte data.

CyU3PSpiSetSsnLine (CyFalse);
status = CyU3PSpiReceiveWords (buf, 3);
CyU3PSpiSetSsnLine (CyTrue);

When i run above code, the period of each byte is 1 micro-second.

How can I reduce this delay between subsequent SPI transfers. 

 

p.s. CyU3PSpiSetTimeout function is not working...

 

Linux Interrupt Mode

$
0
0

Host Processor: Atom 1.46Ghz E3815

OS: XUBUNTU 16.04

IDE: QT

USB Device: ez-usb FX3

I am using a modified version of the  Cypress provided GUI, with an added tab to handle Interrupt USB data transfers.  All message traffic is in a separate thread from the GUI.

My message size is about 100 bytes. Each message has the time it was sent and the time it was received is recorded (the Host to FX3 times are sent back to the Host)

Time on both sides are synced.

My question is about message time.

  Host to FX3 transfer time is aprox. 200usec

  ​FX3 to Host is 600usec.

These times especially the FX3 to Host seems long.

Has anybody done this type of timing?

Are these times out of line?

Trying to determine if I need to dive in and start dissecting the lsusb driver and/or the cyusb lib.

 

Thanks, 

 

 

Using the Sony IMX304 with the CX3

$
0
0

We are struggling to get the Sony IMX304 to work correctly with the CX3. The basic problem may be that it is simply too fast / too high resolution to be handled by the MIPI interface, but it is also possible that we just aren't setting things correctly! The output of the 304 is a 4 or 8 line LVDS at 594MHz per channel and we use the Lattice XO2 application to convert this to 4 lane MIPI. Unfortunately, the calculation module in the CX3 firmware always gives some invalid figures when we insert the desired frequencies etc. Can you advise if this is a hopeless case, or if there is a way to get it to work?

Thanks!

Terry

real-time change data speed of the USB3.0 FIFO interface about slavefifo mode

$
0
0

When I change the real-time data rate of the original data from the FPGA into the USB3014 chip.After the USB collects the dozens of packet data,USB will stop collect data. I ever tried to prevent USB go into the low-power mode and  no avail. How can I solve this problem ?


CX3 multiple USB classes

$
0
0

Hi, 
It is possible to use multiple USB classes on CX3, for example UVC(usb video class) and CDC(communications device class), at the same time ?

BlueScreen when transfer large files

$
0
0

Hello,

I've tried to transfer larger file (more than 100MB) over USB 3 using

CyControlCenter C# "Data Transfers" Tab ("Transfer File" button)

on Bulk out end point

and FX3 with "USBBulkSourceSInkLED" sample loaded.

 

When I try this operation on my "Windows 7 Professional Service Pack 1 32-bit"

Intel i5 PC appears BlueScreen ..

 

I open Visual Studio and I see source code associated to this button (rows 636 ... 649)

 

FileStream file = new FileStream(fname, FileMode.Open, FileAccess.Read);

flen = file.Length;

file_bytes = (int)flen;

//file_bytes = Convert.ToInt32(NumBytesBox.Text);

file_buffer = new byte[file_bytes];

file.Read(file_buffer, 0, file_bytes);

file.Close();

//curEndpt.XferSize = Convert.ToInt32(NumBytesBox.Text);//

curEndpt.XferSize = 16;//mf file_bytes;

success = curEndpt.XferData(ref file_buffer, ref file_bytes);

 

CyControlCenter open the whole file.

Is there a way to transfer big files ?

 

 

Is it possible to have the PC turn off VBUS?

$
0
0

I have a device based on the Cypress FX3 which is powered by VBUS from the PC.  I would like to be able to power cycle the device without unplugging/plugging. Does anyone know of way to cause the PC to turn usb 3.0 VBUS on and off to power cycle the device?  Does CCyUSBDevice::ReConnect from CyAPI do this?

FX3: lose data from GPIF-II to USB 3.0 even with 2 threads

$
0
0

Dear all,

I am currently testing data transfer with FX3, from GPIF2 to USB 3.0. I took the project GpifToUsb as basis. Since I would like to have a clock of 32 MHz, I reduced the PCLK clock (clkdiv=12 instead of 4) and I work with Streamer C# (modified version to do datalogging).

First, I noticed that 4 buffers of 32kB do not work properly. The throughput is very low. To solve this problem, I reduced the buffers to 4x8kB and I got almost the right throughput (32bits x 32MHz -> 128 MB/s, I got about 120-125).

So, my first question is: why does the system does not work well with large buffers and work well with small buffers? It is really weird because I think it should be the opposite...

Then, tried to connect a 8 bits counter on 8 GPIF pins to see if I lost data. Because of latency and long wire (I am using a bread board), I had to put the PCLK to 16 MHz. Then, to have a throughput of about 64 MB/s, I had to select buffers of 4x2kB becasue 4x8kB gave me a very low throughput...

So, with the original firmware, I lose 28 words of 32 bits every time a buffer is full. This seems to be normal according to the fact we have only 1 thread/socket and there is a latence while switching buffer (as explained in AN75779).

So I made some modifications in order to use 2 sockets/threads to tranfert data from GPIF2 to FX3 memory. Here is the code using CyU3PDmaMultiChannelConfig_t dmaMultiCfg; (instead of CyU3PDmaChannelConfig_t dmaCfg;)

    dmaMultiCfg.size  = 2048;
    dmaMultiCfg.count = 4;
    dmaMultiCfg.validSckCount = 2;
    dmaMultiCfg.prodSckId [0] = (CyU3PDmaSocketId_t)CY_U3P_PIB_SOCKET_0;
    dmaMultiCfg.prodSckId [1] = (CyU3PDmaSocketId_t)CY_U3P_PIB_SOCKET_1;
    dmaMultiCfg.consSckId [0] = (CyU3PDmaSocketId_t)CY_FX_EP_CONSUMER_SOCKET;
    dmaMultiCfg.prodAvailCount = 0;
    dmaMultiCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
    dmaMultiCfg.prodHeader = 0;
    dmaMultiCfg.prodFooter = 0;
    dmaMultiCfg.consHeader = 0;
    dmaMultiCfg.prodAvailCount = 0;

    dmaMultiCfg.notification = CY_U3P_DMA_CB_CONS_SUSP;
    dmaMultiCfg.cb = GpifToUsbDmaMultiCallback;
    apiRetStatus = CyU3PDmaMultiChannelCreate (&glDmaMultiChHandle, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaMultiCfg);

    if (apiRetStatus != CY_U3P_SUCCESS)
    {
        CyU3PDebugPrint (4, "CyU3PDmaChannelCreate failed, Error code = %d\n", apiRetStatus);
        CyFxAppErrorHandler(apiRetStatus);
    }

    /* Set DMA Channel transfer size */
    apiRetStatus = CyU3PDmaMultiChannelSetXfer (&glDmaMultiChHandle, CY_FX_GPIFTOUSB_DMA_TX_SIZE, 0);
    if (apiRetStatus != CY_U3P_SUCCESS)
    {
        CyU3PDebugPrint (4, "CyU3PDmaChannelSetXfer failed, Error code = %d\n", apiRetStatus);
        CyFxAppErrorHandler(apiRetStatus);
    }

As you can see, I basically modified the code the "DmaMulti" objects instead of "Dma". For the state machine, I did some adaptions. There is 2 threads and the 1st thread fill in the data until the !DMA_RDY_TH0 flag is set and switch to the 2nd thread until the !DMA_RDY_TH1 flag is set. Please see the attached file.

With this configuration, I have better results but not perfect. Instead of loosing 28 words of 32 bits while the GPIFII switch the buffer, I lose only 1 word of 32 bits.

So I have 2 issues:

- Why do I have to decrease buffer size in order to have correct transfert?

- Why do I loose 1 word of 32 bits when I use 2 threads?

Thank you in advance,

Best regards,

Christian

OV7251 sensor with CX3 RDK board issue.

$
0
0

I have CX3RDK kit with OV7251 sensor. OV7251 is VGA and Black and white ( RAW10 bit)

I added ov7251 init code for I2C write. I2C write is good, because read back value almost same.

But eCAM viewer has [ Resolution : 640x480 ] but, FrameRate: 0.0 fps... and Screen is Black.

And windows can find USB video device. 

I also use a Oscilloscope to measure the sensor's MIPI signal and i can see the normal waveform of it.

I use bus hound to capture the USB data of the usb ports,i can see 30 bytes data from the bulk in endpoint.But the data is not tranfering continously and stopped.

ov7251 sends raw10 data from one mipi lane,its speed is 800Mbps,i set the gpifII's bus width to 16 using    

 CyU3PMipicsiGpifLoad(CY_U3P_MIPICSI_BUS_16, CX3_UVC_DATA_BUF_SIZE).

When i changed the bus width to 8 using parameter "CY_U3P_MIPICSI_BUS_8",the USB port can transfer data to usb continously.I carefully compare the data captured from bus hound of the two kinds of settings.I found the hight 2 bit of raw10 is missing. So i can not use 8 bus width.

The other hand,i opened MACRO "CX3_ERROR_THREAD_ENABLE" to debug whole project and add some log in CyCx3UvcMipiErrorThread,i found some error counts from the mipi block of cx3.The error count is from errCnts.ctlErrCnt.The comment of it saying " /**< Control Error (Incorrect Line State Sequence) Count*/".

Does this means my cx3 MIPI-csi block configuration parameter is error?

Viewing all 780 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>