I'm using vendor commands (implemented in the setup callback function) to implement i2c register read/write to/from my FPGA. I was wondering: How does one normally report back to the host (PC) that the i2c transfer failed? I assumed that returning false from the Setup-Callback (in some examples used by some "isHandled"-logic) would do this, but apparently it's not. Furthermore I was unable to find what exactly is done with the value returned from the Setup-callback-function.Show Less
Hi，i use the fx3 to set a data link between PC and FPGA. On the USB control center，0x01 0x03 0x81 0x83 bulk endpoint serve as data transmission in auto dma mode from GPIF-II to usb（fig-1），endpoint 0 work as command transmission channel。I use function CyU3PUsbSendEP0Data(dataLen,ep0Buf) （fig-2）to send back data ,use the controlendpoint class implementation Read(PUCHAR buf, LONG &len) (fig-3)on PC ,fx3 shows that fx3 ep0 has send the data successfully, but PC get a failure as shown fig-5. Has any invalid operation?HELP me,thx!
fig-1 (USB CONTROL CENTER )
fig-2(FX3 SDK EP0 send data code)
fig-3 (PC reading ep0 data code)
fig-4 (fx3 uart print the statue of fx3 ep0 sending)
fig-5 ( print the status of PC ep0 data reading)
Through different questions already asked on your website, we have been able to solve majority of our issues.
However, for the custom we are currently developing, we cannot have the USB3.0 interface working.
We would like to solve this issue in the next iteration of our custom board by understanding what is preventing us from using the USB3.0 interface on this very design.
To avoid you some extra questions, I have resumed most of the things we developed, tested and probed.
As a potential important point, the onboard clock is 19.2MHz and not 24MHz.
I'm absolutely available if you need any more info or if you want me to test something else.
My colleague @cam will also follow this topic and answer your potential questions.
I've previously inquired in this forum regarding GPIO sampling synchronous to some other signals with the following timing diagram:
Luckily, someone sent an example firmware (firmware code + GPIF state machine code) which I'm currently using to fully understand and implement the desired mechanism on my board. I just have some questions because there are some items that aren't clear to me even now:
1) I tried getting data using control center and when using one endpoint (0x82), i get a simple loopback. On the other hand, when I use the other endpoint (0x81), I get the following results:
I'm unsure of how to make sense of the received data because based on the timing diagram, I am expecting a 32-bit / 4 byte data.
2) I tried using the firmware and unlike the previous firmware codes I've used, it seems that I'm able to use "transfer IN" even without doing a "transfer OUT". How can I make sure that the data I'm receiving is correct or updated? Because the data might be a duplicate or incorrect.
As of now, these are some things that I need clarification on with regards to the GPIF. Attached here are the files sent to me by one of the engineers from this forum who initially responded to my inquiry.
Thank you for any help you might extend.
We purchased a Terasic C5G FPGA board + FX3 Explorer Kit + Altera HSMC adapter board. According to Terasic's manual the voltage standard for the signals on the HSMC port is 2.5V. But on the FX3 Explorer Kit I can only select either 1.8V or 3.3V (with jumper J2). I already tried to find an answer in the Explorer Kit's manual but was unable to. The question is: What to do? Is the FX3 Explorer board 2.5V tolerant when set for 1.8V I/O operation? Afaik the C5G board is not 3.3V tolerant for 2.5V I/Os, right?Show Less
I am currently working on getting a new camera working on the same Cypress CX3 chip. We have created a very similar board to the one we have been using for the IMX241 with changes only to the LED illumination system and the camera connection to accommodate the larger packaged sensor, the IMX412.
This IMX412 is a 4056x3050 sensor. I have set this sensor up to output its central 5MP at 2592x1944 to match our previous camera’s setup. This streams at 43.4 fps with the current settings I have in place.
My current issue is that the device tends to reset quite often. And by reset I mean the following (from UART output):
EVENTFLAG Timer Reset Event, IsCameraSupposedtoBeRunning: 1, FrameIndexToSet: 2, FrameIndex: 2
This occurs just about 95% of the time within 60 seconds of streaming. My goal is to understand and mitigate this response as best as possible.
My understanding is that this occurs when the host has not pulled the data in the expected amount of time before the device is ready to output its’ next image. I am currently using Direct Show for my image capture. This is set up through a callback method and not doing any processing what-so-ever and just pulling the images into my program and releasing them after confirming a viable image in order to output FPS values.
My current Descriptor Settings:
My Hard set values:
My CX3 Clock:
My Camera Clock:
Camera Lines: **I have not been able to effectively reduce the Total pixels per line without causing a “step response” seen below the values.** Different problem but need to solve after this. Will only get us a max of 3 more fps since the device cannot handle more than 47 fps from this camera.
Please let me know if I can provide any more additional preliminary information to aid your understanding of this current issue. Thank you for your time.Show Less
I'm trying to stream 1080P MIPI Raw 10 image sensor . I if configure the MIPI transmitter section and receiver section for 1080p 30 Fps There is no problem in receiver side and It streams correctly. When I done this for 60 FPS I cant change the the output pixel clock in receiver configuration and it shows minimum is 129 and maximum is 100 even if my output video format size is 24-bit.
my camera can support 8/10/20 bit raw output of Bayer format and both continues and gated MIPI clock mode.
Kindly suggest me some settings for 1080P 60 fps.
我们使用了TI的 TUSB501 芯片做CX3的 TX信号增强，原理图如下。
我们发现，如果用电脑的 USB3.0 接口下载固件没有问题，一切正常。
当我们使用 USB2.0 口下载固件的时候，发现刚开始枚举下载设备的时候没有问题，选择Program -> SPI flash，等待一会儿就会显示设备未发现（正常情况是可以正常弹出窗口选择固件进行下载。）
I have both the CX3 DVK and a custom board with a CX3 and both an EEPROM on the I2C interface and an Flash on the SPI interface following instructions.
I have a firmware image that I can program with no problem on the devkit using the USB Control Center on both USB, I2C and Flash.
I tried to program my custom board but I cannot program either memories(EEPROM and Flash).
Here are the steps I follow :
- Start the USB Control Center
- Seet the PMODE of the custom board to 110 for USB Bootloader.
- Connect the custom board. The board appear as "Cypress FX3 USB BootLoader Device".
- I select "Program -> FX3 -> SPI FLASH".
- The device is not visible anymore in the USB Control Center and a message "Waiting for Cypress Boot Programmer device to enumerate..." is displayed at the bottom left.
- After a few moments, the message change to "Cypress Boot Programmer Device Not Found". I checked the Device Manager and the board is not visible anymore.
- If I unplug the board and plug it again, it appears again as "Cypress FX3 USB BootLoader Device".
- I followed the same steps with the I2C EEPROM option with the same result.
How can I fix this to be able to flash my device correctly ?
Let me know if you need any additional information.
I'm trying to stream MIPIraw 10 1920X1080 60fps in CX3 Denebola kit, When I tried to tried to stream camera in Linux host I got CB failure. Kind suggest some solutions to resolve this problem .