USB superspeed peripherals Forum Discussions
We have custom board designed with CYUSB3035-BZXI device & USB3.0 standard Type A connector for interfacing it with the host. We are using Cypress USB control center tool to detect & program the FX3 device.
Below are the brief description of test scenario:
- When we connect our board to an USB3.0 port of generation 5 laptop(HP-840), the FX3 device gets detected properly as USB3.1 device.
- When we connect our board to an USB3.0 port of generation 7 laptop(DELL Latitude 3590), the FX3 device gets detected properly as USB3.1 device.
- When we connect our board to an USB3.0 port of generation 8 laptop(DELL Latitude 3500), the FX3 device doesn’t even get detected. But when we connect the board to USB2.0 port, the device detection happens correctly as USB2.0.
Thanks for the help.
Gowtham
Show LessI have a design using FX3 superspeed transaction. In the FX3 setup, I assign Burstlen with 16 to achieve better performance.
It's a Bulk IN endpoint. Packet size = 1024. Buffersize = 16K x 8.
At the end of the tx, HW will issue a PKTEND to end the transaction. Under normal condition, PC can receive data
without any problem. When the problem happens, FX3 hangs and can't send any data back. Setting Burstlen to 1 seems to solve the problem.
Does anyone have any clue what's the cause of this problem?
Thanks
Tony
Show LessI would like to use the FX3S as a USB flash drive backed by a SD card. I see there is an example app and devkit FX3S DVK by Pactron to demonstrate this.
Is this example suitable for production? If not, how much more work is needed on the firmware side? I would like the product to support all file systems supported by Windows and MacOS and not need any custom drivers. Are there any performance numbers for read/write based on this example and DVK?
Show LessI designed a board has the same schematics as CYUSB3KIT-003.
When I connect the board to my PC and opened Control center, it shows: Cypress FX3 USB BootLoader Devices.
all the information for the board is exactly the same as which of CYUSB3KIT-003.
When I program the board to RAM, it shows: Programming succeeded, but the computer alerts: USB device can't recognize
I deconnected the board and connected again, try to program to EEPROM, it first shows: "waiting for Cypress Boot Programmer Device to enumerate", and then "Cypress Boot Programmer Device Not Found"
I'm sure the Pmod[2:0] set as: "F11" and the the "CyBootProgrammer.img" file is at
C:\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter
I tried to program "CyBootProgrammer.img" to the RAM directly, It succeeded, and it shows: "Cypress FX3 USB BootProgrammer Device" in the control center window.
When I tried program CYUSB3KIT-003 board following the same procedure as above, it works successfully.
I searched community froum, there are some similar question, but no answer for mine.
any one can help?
Show LessHello,
I have been trying to install the CYUSB3Kit-003 EZUSB FX3 USB Serial driver in order to create a COM (serial) port in Windows, but I have not had success installing the driver.
After successfully installing the driver for FX3 via the SDK, I downloaded and installed the USBSerialSDKSetup.exe from https://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit and attempted to install on a Windows 10 machine.
I ran the setup and then located the driver file, cyUSB3.inf to manually install it via Windows Device Manager, and I received a message that my driver did not successfully install, error code 31. I tried uninstalling and reinstalling it with no luck. I also tried the CypressSerial.inf driver. I tried the same process on a Windows 7 machine and I had the same issues (Please, see images below). The USB serial device driver "installs" but will not work properly because Windows cannot load it. So it shows up in the Device Manager list with a warning next to its name.
The FX3 SDK installed successfully, is there a working driver for the USB Serial function as well? The Cypress drivers don't load properly for Windows 10 or Windows 7. There are also Cypress USB serial drivers that Windows includes under the Ports and LPT device, but they also do not load properly.
Is there a method that I am missing here? I'd like to get this driver installed so that I can communicate with it via the serial port.
Thanks
Show LessSensorWrite (
uint8_t slaveAddr,
uint8_t highAddr,
uint8_t lowAddr,
uint8_t count,
uint8_t *buf)
{
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
CyU3PI2cPreamble_t preamble; /* Validate the I2C slave address. */
if ((slaveAddr != SENSOR_ADDR_WR) && (slaveAddr != I2C_MEMORY_ADDR_WR))
{
CyU3PDebugPrint (4, "I2C Slave address is not valid!\n");
return 1;
} if (count > 64)
{
CyU3PDebugPrint (4, "ERROR: SensorWrite count > 64\n");
return 1;
} /* Set up the I2C control parameters and invoke the write API. */
preamble.buffer[0] = slaveAddr;
preamble.buffer[1] = highAddr;
//preamble.buffer[2] = lowAddr;
preamble.length = 2;
preamble.ctrlMask = 0x0000; apiRetStatus = CyU3PI2cTransmitBytes (&preamble, buf, count, 0);
SensorI2CAccessDelay (apiRetStatus); return apiRetStatus;
}
SensorRead (
uint8_t slaveAddr,
uint8_t highAddr,
uint8_t lowAddr,
uint8_t count,
uint8_t *buf)
{
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
CyU3PI2cPreamble_t preamble; /* Validate the parameters. */
if ((slaveAddr != SENSOR_ADDR_RD) && (slaveAddr != I2C_MEMORY_ADDR_RD))
{
CyU3PDebugPrint (4, "I2C Slave address is not valid!\n");
return 1;
}
if ( count > 64 )
{
CyU3PDebugPrint (4, "ERROR: SensorWrite count > 64\n");
return 1;
} preamble.buffer[0] = slaveAddr & I2C_SLAVEADDR_MASK; /* Mask out the transfer type bit. */
preamble.buffer[1] = highAddr;
//preamble.buffer[2] = lowAddr;
preamble.buffer[2] = slaveAddr;
preamble.length = 3;
preamble.ctrlMask = 0x0002; /* Send start bit after third byte of preamble. */ apiRetStatus = CyU3PI2cReceiveBytes (&preamble, buf, count, 0);
SensorI2CAccessDelay (apiRetStatus); return apiRetStatus;
}
Hello,
I want to use an oscillator which is on my FX3 board.
ITTI has no information about the 14400076-19.200MHz crystal on thier website.
Could i get the datasheet of this crystal?
Please leave me a message about this issue.
Thanks.
Show LessHi Cypress
If USB3.1 will be connected, Is it still operate in the original high data rate (USB3.1 Gen1) even if video change from high resolution to low resolution (No relation to resolution)?Thank !!
Hello
We are currently using FX3 for USB 3.0 communication.
I want to change the connector to TypeC. Is it possible to use a CCG controller to perform USB3.0 communication with TypeC?
The CCG series does not have a built-in USB3.0 device, so I think it will have a configuration of FX3 + CCG.
Does the CCG series have a built-in 2: 1 switch for Super Speed?
Best Regards
Koji
Show LessHi
I have some problems with driving address lines through DR_ADDR in GPIF state machine, in combination with a DMA callback.
I built an image sensor interface based on a modified AN75779 example, with one single thread (THREAD0) DMAconfig type manual with 2 buffers and a callback function for DATA grabbing and again one single thread (THREAD2) DMAconfig type manual_out with 2 buffers and a callback function for driving ADDRESS lines.
I ultimately want to use the address lines for writing data from FX3 memory to an external memory through a dma callback. For now I want to just be able to drive address lines with (random) data while the video runs.
The GPIF interface is Master, Synchronous, Internal Clock, 8 pin data bus, 4 pin address bus.
The image sensor data grabbing works correctly and I get live video from the sensor. The address driving does not work continiously, it allows me to drive only one DMA buffer to the address lines, through a buffer commit in the initialization phase, not through the subsequent address DMA callback function.
A few questions I have:
- I noticed with the logic analyzer that despite the 4 pin wide Address bus defined in GPIF interface definition, the FX3 actually seems to drive 8 address pins in this mode. I see 8 address pins toggling. Why is that? Can the 4 extra Address pins be disabled in this mode?
- How does the Address DMA buffer map to the Address pins?
It looks like despite the 4 address pins configuration, each DR_ADDR action in the state machine takes 3 bytes from the associated DMA buffer, as if it were driving 24 address pins...
- I see the address lines toggling on the logic analyzer only for the very first address DMA buffer that I commit in the initialization phase. The video keeps running normally. The debug interface shows that the address DMA callback is succesfully called after the first adddress consumer event. It also shows that the dmachannelgetbuffer and dmachannelcommitbuffer are executed successfully inside the first call of the callback. However, I do not see the effect of that very first callback execution on the address pins. Also the callback is executed only once, suggesting that the address lines do not consume the buffer that is committed through the callback. What could be the reason(s) for that?
Thanks in advance for any help
Show Less