USB low-full-high speed peripherals Forum Discussions
Dear Sir/Madam,
// CPUCS = 0x02; //12MHz operation , CPUCS[4:3] = 10.// 0000 0010 // Not Working
//CPUCS = 0x0A; //24MHz operation , CPUCS[4:3] = 10.// 0000 1010 // Not Working
CPUCS = 0x12; //48MHz operation , CPUCS[4:3] = 10.// 0001 0010 // Working
IFCONFIG = 0x43; // Slave FIFO mode of FX2LP 0100 0011
In my requirement 24MHZ Freq. from CLKOUT Pin
Show LessI want to use gc2385 via USB2.0, 800x600@15fps raw10 format. Now it can work in USB3.0 normally, but black screen in USB2.0. What is the highest resolution supported over USB 2.0?
I catched the data package, found the data size of first frame is much bigger than normal data. I am confused why it is normal over USB3.0.
abnormal: 36816x36+2812 = 1328188
normal: 800x600x2 = 960000
Show Less
how to get the FPGA configuration utility tool? is there site link?
What's the difference between using the Visual Studio's SerialPort dbgPort = new SerialPort(); dbgPort .Open(); and the Cypress CyOpen(); ?
(USB Serial Library API - DllImport("cyusbserial.dll",)
Show LessI am using C68013 chip. I have downloaded the firmware from AN61345 - Source code slave fifo slave.iic.
using the newest driver 1.2.3.20 by 11/08/2017 on windows 7 x64.
the FPGA code is OK, we can wirte and read data using NI-VISA driver and Labview program.
But,
I can write the data to C68013, but can not read data from C68013.
Here is the VC++ code. I also used the usb bus hound to look the data , there is also no data in to PC.
please help me, thank you very much!
// out endpoint is ok
bool UsbTest::SendUsbData(unsigned char *wdata, long writeLength)
{
CCyUSBEndPoint *epBulkOut = m_usbDev->EndPointOf(2);
bool rst = epBulkOut->XferData(wdata, writeLength);
printf("send usb data ok\n");
return rst;
}
void UsbTest::RecvUsbData()
{
long nCount = 0;
long BytesXferred = 0;
long outTransferred = 0;
bool m_bBulkLoopCompleted = false;
CCyUSBEndPoint *epBulkIn = m_usbDev->EndPointOf(0x86); // in传输 0x86
if (NULL == epBulkIn)
{
printf("epBulkIn is NULL\n");
return;
}
long totalTransferSize = epBulkIn->MaxPktSize * 16;
//epBulkIn->SetXferSize(10);
//epBulkIn->TimeOut = 1200;
unsigned char data[512] = { 0 };
OVERLAPPED inOvLap;
inOvLap.hEvent = CreateEvent(NULL, false, false, NULL);
long readLength = 10;
UCHAR *inContext = epBulkIn->BeginDataXfer(data, readLength, &inOvLap);
if (epBulkIn->NtStatus || epBulkIn->UsbdStatus)
{
printf("BeginDataXfer Failed with (NT Status = 0x%X and USBD Status = 0x%X). Bailing out...\n", epBulkIn->NtStatus, epBulkIn->UsbdStatus);
}
//////////Wait till the transfer completion..///////////////////////////
if (!epBulkIn->WaitForXfer(&inOvLap, 150))
{
/*
epBulkIn->Abort();
if (epBulkIn->LastError == ERROR_IO_PENDING)
{
WaitForSingleObject(inOvLap.hEvent, 1500);
}*/
}
////////////Read the trasnferred data from the device///////////////////////////////////////
bool success = epBulkIn->FinishDataXfer(data, readLength, &inOvLap, inContext);
printf("read usb data ok\n");
for (int idx = 0; idx < 64; ++idx)
{
printf(" 0x%x, ", data[idx]);
}
Sleep(300000);
}
Show LessHi all,
we are currently struggling with USB connection instabilities with FX2 hispeed devices. We have been using them for long and they are generally quite stable. The present issues seem to (empirically) relate to electrically noisy environments. Symptoms vary a lot, from device not getting recognized to Control- or Bulk Xfers failing.
Now I stumbled over the Cypress Appnote 1036
"January 15, 2002
Document No. 001-17096 Rev. ** 1
USB Error Handling For Electrically Noisy Environments"
found at http://www.cypress.com/file/74566/download
It basically says that in such cases the device driver should do some more error handling. However, it is very old.
Could anyone tell me to what extent the Cypress drivers (CYUSB, CYUSB3) are actually implementing this and maybe from what version?
Anyy other help regarding diagnostics or debug strategies for such issues would be much appreciated.
Thanks,
MIchael Wahl
Show LessHi,
I have a Cypress EZ-USB FX3 SuperSpeed Explorer Kit(CYUSB3KIT-003) and a connected MT9P031(monochrome is the target. currently I'm using the color version) image sensor only board for evaluation. So, I modified UVC_AN75779 source.
The problem is,
Just very small sized resolution video shows on Microsoft GraphEdit(Even though the video color is broken for raw color value and non UVC standard), I'll develop additional DirectShow color converter filter.).
I mean, in uvc.h source code, if CY_FX_UVC_STREAM_BUF_SIZE == 16KB(default), then 120x60 resolution is OK but more than the value just shows black screen.
I tried doubled CY_FX_UVC_STREAM_BUF_SIZE == 32KB(by CY_FX_EP_BULK_VIDEO_PKTS_COUNT 0x10 -> 0x20, GPIF designer's Action Settings's Counter Limit value is 16367 -> 32751). And then, just larger 120x120 resolution is OK.
I think 120x60(=14.4KB with 16bit color is less than 16KB) for CY_FX_UVC_STREAM_BUF_SIZE == 16KB(default) and 120x120(=19.2KB is less than 32KB) for CY_FX_UVC_STREAM_BUF_SIZE == 32KB are the limited value.
I checked mal-functioned(black screen) passing protocol by using a protocol analyzer( ellisys USB Explorer ). I found that 'IN transaction is 512 byes unit and the number of IN transactions is sometimes the same count of resolution, but sometimes the number is lack of the resolution count for a frame. When the 120x60 with 16KB buffer is working well, the size of IN transactions in each frames is all the same.
Please let me know what I have to fix.
P.S.: Please refer to the attached image file that shows the wrong sized frame data count on USB protocol analyzer.
Show LessHi,
we are using this (CY7C65215)chip set for converting USB port to Spi interface.
(Desktop-PC)Linux is at the USB port and spi device at the other end.
our Questions on this are
(1)when we connect to Desktop pc how it is enemurated?
Ex:a)we will first see lsusb there we can get the vendor id and product id:
b)As we are keeping spi on other end it should be shown as a device node in /dev/ttyXXX
The above device node /dev/ttyXXX is not shown in our device when we connected to Desktop pc
Is there any driver installation required for this board in linux.
I have seen some cypress configuration in kernel configuration may i know what these configurations for
kmod-usb-serial-cypress-m8
This configuration is to be enabled or disabled ? for the above interface.
What are the drivers required in linux to enable and enumerate the device in /dev/ttyXXX?
Thanks in advance.
Thanks
Sujith
Show LessHello there, I have been looking for an option to fix my broken controller (Saitek Pro Yoke) which uses the 56 pin version of CY7C64215 (CY7C64215-56LTXC)
I took a look over the components and tested most of them for damages and burns however everything seems normal which is proven by the states the device ends up when plugged in. When connected one of the following happens:
1. (1 in 1000 chance) the device loads and is working properly, all buttons and axis are working - which proves there are no short circuits on the IO
2. The device freezes right after plugged in even before the HID descriptors are sent [windows shows "Unknown USB Device (Device Descriptor Request Failed)"] the device has its own LCD display that is frozen as well
3. The device freezes right after sending the descriptors to windows - the device appears as functioning in windows, however no data are being transmitted and device is stuck.
A: My first question out of curiosity, has anyone experienced such a with freezing processor (maybe its just usb communication). The thing that bugs me most is that sometimes its work just fine.
B: Is there any possibility to debug it using PSoC designer or something else over USB or I2C? I dont have the original code, but I would be mainly interested to see if there is any debug output or way to access logs. -> They may prove that the processor is not stuck at all or maybe prove that NP = P
Thank you for all your replies
PS: I understand that my chances to repair it are very low, so I will probably end up building new HID interface anyway, so feel free to give any destructive ideas
Show Less