Mira‐220 camera to HDMI display 25.1 - ArrowElectronics/Agilex-5 GitHub Wiki
Introduction
This reference design uses only FPGA fabric resources. A NIOS®V soft core is used to initialize the various IP blocks and drive the demo. The design uses a Mira-220 RGB MIPI camera from ams OSRAM to capture video in 1600x900 at 60fps rate. The Video is triple-buffered in LPDDR4 then displayed to an HDMI monitor in 1920x1080 at 60fps using the Analog Devices ADV7511 on the board. There are a few IP blocks from the Altera® Video and Vision Processing (VVP) Suite in the video path.
Prerequisites
- Review Getting Started
- Host machine running Linux or Windows.
- Internet connection to download the tools and clone the repositories from github. If you are behind a firewall you will need your system administrator to enable you to get to the git trees.
- Quartus Prime Pro version 25.1
Set up the Environment
Open a shell (niosv command shell for Windows)
$ mkdir agilex_5
$ cd agilex_5
Build the Quartus Reference Design
This can be built under Windows or Linux.
Clone the repository. Open a shell (niosv command shell for Windows)
$ git clone -b QPDS25.1_REL_GSRD_PR https://github.com/ArrowElectronics/refdes-agilex5 refdes-agilex5
$ cd refdes-agilex5/axe5_eagle/mipi_hdmi_mira220
Open Quartus and load the Project located in the folder shown above
$ File --> Open Project. Select axe5_eagle_mipi_hdmi.qpf
Add pin assignments
$ View --> Console
$ In the Tcl Console window type 'source sources/axe5_eagle_mipi_hdmi_pin.tcl' and press Enter
Compile the Quartus project
$ Processing --> Start Compilation
The following file is created:
- axe5_eagle/refdes-agilex5/axe5_eagle/mipi_hdmi_mira220/axe5_eagle_mipi_hdmi.sof
Configure the Board for the Demo
The following components are required for the demo:
- AXE5-Eagle (TEI0185) development board,
- 12VDC 40W power supply
- Arrow-USB-Blaster (TEI-0004-02) for downloading to the FPGA
- Trenz Camera Adapter (Trenz CR00300).
- ams OSRAM MIRA220_RGB_mini_SB imager board (comes with flat ribbon cable)
- Lens and Lens holder
- Quartus Prime 25.1 Pro, which is used for the hardware development.
- Agilex-5 and NIOS-V licenses are necessary but free.
- HDMI cable
- HDMI display monitor or TV
Assemble the Hardware
- Plug the Arrow-USB-Blaster (TEI0004-02) into J34 with the USB connector facing to the right.
- Connect the power supply to the AXE5-Eagle J29 barrel connector
- Plug the AC-DC adapter into an AC outlet
- Add the len holder an lens over the imager.
- Attach the Flat Ribbon Cable to the camera board.
- Attach the other end of the Flat Ribbon Cable to the CRUVI camera adapter board (CR00300-01)
- Insert the CRUVI adapter into the C_HSX connector and apply the small screw to secure it in place.
- Connect the HDMI cable between J11 and the HDMI monitor/TV.
Program the FPGA configuration file
The FPGA JTAG chain will expose 1 or 2 endpoints when Auto Detected from the programmer.
Open the Quartus Programmer
$ Tools --> Programmer
Detect the JTAG chain
$ Processing --> Auto Detect
Select the A5EC065BB32AE4SR0 device in the topology diagram
Program the device
$ Edit --> Change File. Select output_files/axe5_eagle_mipi_hdmi.sof
$ Click the 'Program/Configure' check box.
$ Processing --> Start
This will take a few seconds to complete.
Run the demo
RGB_LED0 will start Red. It will go from Red to Green after the NIOS-V is finished initializing the camera and IP blocks. The LED changes color from Green to Blue when valid data is in the Video Frame Buffer.
Press the FPGA_PB2 button to increase camera exposure. Press the FPGA_PB3 button to decrease camera exposure. There are 12 exposure settings
Using a terminal emulator such as TeraTerm at 19200 baud, via the COMx port on the Arrow Blaster, exposes more commands that can be executed by the user.