USB superspeed peripherals Forum Discussions
Hi,
It seems to have some restrictions around the FX3 internal clocks. For example, there is a mention about DMA overflow in some cases if we decrease the internals clocks. The main problem here is we want to decrease the power consumption of the FX3 (each mA counts!). For this particular design, we will operate only in USB 2.0. Does anybody has some experience about safe settings for internal clocks of the FX3? (CPU, DMA clocks?)
Thanks,
Denis.
Show LessHi
This is first time to make USB device by FX3.
I make a board that create A/D data on FPGA and send though FX3 to PC.
I succeed to make a data on FPGA, and receive data from FPGA.
but, transfer trigger is made by PC host software.
So if i want to receive data, always click the Receive button on my C# host program.
I want to make send trigger signal by External device, when A/D conversion is ended.
(The time interval between each A/D conversion is not same. ) .
Is it possible with interrupt endpoint?
If can, how can i detect the trigger signal from external device on PC Software?
Show LessI am trying to communicate to an enclustra FPGA development board through USB. The device shows up in the Windows 10 device manager as FX3 with an exclamation mark.
I have tried to go to windows 10 device manager, find the FX3 that shows under "other devices" with an exclamation mark. Right click and select "update driver" then "browse my computer for driver software" point it to the folder that has the cyusb3.inf as well as cyusb3.sys in it and click "next". Then I get the following message: "Windows was unable to install your FX3" "Windows could not find drivers for your device..."
My windows version is: Windows 10 64 bit, Version 1803, OS Build 17134.137
I installed Cypress FX3SDKSetup_1.3.4 and pointed to the windows 10 64 bit driver folder to find cyusb.inf and cyusb3.sys
Everything was working fine under windows 7 but my PC crashed and I can not go back to that.
I appreciate any help I can get.
Show LessI have an application processor which is interfaced to the Cypress FX3 chip via memory controller. My job is to access the S-Port via the P-Port, configure it and perform R/W to an SD card connected to the SIB0. I have been able to initialize the card successfully. So I know that the SD command interface is working. Now I have to perform block R/W from/to the SD card, and I'm stuck here because the S-Port does not support any FIFO interface(please correct me if I'm wrong). I've looked at the reference code and in that code, I see that the S-Port is interfaced with the DMA. Please note that in my case, doing DMA will be complicated and very inefficient because the data buffer(read or write) is stored in the application processor and cannot be passed directly to the FX3s. Therefore, if I have something to write to the SD card via DMA, I will firstly have to copy the buffer from the application processor to the FX3s internal memory and then initiate a write via DMA. Please note that this is very inefficient. Another thing that I can do is transfer data byte by byte via the CMD52 interface. Apart from being slow and undesirable, it does not allow to transfer more than 16 bytes at a time and requires a new command for every byte transfer. The Application processor and the FX3s don't have any shared memory and therefore the above mentioned mechanisms are the only possible.
Back to the original question: I can get rid of all this if the S-Port has a FIFO R/W register. With that, I can trigger a CMD53 and continuously perform R/W on that register based on some condition. That would make my implementation simpler and faster. In the reference manual, I do not see any such register but the reference manual seems to be not complete anyway so I think its best if I ask this question on the forum. Hopefully I'll have answer to this question very soon.
Show Less
I would like to debug FX3 on Ubuntu 16.04 LTS.
I use the latest SDK 1.3.3.
I have a problem with openocd:
$ /opt/cypress/cyfx3sdk/JTAG/OpenOCD/Linux/x64/openocd -f /opt/cypress//cyfx3sdk/JTAG/OpenOCD/Config/arm926ejs_fx3.cfg
Open On-Chip Debugger 0.8.0 (2014-12-03-16:28)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Warn : Adapter driver 'cy7c65215' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
adapter speed: 1000 kHz
trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
RCLK - adaptive
adapter speed: 1000 kHz
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
USB Device: Vid=9fb Pid=6001 Intf=1
USB Interface 0: Type=255
Error: CyGetDeviceInfo failed
USB Device: Vid=4b4 Pid=5 Intf=5
USB Interface 0: Type=0
USB Interface 1: Type=0
USB Interface 2: Type=0
USB Interface 3: Type=0
USB Interface 4: Type=5
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyGetDeviceInfo failed
Error: CyJtagDevice Not found
in procedure 'init'
The same error is returned inside ezUsbSuite trying to launch openocd.
If I understand correctly, openocd detects USB-Serial device correctly.
$lsusb
Bus 004 Device 003: ID 17ef:3070 Lenovo
Bus 004 Device 002: ID 17ef:3070 Lenovo
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 17ef:3075 Lenovo
Bus 003 Device 008: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 007: ID 17ef:306f Lenovo
Bus 003 Device 123: ID 04b4:00f3 Cypress Semiconductor Corp.
Bus 003 Device 006: ID 09fb:6001 Altera Blaster
Bus 003 Device 101: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 003 Device 100: ID 04b4:0005 Cypress Semiconductor Corp.
Bus 003 Device 099: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 003 Device 097: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 003: ID 17ef:3071 Lenovo
Bus 003 Device 002: ID 17ef:3071 Lenovo
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0bda:0316 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04f2:b604 Chicony Electronics Co., Ltd
Bus 001 Device 003: ID 04f2:b613 Chicony Electronics Co., Ltd
Bus 001 Device 002: ID 17ef:3074 Lenovo
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
On the custom board, I have a 4-port hub:
- port 1: not used
- port 2: FTDI231
- port 3: CY7C65215
- port 0: FX3 UART (works fine)
- port 1: FX3 jTag (openocd has a problem described above)
- port 4: FTDI231
Show Less
$dmesg
...
[ +15,759768] usb 3-1.2.1: new high-speed USB device number 16 using xhci_hcd
[ +0,148158] usb 3-1.2.1: New USB device found, idVendor=0424, idProduct=2514
[ +0,000002] usb 3-1.2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ +0,000879] hub 3-1.2.1:1.0: USB hub found
[ +0,000018] hub 3-1.2.1:1.0: 4 ports detected
[ +0,286859] usb 3-1.2.1.2: new full-speed USB device number 17 using xhci_hcd
[ +0,108158] usb 3-1.2.1.2: New USB device found, idVendor=0403, idProduct=6015
[ +0,000001] usb 3-1.2.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0,000001] usb 3-1.2.1.2: Product: FT231X USB UART
[ +0,000001] usb 3-1.2.1.2: Manufacturer: FTDI
[ +0,000001] usb 3-1.2.1.2: SerialNumber: DM00D53X
[ +0,003890] ftdi_sio 3-1.2.1.2:1.0: FTDI USB Serial Device converter detected
[ +0,000028] usb 3-1.2.1.2: Detected FT-X
[ +0,000403] usb 3-1.2.1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[ +0,079480] usb 3-1.2.1.3: new full-speed USB device number 18 using xhci_hcd
[ +0,106464] usb 3-1.2.1.3: New USB device found, idVendor=04b4, idProduct=0005
[ +0,000001] usb 3-1.2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ +0,000001] usb 3-1.2.1.3: Product: USB-Serial (Dual Channel)
[ +0,000001] usb 3-1.2.1.3: Manufacturer: Cypress Semiconductor
[ +0,001637] cdc_acm 3-1.2.1.3:1.0: ttyACM0: USB ACM device
[ +0,000425] cdc_acm 3-1.2.1.3:1.2: ttyACM1: USB ACM device
[ +0,015808] usb 3-1.2.1.4: new full-speed USB device number 19 using xhci_hcd
[ +0,108836] usb 3-1.2.1.4: New USB device found, idVendor=0403, idProduct=6015
[ +0,000001] usb 3-1.2.1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0,000001] usb 3-1.2.1.4: Product: FT231X USB UART
[ +0,000001] usb 3-1.2.1.4: Manufacturer: FTDI
[ +0,000001] usb 3-1.2.1.4: SerialNumber: DM00CXDF
[ +0,003762] ftdi_sio 3-1.2.1.4:1.0: FTDI USB Serial Device converter detected
[ +0,000021] usb 3-1.2.1.4: Detected FT-X
[ +0,000364] usb 3-1.2.1.4: FTDI USB Serial Device converter now attached to ttyUSB1
Hi, I have some questions about AN75779.
In this project,I open /*DEBUG_PRINT_FRAME_COUNT*/ like
and the debug show
.
and I can see the video by VirtualDub .
But after normal operation for some time,the debug show:
UVC: Completed 1289 frames and 0 buffers
UVC: Completed 1318 frames and 37 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Started
UVC: Completed 0 frames and 0 buffers
DMA Reset Event: Commit buffer failure
Application Stopped
Application Stopped after 40 Commit buffer failures
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
UVC: Completed 0 frames and 0 buffers
And no video display ......What causes this phenomenon? How can I solve this problem.
Show LessGood evening!
I have wired FX3S to a microSD socket consistent with the diagram in FX3S 4-Wire microSD PCB Design ??? . Though low voltage (1.8v) was considered in this thread, 3.3v was used consistent with the image.
The SD card is initialized as simply as possible, and without error, a la
CyU3PSibIntfParams_t intfParams;
intfParams.resetGpio = 0xFF;
intfParams.rstActHigh = CyTrue;
intfParams.cardDetType = CY_U3P_SIB_DETECT_NONE;
intfParams.voltageSwGpio = 0xFF;
intfParams.lvGpioState = CyFalse;
intfParams.writeProtEnable = CyFalse;
intfParams.lowVoltage = CyFalse;
intfParams.useDdr = CyFalse;
intfParams.maxFreq = CY_U3P_SIB_FREQ_26MHZ;
intfParams.cardInitDelay = 0;
errno1 = CyU3PSibSetIntfParams (0, &intfParams);
errno1 |= CyU3PSibStart ()
However, attempting to query the device always yields error 0x68
static CyU3PSibDevInfo_t glDevInfo; /* Structure to hold device info */
errno3 = CyU3PSibQueryDevice (0, &glDevInfo);
Am I overlooking something simple?
TIA
Hello.
I have a denebola devboard (CX3 + OV5640)
I hope add any resolutions to USB2 type connection.
I made
1) add frame descriptors in descriptor file (for example 1280*720)
/* Class specific Uncompressed VS frame descriptor 2 - 720p@ 60fps*/
0x1E, /* Descriptor size */
ES_UVC_CS_INTRFC_DESCR, /* Descriptor type*/
0x05, /* Subtype: Uncompressed frame interface*/
0x02, /* Frame Descriptor Index: 2 */
0x00, /* No Still image capture method supported */
0x00, 0x05, /* Width in pixel: 1280 */
0xD0, 0x02, /* Height in pixel: 720 */
0x00, 0x00, 0x57, 0x00, /* Min bit rate
0x00, 0x00, 0xBC, 0x34, /* Max bit rate
0x00, 0x20, 0x1C, 0x00, /* Maximum video frame size in bytes(Deprecated): 1280 x 720 x 2 */
0x0A, 0x8B, 0x0E, 0x00, /* Default frame interval (in 100ns units): (1/60)x10^7 */
0x01, /* Frame interval type : No of discrete intervals */
0x0A, 0x8B, 0x02, 0x00, /* Frame interval 3: Same as Default frame interval */
2) add handler in code
if(FrameIndex == 0x01)
{
/* Write VGA Settings */
status = CyU3PMipicsiSetIntfParams (&cfgUvcVga30NoMclk, CyFalse);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "\n\rUSBStpCB:SetIntfParams HS Err = 0x%x", status);
}
esOV5640_VGA_config();
esOV5640_VGA_HS_config();
}
else if(FrameIndex == 0x02)
{
/* Write VGA Settings */
status = CyU3PMipicsiSetIntfParams (&cfgUvcVga30NoMclk, CyFalse);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "\n\rUSBStpCB:SetIntfParams HS Err = 0x%x", status);
}
esOV5640_VGA_config();
esOV5640_VGA_HS_config();
}
But I not understand how setup gpif , mipi lanes and probes, and ov5640 registers with this resolution
Many thanks
Show LessIts a very wired problem that two of my boards connect to WIN10 PC usb3.0 port the system will send reset signal to re-enumerate the device about every few minutes but other boards is fine, it should be a hardware problem but how it happen and what should i notice?
Show LessHello,
When i started with my computer it had EZ USB ver 1.3.3 and Windows 7. I then migrated to Win 10 and kept using ver 1.3.3. Now i just tried upgrading to ver 1.3.4 and this error came up.
I tried a clean uninstall and it appears nothing helps it. Every time i run the installation exe for 1.3.4 it gives me the above error when it tries to run the ARM GCC installer. I even found the ARM GCC.exe in the Updates folder and tried to run Repair there and this same issue shows up.
Do you have any idea how to get past this and actually install the EZ USB FX3 SDK?
Show Less