USB superspeed peripherals Forum Discussions
Hi,
I'm trying to read current value of the Complex GPIO timer (GPIO [25]) whenever i get the Strobe signal from the sensor. One of the GPIO pin (GPIO[19]) is configured as interrupt to Strobe signal. The issue here is whenever the camera exposure is changed, GPIO Interrupt is not invoked for both positive edge or negative edge of the Strobe signal. Also Interrupt is missing for only one strobe signal and after that interrupt for next strobe signal is received properly. Upon debugging I have found that CY_U3P_DMA_CB_PROD_EVENT in the DmaRead Callback function is pre-empting the GPIO Interrupt. I have tried changing the interrupt priority for USB Dma Block and GPIO block using CyU3PVicIntSetPriority(vectorNum,priority) API but this API function doesn't seems to have any effect in the interrupt priority. Please let me know whether setting priority in this API changes the priority of the interrupts.
Is there any other ways to handle priorities between Interrupts or Callback functions ?
Thanks,
Karthick S
Show LessHi Cypress Community,
Is there any register for data lock in cypress FX3 development board.
If yes may i please know the particular register, and how to configure that and read back the status from it.
Show LessHello,
I found the FX3 FAQs (KBA224051), the description of BACKFLOW_DETECT in this article was as follows:
Question: In the AN75779 example, I enabled BACKFLOW_DETECT. When the FX3 Firmware calls CyU3PGpifDisable(), FX3 occasionally stops responding. Why does it happen?
Answer: It may happen because of PIB/GPIF error interrupts invoked in the application. If you enable BACKFLOW_DETECT, you need to disable any interrupt with the CyU3PVicDisableAllInterrupts() function during the CyU3PGpifDisable() process.
I actually encountered this problem and was able to solve it with the provided workaround, but there are some questions.
In the AN75779 source code, the PIB/GPIF error interupt callback function only sets 1 to the flag.
So I don't think there is a problem with the processing.
What mechanism does FX3 stop responding to?
My application also uses UART interrupts, can I disable only PIB/GPIB error interrupts?
Please let me know if you have any information.
Regards,
Shimamura
Show Less
Hi,
I am Using FX3 and the Image sensor processor OV426, The Both FX3, and the Processor are isolated by the digital isolator,
My Doubt is Where I need to place the series resistor Near the FX3 or Processor. Because the Series resistor should be placed near to the Source. Here My Image sensor processor us a source.
Where I need to place. Near FX3 or Near to the Processor after isolator?
Show LessHi All,
I am designing a simple project which writes a 16 bit data and reads from my application board.
I have built custom Board using FX3 and Spartan FPGA 6.
Iam able to do the boot loading firmware.
As a firmware for FX3 using SyncSlave FIFO image.
Just modified few things : changed to 16bit Databus and Buffer count as 1 from 2.
In GPIF iam using Flagc as dedicated thread 3 for FPGA reading from FIFO.
Right now iam not writing anything into FIFO(no FPGA Logic Made).
Iam using USB Control Centre to Data ut just 2 BYTE (16bit) and see my FlagC is Showing after reading 2 Cycles (along with recommended latency).
But my FLAGC always in High. its not going low. Data also not coming from Buffer.
Could Somebody get me a help out this it will be gratefull.
Please. Thank you
Rgds,
Muthu.
Show LessI'm using the CX3 device as an interface between a Sony IMX219 image sensor and the PC via USB3.0.
After using the Denebola kit, I was able to create a custom board and use the Sony sensor and not the Omnivision one used in the Denebola.
Right now, the custom board works with 4 MIPI lanes.
I can configure my sensor through I2C to the configuration I want. With the Cypress Mipi Configuration Tool I can obtain the MIPI block parameters to make it work.
Input parameters:
- THS-Prepare: 60
- THS-Zero: 250
- Input video format: RAW8
- Output video format: 16-bit
- Data lanes: 4
- CSI Clock: 480MHz
- H-Active: 1638
- H-Blanking: 1810
- V-Active: 1232
- V-Blanking: 50
- Frame rate: 93
Output parameters:
CyU3PMipicsiCfg_t cfgUvcFullFOVx2Mipi4Raw8 = {
CY_U3P_CSI_DF_RGB565_2, /* dataFormat */
4, /* numDataLanes */
2, /* pllPrd */
123, /* pllFbd */
CY_U3P_CSI_PLL_FRS_250_500M, /* pllFrs */
CY_U3P_CSI_PLL_CLK_DIV_4, /* csiRxClkDiv */
CY_U3P_CSI_PLL_CLK_DIV_4, /* parClkDiv */
0, /* mclkCtl */
CY_U3P_CSI_PLL_CLK_DIV_2, /* mClkRefDiv */
1638, /* hResolution */
0 /* fifoDelay */
};
PHY Delay is 18.
GPIF Bus width is 16 bits.
I have a debugging system and can confirm that the GPIF is getting the bytes correctly.
However, in order to see the video stream on a viewer (e-CamVIEW), I need to tell the PC 2 extra lines will be sent.
Probe control size in bytes is set to 1638x1234, instead of 1638x1232.
The frame descriptor is width=819, height=1234, 16bpp.
This way, the viewer shows the stream, but if I set the probe control and frame descriptor to the real size (1638x1232) it doesn't work.
This has happened since I first got the system working, with all resolutions: 1640x1232, 1638x1232, 1080p, 720p, VGA, 820x616.
Why is this happening?
Show LessHello KandlaguntaR_36,
Using MANUAL_DMA, SIB to UIB Channel, I am trying to read card data using SDIO interface but I couldn't get the desired speed.
So I probed hardware and checked SDIO DATA lines and CMD Line in the oscilloscope and found some unknown huge delays between two consecutive CMDs.
I have attached snapshots for both CMD and DATA lines profiles. In that, I have mentioned times for each CMD Txs and Unknown delays. Also attached host application code snippet. (setup is like, Requesting to read 1024 Bytes @ 52MHz SIB_FREQ, USB2.0 High Speed.)
Is it possible to reduce/eliminate delays?
Thanks
Krunal Patel
Show LessAs part of the USB descriptors there is a so called "Binary device object store descriptor"
But i'm not able to find useful information related to what kind of values/configuration is required.
Can someone guide me towards some meaningful documentation?
Show LessWe're going to be using the CYUSB3014 in a design, and I've noticed an inconsistency in the datasheet regarding the pinout. In figures 6 and 7, Pin Configurations, pin D11 is shown as NC. However, in Table 7, the pin list, pin D11 is listed as O[60].
Which is correct?
Thanks,
Scott
Show Lessusing the example:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxgpiftousb
I've rebuild with the following changes added some GPIO as configurable to allow my attached hardware to operate, removed the stub cyfxgpif2config.h for another one from a WORKING project and added a define called CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT.
If this define is included in the project then the FX3 should be configured as a 32bit gpif bus, if not then it should be 16bit bus. Note the CyU3PDeviceConfigureIOMatrix is configured as isDQ32Bit = CyTrue either way, the define is only used in the cyfxgpif2config.h, the GPIF 2 designer tool shows that there should only be that one line change from 16bit to 32bit.
My attached hardware will always sent 32bit data into the FX3 what i am seeing is that when set to 16bit mode (define commented out) i can see that it is using 16bit mode half of the expected data is missing.
When the define is included im getting no data out of the endpoint at all. Counters in my hardware show that 8192* 32bit words have been sent to the FX3.
Ive attached my project so that you may compare it to the original.
Am i missing something or is there somewhere else that i have forgotten to configure?
thanks
Show Less