I have CYUSB3014, and i willing to i2c working in slave fifo,because we want to transfer USB data and i2C data at the same time .
Is this can possible?If it's can do it, could you please let me know example source code like bulkloop or slavefifo ?
Thank youShow Less
I'm using Qt Creator 7.0.1 based on Qt 6.2.3 (MVSC 2019, 64bits)
I got several issues while trying to build my project.
CyAPI.lib(CyAPI.obj):-1: erreur : LNK2019: symbole externe non r‚solu __imp_UnregisterDeviceNotification r‚f‚renc‚ dans la fonction "public: void __cdecl CCyUSBDevice::DestroyHandle(void)" (?DestroyHandle@CCyUSBDevice@@QEAAXXZ)
CyAPI.lib(CyAPI.obj):-1: erreur : LNK2019: symbole externe non r‚solu __imp_RegisterDeviceNotificationA r‚f‚renc‚ dans la fonction "private: bool __cdecl CCyUSBDevice::RegisterForPnpEvents(void *)" (?RegisterForPnpEvents@CCyUSBDevice@@AEAA_NPEAX@Z)
CyAPI.lib(CyAPI.obj):-1: erreur : LNK2019: symbole externe non r‚solu __imp_MessageBoxA r‚f‚renc‚ dans la fonction "int `public: bool __cdecl CCyUSBDevice::Open(unsigned char)'::`1'::catch$0" (?catch$0@?0??Open@CCyUSBDevice@@QEAA_NE@Z@4HA)
Do you know what is missing ?
my .pro file possess these libraries
LIBS += "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\library\cpp\lib\x64\CyAPI.lib"
LIBS += "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64\SetupAPI.Lib"
LIBS += "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\lib\x64\legacy_stdio_definitions.lib"
INCLUDEPATH += "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\library\cpp\inc"
I follow Adding Communication Device Class Interface to FX3 Firmware - KBA229099. and added all the codes into cyfxslfifousbdscr.c and cyfxslfifosync.c. When i try it out at my host-PC, windows 10 device manager can detect the cypress bootloader but the USB-Serial-device did not show up in device-manager-other device.
i am using the example from SlaveFifoSync.rar in https://community.infineon.com/t5/Knowledge-Base-Articles/Adding-Communication-Device-Class-Interface-to-FX3-Firmware-KBA229099/ta-p/259825
do i need to add the codebelow from https://community.infineon.com/t5/Resource-Library/SlaveFiFoSync-example-with-a-CDC-debug-console/ta-p/246083, into cyfxslfifosync.c
// Only proceed if USB connection is up
// Tear down DMA channels that need to be reassigned
// Switch console
UsingUARTConsole = !UsingUARTConsole;
CyU3PDebugPrint(4, "Switching console to %s", UsingUARTConsole ? "UART" : "USB");
CyU3PThreadSleep(100); // Delay to allow message to get to the user
// Disconnect the current console
CyU3PThreadSleep(100); // Delay to allow Debug thread to complete and all buffers returned
// Connect up the new Console out - this is simpler than the I2C case since the USB socket is an infinite sink
Status = CyU3PDebugInit(UsingUARTConsole ? CY_U3P_LPP_SOCKET_UART_CONS : CY_FX_EP_CONSUMER_CDC_SOCKET, 8);
CyU3PDebugPreamble(CyFalse); // Skip preamble, debug info is targeted for a person
// Say hello on the new console
CyU3PDebugPrint(4, "Console is now %s", UsingUARTConsole ? "UART" : "USB" );
// Now connect up Console In
Status = InitializeDebugConsoleIn(UsingUARTConsole);
// Connect CDC_Loopback if necessary
else CyU3PDebugPrint(4, "USB not active, cannot switch consoles\n");
CyU3PReturnStatus_t InitializeDebugConsoleIn(CyBool_t UsingUART)
CyU3PDebugPrint(4, "\nSetting up USB_CDC Console In");
CyU3PMemSet((uint8_t *)&dmaConfig, 0, sizeof(dmaConfig));
dmaConfig.size = EpSize[CyU3PUsbGetSpeed()];
dmaConfig.count = 2;
dmaConfig.prodSckId = CY_FX_EP_PRODUCER_CDC_SOCKET;
dmaConfig.consSckId = CY_U3P_CPU_SOCKET_CONS;
dmaConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;
dmaConfig.notification = CY_U3P_DMA_CB_PROD_EVENT;
dmaConfig.cb = CDC_CharsReceived;
Status = CyU3PDmaChannelCreate(&CDCtoCPU_Handle, CY_U3P_DMA_TYPE_MANUAL_IN, &dmaConfig);
if (Status != CY_U3P_SUCCESS) CyU3PDmaChannelDestroy(&CDCtoCPU_Handle);
Status = CyU3PDmaChannelSetXfer(&CDCtoCPU_Handle, 0);
Dear infineon team,
I am trying to port my old code build using 1.3.1 SDK to 1.3.4 SDK. I faced a problem during I2C communication. I was sending some data through I2C before the CyU3PConnectState() API in my previous code. But while using 1.3.4 SDK the data transmitted over I2C was not written properly in registers. This is happening randomly (out of 5 times 2 or 3 times this issue occurs) . But in 1.3.4 SDK when I transmit I2C data after the CyU3PConnectState() API it is working properly.
kindly provide a solution to sort out this issue.
I am currently learning to work with the EZ-USB FX3 kit and trying to implement some UART messages to follow the execution of my programs with a puTTy terminal.
The CyU3PDebugPrint() function, frome the cyu3system.h library, seems to be made for that purpose, however I have not been able to make it work so far, even though the subject has been discussed many times on this forum.
In particular, I am confused by the fact that there are entire blocks of code dedicated to initializing the UART in the UsbUart example firmware that are not mentioned in this article on how to use the function.
I also tried to import and run the edited Debug firmware provided in this previous discussion about a similar issue, yet cannot read anything in my terminal.
For your information, PuTTy scans the COM port on the USB 2.0 connector, since it is linked with the UART interface, with the default settings (115200 bauds, 8 data bits, no Parity bit, 1 stop bit, no Flow control). Could I be doing this wrong ?
>Do you happen to have a template on how to use this DebugPrint function for a basic application? My next test would be to print a message when the on-board user button is pressed.
>Is there another message-printing function I might have missed and that could be easier to use?
Thanks very muchShow Less
As per Infineon's latest USB Product Roadmap, there has been mention of WLCSP package of FX3 Controller. I am attaching the latest Product Roadmap.
This package is almost half the size of standard BGA package. But there is no information on this WLCSP package on Infineon website.
Please check and let us know if this package is still under considerations or not? If yes then please help in providing details for this package.
Thanks & Regards,
Sunny WattsShow Less
I understand that when using a 19.2 or 38.4 MHz clock, the system clock frequency will be 384 MHz.
When using a 26 or 52 MHz clock, the system clock will be 416 MHz.
Is there a way to check in the firmware which frequency the system clock is running on?
I encounter an issue while trying to build a code using CyAPI.lib in Visual Studio Community 2022.
I've followed the setup :
1. Added the path to the headers in my project options (The #include "CyAPI.h" works)
2. Added the path to CyAPI.lib in my project options (linker)
3. Added the setupapi.lib in my project options (linker)
I encounter the following message :
LNK2019 symbole externe non résolu sprintf référencé dans la fonction "public: void __cdecl CCyUSBDevice::UsbdStatusString(unsigned long,char *)" (?UsbdStatusString@CCyUSBDevice@@QEAAXKPEAD@Z) ConsoleApplication2 C:\Users\Christophe.Siebentha\source\repos\ConsoleApplication2\ConsoleApplication2\CyAPI.lib(CyAPI.obj) 1Show Less
I have developed a board with 4x CX3 (CYUSB3065) connected into a USB 3.2 x1 Gen1 HUB 5 Gbps (Texas Instruments TUSB8042A). The upstream port of the USB HUB is connected to my laptop (USB 3.1 Gen 2, 10Gbps). To each CX3 circuit, I'm connecting a 12 MP 10 fps RAW8 image sensor. The CX3s use bulk endpoint for video streaming.
Unfortunately, when I stream at high resolution from 3 or 4 CX3 at the same time, I am getting timeouts on V4L2:
[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (998) tryIoctl VIDEOIO(V4L2:/dev/video8): select() timeout.
Moreover, using usbtop utility, I could see that the transfer speed for the cameras that get timeouts drop to 0 Kbps. However, with 1 or 2 CX3 streaming at the same time, it works good. Streaming all 4x cameras at lower resolutions also works. I suspect of a USB bandwidth problem and I am wondering what can I do to solve the issue. I tried different USB3 HUBs with no success. The only way to make 4 cameras stream at high res at the same time without timeouts is by using two different host ports. This means using 2 custom boards, each with 2x CX3 streaming at high res.
Do you have any suggestion on what I could try next? Can isochronous endpoints for video streaming help in here?
Kevin SegoviaShow Less
For my initial evaluation of USB3 Vision, I am using the source code shared in the forum. Using that source code, I am able to enumerate the device as a USB3 Vision device, but I cannot connect to any GenICAM application to test the streaming. Any guidance on this would be appreciated.
Thanks in Advance,
Vigneshkumar R.Show Less