Simplify 3-D Imaging Designs Using Cypress FX3 By Anup Shivakumar, Product Marketing Engineer, Cypress Semiconductor Introduction 3-D Imaging presents a new opportunity for designers of human-machine interfaces to change the way consumers interact with content on computers, tele-presence systems, game consoles, and other electronic products. 3-D Imaging enables the perception of depth in video, tracking of body movement, and tracking of finger gestures – all beyond the capability of traditional interface devices such as mice, joysticks, keyboards, track-pads, and touch screens. 3-D imaging already factors strongly in consumers’ buying decisions in video, gaming, and motion-sensing applications. 3-D imaging uses two image sensors to track movement and to capture 3 dimensional images. Common dual-sensor configurations for 3-D imaging can be found in the table below: Application Column Row Pixels Pixels Resolution Video 1,920 1,080 Gaming 1,280 Motion Sensing 640 Frame Rate Color Depth Bandwidth 2.07 megapixels 30 fps 24 bits (RGB) 3.0 Gbps 720 0.92 megapixels 120 fps 8 bits (B&W) 1.8 Gbps 480 0.31 megapixels 60 fps 8 bits (B&W) 0.3 Gbps Even at lower resolution and color depth, applications requiring more precise motion-sensing require a higher frame rate, which can push bandwidth requirements up to 1.8 Gbps. Design Problems Engineers Face Today 3-D imaging requires up to 3 Gbps of bandwidth: USB 2.0 provides only 480 Mbps of bandwidth. As a result, most USB 2.0 based 3-D imaging solutions have limited capabilities and performance. 3-D imaging requires multiple ICs: 3-D imaging requires two sensors to capture parallel image streams that are then combined to form a 3-D image. In addition to the multiple sensors, they often use multiple camera controllers (one for each image sensor) as well as a hub to transfer the data to the host system. Multiple ICs increase the cost of the system, and also require more PCB real estate. www.cypress.com 1 Simplify 3-D Imaging Designs Using Cypress FX3 3-D imaging designs must be flexible: 3-D imaging systems often interface to various image sensors with differing resolutions, frame rates, and bus widths. Additionally, they may transfer data over USB and use different data types to transfer image data. The system may also need to be modified to use standard USB Video Class (UVC) protocol or a custom USB protocol. These requirements increase the complexity of the imaging system and may need additional software and firmware development. Cypress’ EZ-USB FX3 Cypress’ EZ-USB FX3 provides a compact, one-chip solution that solves the above issues by providing a high bandwidth, flexible solution for 3-D imaging. The FX3 provides USB 3.0 connectivity, thereby removing the bandwidth constraint that is faced by current 3-D imaging designs. The FX3 is a highly flexible system that can be used to interface and operate with various different image sensors and USB protocols, providing a single-chip solution for any 3-D imaging application. The block diagram for the FX3 is shown below: Figure 1: FX3 block diagram www.cypress.com 2 Simplify 3-D Imaging Designs Using Cypress FX3 FX3-Based 3-D Imaging Design Development The FX3’s highly configurable General Programmable Interface II (GPIF II) is a 32-bit parallel bus running at 100 MHz, allowing the FX3 to communicate with systems that have a parallel interface. This provides engineers with the flexibility to connect dual image sensors without the need for additional ICs. The GPIF II Designer is Cypress design software that contains a simple GUI to configure the GPIF II. Refer to Appendix B for a link to download this software. The overall steps to connect to two image sensors with GPIF II are shown below: 1. Initiate a new project using Cypress-supplied interfaces, or start a new project from scratch. Figure 2: Starting GPIF II with a descriptor www.cypress.com 3 Simplify 3-D Imaging Designs Using Cypress FX3 2. Select the type, bus width, and I/Os of the desired interface. Figure 3: Selecting GPIF II parameters 3. Create a state machine that matches interface timing by adding state blocks and transitional conditions. Figure 4: Creating GPIF II state machine www.cypress.com 4 Simplify 3-D Imaging Designs Using Cypress FX3 4. Visualize state transitions and associated output signals. Figure 5: State transitions 5. Generate the GPIF II descriptor, which will be used in the firmware development. Figure 6: Generating GPIF II descriptor Writing Firmware for 3-D Imaging Design All 3-D imaging applications require firmware for the FX3. This firmware that is loaded onto FX3 controls the way FX3 interacts with the image sensors and the USB 3.0 host. Any custom 3-D imaging application will require additional firmware development. Cypress provides a powerful Software Development Kit (SDK) that allows engineers to quickly get their firmware started. Refer to Appendix B for a link to download the SDK. It contains the complete software and firmware stack for FX3. It also comes with tools, documents, drivers and application examples, which can accelerate 3-D application development. 3-D imaging firmware can be developed using the FX3 SDK by following the steps below: 1. The FX3 SDK includes sample UVC code that can be used as a reference to develop 3-D imaging firmware. The GPIF II descriptor (see section above) will be used here. www.cypress.com 5 Simplify 3-D Imaging Designs Using Cypress FX3 2. Different image sensors and custom 3-D applications will require firmware modification. Once the firmware is complete, the firmware image can be generated by building the project. 3. Complete design guidelines can be found in the application note “How to Implement an Image Sensor Interface with FX3 in a UVC Framework”. Refer to Appendix B for the link to download the application note. 4. FX3 comes with a large list of firmware APIs that can be used to develop custom 3-D applications. More information about this can be found in the “FX3 Programmers Manual” and the “Firmware API Guide”. These documents are included in the FX3 SDK. Figure 7: FX3 firmware development using SDK Prototyping 3-D Imaging Designs Using FX3 DVK The FX3 Development Kit (DVK) can be used to quickly create hardware prototypes. Refer to Appendix B for a link to buy the FX3 DVK. The 3-D imaging firmware (see section above), can be programmed on to the FX3 chip over USB, using Cypress Control Center (included in the FX3 SDK). The FX3 DVK and an example 3-D imaging prototype are shown below: www.cypress.com 6 Simplify 3-D Imaging Designs Using Cypress FX3 FX3 GPIF II Connector Figure 8: FX3 DVK (CYUSB3KIT-001) Figure 9: Example 3-D imaging prototype www.cypress.com 7 Simplify 3-D Imaging Designs Using Cypress FX3 Conclusion 3-D imaging is emerging as the trend in imaging, gaming, interactive peripherals, and humanmachine interface design. As consumers seek new and innovative ways to interact with their technology and content, the opportunity for 3-D imaging interfaces will only increase. The Cypress FX3 provides a one-chip solution to help user interface developers and peripheral manufacturers develop and prototype 3-D applications quickly and easily. The day is fast approaching when methods of human-machine interaction that seemed only plausible in sci-fi stories become reality with the help of 3-D imaging applications. www.cypress.com 8 Simplify 3-D Imaging Designs Using Cypress FX3 Appendix A: Terms and Definitions 3-D Imaging 3-D Imaging uses two image sensors to capture three-dimensional images or to track movements. It requires more bandwidth than conventional imaging – up to 3.0 Gbps. Bandwidth Bandwidth = The number of image sensors x resolution x frame rate x color depth USB 3.0 (SuperSpeed USB) Operates at 5 Gbps – 10x faster than USB 2.0 (Hi-Speed USB). It distributes 1.8x more power to bus-powered devices than USB 2.0. It is backward compatible with USB 2.0. USB 3.0 Host, USB 3.0 Device, USB 3.0 Hub A USB 3.0 Host (e.g., a PC) directs traffic flow and distributes power over the bus. A USB 3.0 Device (e.g., a hard disk drive) is a peripheral on the bus. A USB 3.0 Hub directs data traffic between a USB 3.0 Host and multiple USB Devices. USB Camera Controller USB camera controllers are microcontrollers that convert an image sensor data-stream into USB traffic. USB 3.0 Peripheral Controller USB 3.0 peripheral controllers are microcontrollers in a USB Device that handle USB 3.0 traffic and communicate with the USB Host. USB 3.0 Driver A USB 3.0 driver is a software program in the host system that operates or controls the USB 3.0 Device attached to it. Firmware Firmware is a set of instructions programmed on a USB 3.0 peripheral controller. UVC (USB Video Class) UVC is a widely adopted standard for consumer cameras that is supported by major PC operating systems. It defines the behavior of a USB video camera, known as a “UVC camera”. EZ-USB® FX3™ FX3 is Cypress’s programmable USB 3.0 Peripheral Controller with integrated USB 3.0 transceiver. It includes a powerful on-chip ARM9™ processor and 512KB RAM for firmware storage and data buffering. It provides additional peripheral connectivity via I2C, I2S, SPI, and UART. FX3 includes a Software Development Kit (SDK) with example code to reduce design effort. www.cypress.com 9 Simplify 3-D Imaging Designs Using Cypress FX3 GPIF™ II: Second-Generation General Programmable Interface GPIF II is a programmable 100-MHz, 32-bit bus that allows FX3 to communicate with systems that have a parallel interface. GPIF II Designer GPIF II Designer is design software that installs on your PC. It contains simple a graphical user interface (GUI) to configure the GPIF II. GPIF II Descriptor GPIF II descriptors are sets of commonly predefined GPIF II configurations used to program FX3 quickly. FX3 Application Programming Interface (API) APIs are firmware in the SDK library that implements common and specialized USB functions. Cypress Control Center Control Center is a simple GUI in the FX3 SDK used to configure the FX3 Development Kit (DVK). www.cypress.com 10 Simplify 3-D Imaging Designs Using Cypress FX3 Appendix B: References and Links FX3 3-D Imaging Demo Video: www.cypress.com/fx3/3dimaging Maximum Throughput Performance Demo Video: www.cypress.com/fx3 Machine Vision Camera Demo Video: www.cypress.com/?rID=66430 FX3 HD 720p Camera Kit Demo Video: www.cypress.com/?rID=72422 EZ-USB FX3 Development Kit (CYUSB3KIT-001): www.cypress.com/?rID=58321 EZ-USB FX3 HD 720p Camera Kit: www.cypress.com/?rID=72599 Software Development Kit: www.cypress.com/?rID=57990 The SDK includes Eclipse IDE, ARM GCC, Cypress USB 3.0 driver, example code, FX3 Programmers Manual, and API Guide. GPIF II Designer: www.cypress.com/?rID=59628 EZ-USB FX3 Application Notes: Getting Started with EZ-USB FX3: www.cypress.com/?rID=59979 This application note gives highlights of USB 3.0 technology and an overview of the FX3 architecture, software, and collateral. It shows FX3 SDK setup, Cypress USB driver installation, firmware download, and USB 3.0 traffic verification. EZ-USB FX3 Hardware Design Guidelines and Schematic Checklist: www.cypress.com/?rID=53203 This application note shows how to design a board with 5-Gbps USB 3.0 traces. How to Implement an Image Sensor Interface with FX3 in a UVC Framework: www.cypress.com/?rID=62824 This application note describes a UVC video streaming application in which FX3 streams images from an image sensor to a USB Host. www.cypress.com 11 Simplify 3-D Imaging Designs Using Cypress FX3 Worldwide Sales and Design Support Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find the office closest to you, visit us at Cypress Locations. PSoC® Solutions Products Automotive cypress.com/go/automotive psoc.cypress.com/solutions Clocks & Buffers cypress.com/go/clocks PSoC 1 | PSoC 3 | PSoC 5 Interface cypress.com/go/interface Lighting & Power Control cypress.com/go/powerpsoc cypress.com/go/plc Memory cypress.com/go/memory Optical Navigation Sensors cypress.com/go/ons PSoC cypress.com/go/psoc Touch Sensing cypress.com/go/touch USB Controllers cypress.com/go/usb Wireless/RF cypress.com/go/wireless Cypress Developer Community Community | Forums | Blogs | Video | Training Technical Support cypress.com/go/support EZ-USB® and FX3™ are registered trademarks of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are the property of their respective owners. Cypress Semiconductor 198 Champion Court San Jose, CA 95134-1709 Phone Fax Website : 408-943-2600 : 408-943-4730 : www.cypress.com © Cypress Semiconductor Corporation, 2012-2013. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. www.cypress.com 12
© Copyright 2026 Paperzz