USB superspeed peripherals Forum Discussions
Good 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 LessHello,
I have a testing environment which generates an image pattern at 640x480 pixels for transmission over CSI2 to the CX3, using 1 data lane and 800 MBit/s speed. Using standard VGA config I'm able to receive the pattern using eCAM tool on the PC at 30fps.
However, after changing the pattern generator to 2 data lanes and setting 2 lanes in the according CyU3PMipicsiCfg_t structure in cycx3_uvcdscr.c, the frame rate drops to 0 and I'm getting MIPI errors on the CX3:
Framing Error Count = 0x0
CRC Error Count = 0x0
Multi-Data Lane Sync Byte Error Count = 0xFF
Control Error (Incorrect Line State Sequence) Count = 0x0
Unsupported Packet ID Error Count = 0x0
Recoverable Packet Header Error Count = 0x29
Unrecoverable Packet Header Error Count = 0xFF
Recoverable Sync Byte Error Count = 0x0
Unrecoverable Sync Byte Error Count = 0x0
So what could be the reason for this? Do I have to change additional settings? Please help.
Johannes
Show LessHi,
We are trying to debug Denabola CX3 platform using SEGGER J-Link.
As we understand, CX3 firmware uses ThreadX RTOS and J-Link only supports FreeRTOS and embOS.
In such a case, how do we use J-Link for debugging CX3. Is there a threadX plugin available for J-Link.
If not, what other debug options do we have.
Show LessHello! I am using the FX3 with a Sony IMX290 image sensor. I am using the sensor’s CMOS parallel output with the XVS and XHS output pins for the line valid and frame valid syncs. I am currently set up for 1080p 30 f/s on a 74.25MHz pixel clock.
My question is that in reading the image sensor data sheet, I realize that along with the detecting the pulses from the XVS and XHS, sync codes must also be read from the data bus to determine when the image sensor data is valid. There are four sync codes that appear consecutively. Furthermore, there seems to be some dummy data before the recording pixels start. This seems in contrast to the On Semi sensors and what is used in the AN75779 app note where the hardware signal pulses provide all the information required for valid data.
Is it possible to modify the GPIF II project to read these sync codes before pushing data out for each frame line? I have read through the forums/GPIF tech manual and it looks like the CMP_DATA action for each state would work. However, as someone else has mentioned on the forum, when you use that action for multiple states, it doesn't allow different values for each state... it is more like a global value that is used for every time you use that action. The suggestion was that you must program the register directly, but there must be enough time for the transition. Is this possible to do with an image sensor operating this fast? Here is a link to that forum post. https://community.cypress.com/thread/16005?q=compare%20data
If I can make a change to the register that holds the CMP_DATA value, do I have to compile the GPIF II project and make those changes in the actual code that is created in the .c that is the output from that project?
Do you have any examples of a project like this?
Also, I am still unclear how to properly use the Unmask value on the CMP_DATA action. If I am using a 10 bit parallel output and I want to detect 0x3FFh, what does the Unmask Value need to be? My data bus is set up for 16bits on the FX3.
Thanks!
Show LessSection 10 of the FX3 TRM shows all of the firmware registers available. How do I write a new value to one of the registers shown in that section? Or more specifically, what is the api function that I can use to modify those registers?
Show LessI have four cameras connected to CX3 ICs that are then routed into an HX3 which is connected via a cable to a USB 3.1 Gen 2 PCIe card (HighPoint RocketU 1344A). When I power cycle or swap ports with the cable the cameras don't enumerate. This problem happens intermittently. Do you have any suggestions on how to debug?
Show LessHello,
I'm confused about FX3's boot mode.
As I understand from FX3 Programmers Manual page 42, FX3's firmware and VID/PID/DID can be change over USB cable without using an eeprom thorough renumeration process.
If I understand right, then why an eeprom is needed for a host connected (via USB cable) FX3 system?
What can't be done with usb boot mode in USB connected FX3 system?
Regards,
Ali
Show Less