USB low-full-high speed peripherals Forum Discussions
i'm now using a CY7C65215A in our new production,
One problem is "Device Configuration Utility" is windows only, and there is no API documents on flash its internal eeprom.
how can i config my lots of new boards under Linux os?
Show LessHey all,
I'm working on making my wrapper around the the CyUSB interface very robust, including being thread and process safe. I've gotten the device to recove in most of my uses cases via code, but there are still some important edge cases that currently require manually unplugging and replugging in the device to make it reset, or else needing to restart an application - which is undesirable.
To simulate different scenarios where things can go awry I'm using the CyUSBDevice reset and reconnect routines. In one of my tests I launch a separate thread that writes and reads a bunch of bulk data.What I want to happen is for the thread performing these I/O transactions to fail when I reset/reconnect/disconnect the device (whether through a false return value or exception). Sometimes this works, but other times it does not. Rather what happens is the CyUSBEndPoint gets stuck in the WaitForIO routine underneath the XferData function and hangs there, never returning! The only way to recover at this point is to kill the application..
Note that i have set the End Point Timeouts to 1sec in these tests - so the I/O if failing to timeout.
Please advise on how to properly interact with the CyUSBDevice and the Bulk End points so that this does not occur. I am using a global mutex to provide thread and process safe access to the device when reading/writing - but there is always the potential for *something* to take down the device, even if just physically unplugging and replugging it back in. I should be able to recover without the CyUSB getting into a deadlock.
Thanks,
Ryan
Hi
I want to use your CyUSBSerial SDK to send commands to TI DLP4710EVM-LC. The Cy7c65215 dual channels chip is configured as below by TI
---------------------------------------------------------------------------------
Device Number | VID | PID | INTERFACE NUMBER | FUNCTIONALITY
---------------------------------------------------------------------------------
0 |4b4 |a | 0 | VENDOR_I2C
0 |4b4 |a | 1 | VENDOR_SPI
0 |4b4 |a | 2 | NA
---------------------------------------------------------------------------------
I add a few lines to set GPIO as below
int deviceNum=0;
int interfaceNum=0;
CY_HANDLE s_Handle;
rStatus = CyOpen (deviceNumber, interfaceNum, &s_Handle);
if (rStatus != CY_SUCCESS){
printf ("CY_I2C: Open failed \n");
}
uint8_t Value = 0;
uint8_t gpioNumber =5;
rStatus = CySetGpioValue(s_Handle, gpioNumber, 1);
if (rStatus != CY_SUCCESS) {
printf ("CY:Error in setting GPIO 5 to 1 : Error NO:<%d> \n", rStatus);
}else{
printf("Succeed in setting GPIO 5 to 1 \n");
}
rStatus = CyGetGpioValue(s_Handle, gpioNumber, Value);
if (rStatus != CY_SUCCESS) {
printf ("CY:Error in getting GPIO 5 : Error NO:<%d> \n", rStatus);
}else{
printf ("GPIO value?:<%d> \n", Value);
}
CyLibraryExit ();
free (glDevice);
CyClose (&s_Handle);
I got result as below
CY:Error in setting GPIO 5 to 1 : Error NO:<6>
CY:Error in getting GPIO 5 : Error NO:<6>
Can any one give a help? Thanks!
Derlin
Show LessHi,
I am looking at PSoC6 + CY7C68001 (https://www.cypress.com/file/124346/download), which I found as the only possible solution from cypress in combination with PSoC, or would you suggest something else?
The goal is to find an ARM + some programmable logic + high-speed usb.
Best regards,
Uros
Hi Team,
Im using EZ-USB FX3 CYUSB3KIT-001 for USB 2.0 Compliance testing.
Im able to perform all Device Hi Speed Transmitter tests with USB Bootloader mode. During this mode Fx3 enumerates as below (Selected VID 0x4b4)
To perform Device Receiver Sensitivity tests, I need the device address and endpoint address of the device, so I downloaded one of your firmware examples - cyfxbulklpauto
This firmware is dowloaded in flash and boot mode is configured as SPI boot.
After this Im not able to enumerate the FX3 device in EHCI HS Electrical Test tool.
Also help me in constructing a IN Token packets for any given device.
Thanks and awaiting your reply.
Show LessHaving been through the driver resell process once with you back in May this year (Srinath.S@cypress.com helped but his EMail is no longer receiving messages) we have found that we need to get an updated version of the driver signed. Can you contact me so that we can (re)start the process, thanks.
Show LessRegarding Raid1 example code, in the CyFxMscApplnDmaCb () function, is the "CyU3PDmaBuffer_t dmaBuf = input->buffer_p" used to hold the read/write operation when data is transfered between to/from sdCard via dma?
any helpful answer is appriciated
Show LessI'm using the raid1 usb-dongle-on-chip and using Raid1 example code to run the device. I'm trying to display the data that is written to the SD card using the CyU3PDebugPrint but when doing this it prints the first 8 bytes and then it stucks!
This is the code:
if (type == CY_U3P_DMA_CB_PROD_EVENT)
{
CyU3PDmaCBInput_t *input1=input;
for (index = 9; index < input1->buffer_p.count; index++)
{
CyU3PDebugPrint (4, "Write buffer before change [%d] = %x\r\n", index, input1->buffer_p.buffer[index]);
}
/* This is a produce event notification to the CPU. This notification is
* received upon reception of every buffer. The buffer will not be sent
* out unless it is explicitly committed. The call shall fail if there
* is a bus reset / usb disconnect or if there is any application error. */
status = CyU3PDmaMultiChannelCommitBuffer (chHandle, input->buffer_p.count, 0);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "CyU3PDmaChannelCommitBuffer failed, Error code = %d\r\n", status);
}
GLCommitCount++;
}
}
Show LessWe have a setup of FPGA connected to FX3 and FX3 connected to Host. One scenario is that when Host write a command to FPGA, FPGA will respond and write some data back to FX3 so host can read it. When the command is written, in logic analyzer we can see that the FPGA received the command and wrote the data in FX3 buffer, but when host read from the end point, it always blocks (timed out). Is there a way to verify that FPGA data actually arrived FX3 buffer?
On linux, the write and read has been tested with the Cypress superspeed explorer kit and works fine. The same setting with FPGA has also been working under Windows.
Show LessHello,
I am currently using the CY7C65211 from CY8CKIT-049-4200, in a project, where I have one configured as USB-Serial, AND another one as USB-I2C, on the same PC host.
I have been using the source code (v2.0.3) from the SDK to access the USB-I2C one, and it seems that there might be some confusion in the usage of parameter deviceNumber in function CyGetDeviceInfoVidPid and CyOpen.
In the examples (usbserialexample\(uart|spimaster|i2cmaster)), the end of the FindDeviceAtSCB0 function is returning an Index (used later in CyOpen as deviceNumber parameter) when it finds a device with the right PID/VID (+ SerialBlock_SCB0), but in my tests, it seems that it would require to pass the deviceID[index] value to CyOpen instead of only the index, when the USB-Serial one is connected too.
[ When I look at the Linux source code, the CyGetDeviceInfoVidPid function is filling the UINT8* deviceNumber structure with something called 'DevNum' which looks uncorrelated to 'index', and that would tend to confirm that using deviceID[index] should be used to get the DeviceNumber for CyOpen. ]
Can someone confirm this ?
JJ