USB superspeed peripherals Forum Discussions
I need some help selecting the optimum voltage for VIO1. In particular, I am interested in anyone's real-life experience of using different voltages (1.8, 2.5, and 3.3 volts) at different frequencies. For example, if the FX3 is operated at 100 MHz, can the I/Os be truly driven at 3.3 volts?, Or do I need to go for 1.8 volts to minimize noise?
What would be (really) nice to have is a table that shows the maximum frequency that can be reliably achieved at each voltage.
Thanks,
Mo
Show LessHi all here I am building elf by using firmware example gpiftousb provided by cypress for superspeed device(fx3).
after generating elf I am trying to boot it from control center ,but the device is not enumerating , I mean not detecting any endpoints.
I didn't do any changes in program, hence its have no errors.
I just built elf and tried to boot control center by the generated elf.
Show LessI've bought CX3 MCU chip. It is marked as CYUSB3065, but bootloader is for SD3 (see screenshot). Does anybody faced with this problem? Is it possible to fix it?
Show LessDear all,
to get into programming the FX3 I tried to blink the LED on the FX3 Development Kit and tried to establish some debug messages via UART.
So I took the BootLedBlink Example Project and tried to build the UART function into it. I get a bit confused of what the library source ...FX3... and ...U3P... stands for. Seems to me that every function has a BOOT member and a U3P member. What is the difference between these two?
Nevertheless I now get a compiler error:
'Invoking: Cross ARM C Compiler'
arm-none-eabi-gcc -mcpu=arm926ej-s -marm -mthumb-interwork -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g3 -I"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\/fw_lib/1_3_3/inc" -I"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\/boot_lib/1_3_3/include" -std=gnu11 -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
In file included from C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\/fw_lib/1_3_3/inc/cyu3system.h:28:0,
from ../main.c:27:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\/fw_lib/1_3_3/inc/cyu3dma.h:701:16: error: field 'lock' has incomplete type
CyU3PMutex lock; /**< Lock for this channel structure. */
I get this error even when I didn't use the cyu3dma.h header file.
Here is an excerpt from the main file:
#include "cyfx3device.h"
#include "cyfx3utils.h"
#include "cyfx3gpio.h"
#include "defines.h"
#include "cyu3system.h"
#include "cyu3error.h"
#include "cyu3system.h"
#include "cyu3types.h"
#include "cyu3uart.h"
#include "cyu3gpio.h"
#define FX3_GPIO_TEST_OUT (50)
#ifndef NULL
#define NULL ((void *) 0)
#endif
void
CyFxBulkSrcSinkApplnDebugInit (void)
{
....
}
int main (void)
{
/*CyFx3BootErrorCode_t status;*/
CyU3PIoMatrixConfig_t io_cfg;
CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
CyBool_t value;
/* Initialisiere das Gerät */
CyU3PSysClockConfig_t clockConfig;
clockConfig.setSysClk400 = CyFalse;
clockConfig.cpuClkDiv = 2;
clockConfig.dmaClkDiv = 2;
clockConfig.mmioClkDiv =2;
clockConfig.useStandbyClk = CyFalse;
clockConfig.clkSrc = CY_U3P_SYS_CLK;
status = CyU3PDeviceInit (&clockConfig);
if (status != CY_U3P_SUCCESS)
{
goto handle_fatal_error;
}
CyFxBulkSrcSinkApplnDebugInit();
CyU3PDebugPrint (1, "\n\ndebug initialized\r\n");
CyFx3BootDeviceInit (CyTrue);
/* Enable the GPIOs for the LED and the switch. */
io_cfg.isDQ32Bit = CyFalse;
io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.useUart = CyTrue;
io_cfg.useI2C = CyFalse;
io_cfg.useI2S = CyFalse;
io_cfg.useSpi = CyFalse;
io_cfg.lppMode = CY_U3P_IO_MATRIX_LPP_UART_ONLY;
io_cfg.gpioSimpleEn[0] = 0;
io_cfg.gpioSimpleEn[1] = (1 << (APP_LED_GPIO - 32)) | (1 << (APP_SWITCH_GPIO - 32));
io_cfg.gpioComplexEn[0] = 0;
io_cfg.gpioComplexEn[1] = (1 << (APP_LED_GPIO - 32)) | (1 << (APP_SWITCH_GPIO - 32));
status = CyU3PDeviceConfigureIOMatrix (&io_cfg);
if (status != CY_FX3_BOOT_SUCCESS)
{
return status;
}
/* Flash the LED to indicate that initialization succeeded. */
CyU3PGpioSetValue (APP_LED_GPIO, CyTrue);
CyFx3BusyWait (50000);
CyU3PGpioSetValue (APP_LED_GPIO, CyFalse);
CyFx3BusyWait (50000);
CyU3PGpioSetValue (APP_LED_GPIO, CyTrue);
CyFx3BusyWait (50000);
CyU3PGpioSetValue (APP_LED_GPIO, CyFalse);
/* We keep looping around and copying the state of the SWITCH GPIO onto the LED GPIO. */
while (1)
{
CyU3PGpioSetValue (APP_SWITCH_GPIO, value);
CyU3PGpioSetValue (APP_LED_GPIO, value);
//CyFx3BootBusyWait (1000000);
//CyFx3BootGpioSetValue (APP_LED_GPIO, CyFalse);
CyFx3BusyWait (50000);
}
return 0;
handle_fatal_error:
/* Cannot recover from this error. */
while (1);
}
Show LessDear Sir,
I want to configure GPIO46 as PWM output, but error code = 68 is return , it means CY_U3P_ERROR_NOT_CONFIGURED .
But when gpio46 is override and configured by simple gpio, no error return.
Can Gpio46 be configured as complex gpio?
David
status = CyU3PDeviceGpioOverride (46, CyTrue); // configuring GPIO 46 LED_PWM
gpioConfig1.outValue = CyFalse;
gpioConfig1.inputEn = CyFalse;
gpioConfig1.driveLowEn = CyTrue;
gpioConfig1.driveHighEn = CyTrue;
gpioConfig1.pinMode = CY_U3P_GPIO_MODE_PWM;
gpioConfig1.intrMode = CY_U3P_GPIO_NO_INTR;
gpioConfig1.timerMode = CY_U3P_GPIO_TIMER_HIGH_FREQ;
gpioConfig1.timer = 0;
gpioConfig1.period = CY_FX_PWM_PERIOD;
gpioConfig1.threshold = CY_FX_PWM_25P_THRESHOLD;
status = CyU3PGpioSetComplexConfig(46, &gpioConfig1);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "CyU3PGpioSetComplexConfig failed, error code = %d\n",status);
CyCx3UvcAppErrorHandler(status);
}
Show LessHi,
I find out that from the SDK package there are several example code to program .img file into SPI flash,
but I never find a sample code to read from SPI flash to a file. I only find out read verify firmware segment
on the fly while programming the SPI.
Can Cypress customer support team have this kind of example code ?
Thanks,
Henry
Show LessHi,
My design integrates a Cypress FX3 CYUSB3014-BZXC and I need a GPIF 100MHz 2.5V interface.
There is no problem to set VIO1, VIO2, VIO3, VIO4 and VIO5 to a 2.5V voltage supply.
But, for saving a LDO, I also would like to supply CVDDQ with 2.5V.
And in the datasheet, it is not easy to know if it is possible.
In the section 'Operating Conditions' on page 19 we can read:
VIO1, VIO2, VIO3, VIO4, CVDDQ
Supply voltage ......................................................1.7 V to 3.6 V
But in the section 'Power' on page 11 we can read:
CVDDQ: This is the supply voltage for clock and reset I/O. It
should be either 1.8 V or 3.3 V based on the voltage level of
the CLKIN signal.
In my design, CLKIN and CLKIN_32 are floating because I am using a Crystal 19.2MHz EXS00A-CS05400 connected to XTALIN and XTALOUT.
So as I do not use CLKIN inputs, can I use a 2.5V voltage supply for CVDDQ ?
Thanks in advance,
Regards.
Stéphane.
Show LessHi all,
here is the SPI flash memory used in my design: Microchip SST26WF040B
From datasheet:
PP Page Program 02H
Read Read Memory 03H
RDSR Read Status Register 05H
WREN Write Enable 06H
BE11 Erase 64, 32 or 8 KBytes of Memory Array D8H
I cannot write into the memory (but I could write into an other device with the same hardware configuration: Windbond W25X40CL)
Thanks for your comments,
Nico
Show LessHello ,
I am using Cypress control Center to transfer data from fx3 to PC and PC to fx3. my requirement is to transfer about 3 MB file to Fx3 using BULK OUT END POINT 01 using Transfer File Out Button .If i tried for lower size files it is transmitting successfully but if i tried for larger files 997 error is coming can any one help me to sort out this problem
I also attached the screen shots of control center while transferring small files and the large files
best regards veerendra
Show Less