USB superspeed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
Hi,
I tried to use I2S with register mode. The function CyU3PI2sSetConfig is failing with a status error code of 0x40 which is CY_U3P_ERROR_BAD_ARGUMENT. Doesn't the CX3 I2S support register mode or am I missing anything in the configuration?
Following is the portion of code used for configuring I2S in register mode.
CyU3PI2sConfig_t i2sCfg;
CyU3PDmaChannelConfig_t dmaCfg;
/* First initialize the I2S interface. */
status = CyU3PI2sInit ();
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "CyU3PI2sInit failed, Error code = %d\n", status);
CyFxAppErrorHandler (status);
}
/* Configure the I2S interface. */
CyU3PMemSet ((uint8_t *)&i2sCfg, 0, sizeof (i2sCfg));
i2sCfg.isMono = CyFalse;
i2sCfg.isLsbFirst = CyFalse;
i2sCfg.isDma = CyFalse; //Register Mode
i2sCfg.padMode = CY_U3P_I2S_PAD_MODE_NORMAL;
i2sCfg.sampleRate = CY_U3P_I2S_SAMPLE_RATE_44_1KHz;
i2sCfg.sampleWidth = CY_U3P_I2S_WIDTH_16_BIT;
status = CyU3PI2sSetConfig (&i2sCfg, NULL);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "CyU3PI2sSetConfig failed, Error code = %X\n", status);
CyFxAppErrorHandler (status);
}
Hi,
I tried to run the UAC example in Linux (Ubuntu 16.04). This example, which streams audio from SPI flash at a rate of 48kHz sampling works fine. I modified the descriptor file for 16kHZ sampling rate and re-compiled it and it failed to work.
I am using Audacity in Linux to start streaming.
I have attached the whole folder of the example.
Show LessHi,
I have a CYUSB3KIT-003, and I can see the UART output following the user guide.
But, when I try the AN84868 img file, there is not any UART output.
Is any missing operation?
Thanks
Show LessHi,
I am developing on fx3 super speed board. First the board boots from USB as cypress bootloader and I upload my own image to RAM. Then the board is enumerated as Cypress FX3. A set configuration command is received from host computer, followed by a unknown vendor request 0xa0. Writing to UART Egress Data Register 0xE0000810 works fine before receiving unknown 0xa0 request, I can communicate with the micro attached to UART and finish protocol messages. After receiving the 0xa0 request and return with handle=False, I find a strange problem: I tried to write to UART Egress Data Register 0xE0000810, the whole micro totally stopped running.
I checked the most UART registers just before writing to the Egress data Register. UART Config Register= 0x80071103, UART Status Register=0x1f0000f0, UART Power Register=0x80000001, Uart interrupt Register=0xc8, Uart interrupt mask register = 0x202. All looks good.
Can anybody kindly tell me what caused the problem?
Show LessI am having some issues trying to add a new windowed resolution with the FX3 SDK. We are using the CX3 dev kit by e-con systems.
In the Cypress EZ USB Suite, I am able to import a project and get the camera running, but I am having some issues adding new resolution settings. I'd like to use the maximum resolution, but at an unusual aspect ratio. The camera is the OV5640, which has a max resolution of 2592x1944, but I'd like to use this at a 6:1 or 4:1 aspect ratio. I'd like to do this so that we can get higher frame rates at the max resolution.
When opening the ".cycx" file, I can see the settings, but the file is not editable. Is there a way to add a new resolution entry to this file? It looks like it is locked or something. Any help or hints would be great.
I've attached screen shots of the issue. The + and - buttons to add configurations are locked out for some reason.
Show LessI followed the guide in the "Using the FX3 SDK on Linux Platforms, Version 1.3.3" documentation.
Then I enter the firmware directory and run make cd ~/cypress/cyfx3sdk/firmware make ... === ... compile ===
No errors, so the installation seem to be ok.
Then I try to build an application like First_FX3_App. I do the following modification to the makefile:
-FX3FWROOT=../.. -FX3PFWROOT=../../u3p_firmware +FX3FWROOT=/home/petter/cpress/cyfx3sdk/firmware +FX3PFWROOT=/home/petter/cypress/cyfx3sdk/firmware/u3p_firmware
Then if I try to run make I get:
makefile:22: /home/petter/cpress/cyfx3sdk/firmware/common/fx3_build_config.mak: No such file or directory make: *** No rule to make target '/home/petter/cpress/cyfx3sdk/firmware/common/fx3_build_config.mak'. Stop.
Is there a problem with my installation structure or is the First_FX3_App made for a different version of the SDK?
There are quite a few candidates so I'm a bit confused:
find ~/cypress/ -name fx3_build_config.mak /home/petter/cypress/cyfx3sdk/fw_build/boot_fw/fx3_build_config.mak /home/petter/cypress/cyfx3sdk/fw_build/fx3_fw/fx3_build_config.mak /home/petter/cypress/cyfx3sdk/firmware/boot_fw/build/fx3_build_config.mak /home/petter/cypress/cyfx3sdk/firmware/common/fx3_build_config.mak
My environment (PATH modified to show last part)
env|egrep cypress\|ARM ARMGCC_VERSION=4.8.1 PATH=...:/home/petter/cypress/arm-2013.11/bin ARMGCC_INSTALL_PATH=/home/petter/cypress/arm-2013.11 FX3_INSTALL_PATH=/home/petter/cypress/cyfx3sdk
Any ideas?
Show LessI'm wondering where I can find the file arm926ejs_FX3.cfg. It looks like the most recent version of OpenOCD has the correct devices installed to work with the CY7C65215 on the Explorer Kit board. But that I can't tell until I try.
Otherwise I'll also need the patch files to patch and recompile OpenOCD.
Any advice is welcome.
I also have the same questions for Linux.
I have no access to Windows. Haven't touch the stuff in about 15 years. 😉
Finally, I want to get up and running on the kit using the debugger built in through the CY7C65215 on both Mac and Linux. Any pointers to someone who has already done this with advice would be great.
Thanx for the help in advance.
Show LessI was implement DMA read between FPGA and FX3. (FX3 SDK v1.3)
However, when DMA Read is continuously read, errors sometimes occur in FX3.
Ask for advice on the situation below.
The DMA Read method is as follows.
When an interrupt is generated in FX3 through GPIO in FPGA, FX3 is connected to state machine through GPIF Designer
Perform DMA Read function.
DMA Read is performed manually. (CY_U3P_DMA_TYPE_MANUAL).
Commit through CyU3PDmaChannelCommitBuffer() in DMA Callback function.
Counts the number of interrupts generated by the GPIO for debugging.
Counts the number called in the DMA Callback function for debugging.
The DMA read fails irregularly between 10,000 and 100,000 times, resulting in an error in FX3.
In this situation, the number of GPIO interrupts continues to increase.
In this situation, the number of DMA callback calls does not increase.
In the DMA configuration, it was tested by changing to AUTO, but the result is the same.
The Burst of EndPoint is set to 1.
EndPoint is Bulk type.
The DMA settings are as follows.
CyU3PMemSet((uint8_t *)&dmaConfig, 0, sizeof(dmaConfig));
dmaConfig.size = 16384;
dmaConfig.count = 8;
dmaConfig.prodSckId = CY_U3P_PIB_SOCKET_1;
dmaConfig.consSckId = CY_U3P_UIB_SOCKET_CONS_1;
dmaConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;
dmaConfig.notification = CY_U3P_DMA_CB_PROD_EVENT;
dmaConfig.cb = CyFxDMAReadCallback;
Status = CyU3PDmaChannelCreate(&glDMARead_Handle, CY_U3P_DMA_TYPE_MANUAL, &dmaConfig);
case 2)
The number of Burst was changed to 2.
The DMA read fails irregularly between 10 and 100 times, resulting in an error in FX3.
Show LessHi
I am developing a USB3.0 camera with CX3. I have designed two general purpose buttons and attached them to two GPIO pins on CX3 (GPIO 24 and 21). Currently, these two buttons are used for brightness + and -.
On the firmware side, I have managed to create a GPIO interrupt call back function and in which use CyU3PDmaChannelSetupSendBuffer to send the status interrupt packet to PC.
My question is on the PC side how I can capture the status interrupt? I use V4L2 on Ubuntu 16.04 to develope the PC software. I googled the question but I haven't found any answers. In the V4L2 specs I noticed there is VIDIOC_SUBSCRIBE_EVENT, but I am not sure if this can capture the interrupt from the device.
Thanks!
Show Less