USB superspeed peripherals Forum Discussions
How to reset cyusb3014 through the vendor command at pc?
Hi all,
I am working on Cypress fx3 GPIF 8 bit slave FIFO interface. Initially I am using single channel I got some data loss due to delay of buffer switching. After I am moved to multichannel (Multi socket Thread 0 and thread 1). In this condition I got correct data without data loss when my external Device (DEMOD) running at 25Mhz. But when my External device (DEMOD) switch to 56Mhz clock frequency I am losing Bulk data. I am getting Error in CYU3P_GET_PIB_ERROR_TYPE(cbArg).
1. GPIF ERROR CB_ERROR :18 (means CYU3P_PIB_ERR_THR0_SCK_INACTIVE = 0x12 )
2. GPIF ERROR CB_ERROR :26 (means CYU3P_PIB_ERR_THR1_SCK_INACTIVE = 0x1A)
I attached UART Error print and GPIF designer.
Note: 1.PCLK is external clock.
2. No flow control from cypress to DEMOD (due to streaming data from DEMOD)
Please do the needful.
Thank You.
With Best Regards,
Thrimurthi M
Show LessDear Sir,
Can Cypress provide a authorized , stable version for CX3? I download several demo codes from cypress , As0260, Ov5640 and balabala..., and I also create a new project in EZsuite which can generate all necessary .c file automatically, you only need customize sensor init file.
There are so many different source code between them,specifically in USBEventCB(), although all of them can show image video, but it seems there are more different stability.
Please see one section code from AS0260 code. as same in DEMO code which EZsuite generate.
/* This is the Callback function to handle the USB Events */
static void
CyCx3UvcAppUSBEventCB (
CyU3PUsbEventType_t evtype, /* Event type */
uint16_t evdata /* Event data */
)
{
uint8_t interface = 0, altSetting = 0;
switch (evtype)
{
case CY_U3P_USB_EVENT_SUSPEND:
/* Suspend the device with Wake On Bus Activity set */
glIsStreamingStarted = CyFalse;
CyU3PEventSet (&glCx3Event, CX3_USB_SUSP_EVENT_FLAG, CYU3P_EVENT_OR);
break;
case CY_U3P_USB_EVENT_SETINTF:
/* Start the video streamer application if the
* interface requested was 1. If not, stop the
* streamer. */
interface = CY_U3P_GET_MSB(evdata);
altSetting = CY_U3P_GET_LSB(evdata);
/* Make sure that the endpoint toggles/sequence numbers are cleared. */
glIsClearFeature = CyTrue;
#if CX3_DEBUG_ENABLED
CyU3PDebugPrint(4,"\n\rUsbCB: IF = %d, ALT = %d", interface, altSetting);
#endif
glIsStreamingStarted = CyFalse;
if ((altSetting == CX3_UVC_STREAM_INTERFACE) && (interface == 1))
{
/* Stop the application before re-starting. */
if (glIsApplnActive)
{
#if CX3_DEBUG_ENABLED
CyU3PDebugPrint (4, "\n\rUsbCB:Call AppStop");
#endif
CyCx3UvcAppStop ();
}
CyCx3UvcAppStart ();
break;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
An other version, CyCx3UvcAppStart () is in the bracket pair, in fact, it is more stable than DEMO code.
if (glIsApplnActive)
{
#if CX3_DEBUG_ENABLED
CyU3PDebugPrint (4, "\n\rUsbCB:Call AppStop");
#endif
CyCx3UvcAppStop ();
CyCx3UvcAppStart ();
}
break;
}
I am very confused that which version is more stable. so Can cypress provide an authorized, proven stable version of CX3 platform?
Thanks.
Show LessGood Day
We use a "Debebola" debug board.
We added functionality - control of the brightness of the connected LED (using the PWM with one of the chip outputs).
Please, tell me, is it possible to add the properties pin "lighting brightness control" in the menu of standard pins of the media player settings? Or something others?
Many Thanks.
Show LessWith AN75779 sample code, I try to transfer 17932 bytes with function CyU3PDmaMultiChannelCommitBuffer,
But the PC usb capture tools "Bus hound" show 17932 bytes packet been splited two packets, one is 16384 and another is 1548.
Is it possilbie to disable the packet spilt?
I test it under USB2.0.
Show Lesshi there,
I want to know the maximum endpoints I can use in the FX3. In my project, there are 3 endpoints, 2 for in and 1 for out. Now I need add one endpoint for out and I had modified the number of endpoints in interface descriptor in the cyfxusbdscr.h and add descriptor information. What bothers me is that there are 4 endpoints but the FX3 failed connect the PC, and when I modified to the 3 endpoints, it works. And only the first three endpoints connect successfully, no matter which three endpoints I put forward. I know the maximum number of the endpoints isn't just 3 but what is the reason limits the number?HemanthR_06SrinathS_16
Show LessHello,
According to the FX3s data sheet:
(1) Errata's 2. USB enumeration failure in USBboot mode when FX3S is self-powered
Does this Errata have no effect on EEPROM boot?
(2) Errata's 8. USB data corruption when operating on hosts with poor link quality.
Errata says that it is USB 3.0, but can it be considered as having no effect when used with USB 2.0?
Best Regards,
Naoaki Morimoto
Show LessI need to use two USB3014 device of data acquisition boards and achieve high-speed data transmission to the PC on both channels. That is to say, the two acquisition circuit boards are connected to two PC USB3.0 interfaces. Two design all use the synchronous Slave FIFO example between FPGA and FX3 by auto DMA. However, at firstly,the first data transmission is started normally, but once the second channel data transmission is started, and the first channel will be blocked .At the same time, the second channel will also not work . When the transmission of the acquisition procedure of the second channel is stopped or closed, the first acquisition will resume normal acquisition of data. The second USB3014 needs to be powered off and re-download the firmware to return to normal. My two PC acquisition programs use the API functions such as the BeginDataXfor function. the Producer and Consumer EP of the two design case firmware procedure is all the different EP. At present, I can only achieve one-way data acquisition, and cannot achieve two-way data acquisition channels at the same time.How to realize USB3014 two-channel data acquisition? Thanks for your advice or other technology support.
Show Less
I have a CX3 Reference Design Kit of OV5640.
But the LIB is closed, and I want to practice to get the register value from I2C and print to UART.
If I want to get the slave ID of OV5640 by I2C and show it on the terminal by UART, what can I do?
Show LessHallo,
I'm working on a project on sending raw image data from an image sensor to the PC. It's quite similar to the UVC example, however it works with raw image data.
Since the image data have no information about new Frame and new Line, I'm putting these information in the firmware into the data with. Similar to the UVC header.
Everytime a new frame is coming, i have to reset my line counter (a global variable). I tried to do this with a interrupt from the GPIF II (intr_cpu). However, as far as i understande, the GPFI Callback doesn't see the global variable i defined and therefore can't manipulated my line counter.
Is there a possiblity to this and how.
Best regards,
Matthias
Show Less