Skip to content

Firmware Guide

Harry Munday edited this page Nov 13, 2024 · 3 revisions

Firmware

The MISRC uses a basic or dumb design, with hardware control oriented configuration, i.e the only thing firmware/software does is just taking a 32-bit raw stream of digital data packaging it in some manner and sending it to the host system to be unpacked to 16-bit PCM streams for the two main ADCs and or your AUX bits for audio ADCs.

Hardware

There is a few viable options for the data over YUV method, as new hardware has firmware written and ADC adaptor boards made this list will expand.

Current Firmware

Tang Nano 20k

Today we are now using the more affordable Tang Nano 20k sending the data over HDMI this only needs to be flashed once via usb connection, we have pre-compiled firmware see releases for the latest version.

Install openFPGALoader

Connect your Tang to a USB 3.0 port via its Type-C, it will need this for 5V power after flashing, but not data.

Run via terminal inside the firmware directory

openFPGALoader -b tangnano20k -f hsdaoh_nano20k_misrc.fs

You have flashed your Tang Nano 20k!

Legacy Firmware

EZ-USB FX3

The FX3 USB 3.0 board from Infineon is an industry standard for USB 3.0 product development, the original plan as to use it to neatly bundle data into a single interleaved stream and dump it to file on a host system, so the scope of complexity is very small as we are not doing much more than accepting the data and saving it to disk.

Sadly this method had issues with sample drops and was also annoying to build and deploy firmware for so was ditched for the Tang Nano 20k, this is considered legacy and will not be proactively developed for.

Downloads

Mirror 1

cypress-fx3-firmware-2023.fw

Flashing the FX3 Board

Open USB Control Center

Physically populate the J4 Jumper with spare included in FX3 box.

Plug FX3 in via USB 3.0 B

Install USB Driver onto West Bridge device.

Now with Cypress FX3 USB BootLoader you can flash the FX3 board.

Rename your firmware extension to .img and open it.

The Window will show Programming of I2C EEPROM Succeeded

You are ready to use the MIRSC hardware.

Manually Building

MISRC uses a (modified) firmware for the FX3 provided by Infineon (Cypress) in the Infineon Developer Community

Download and install the EZ-USB FX3 SDK

Modifications:

  • Change bus width in GPIF II Designer to 32 bit instead of 16 bit
  • Change the top value of the counter variable from 8191 to 4095 in the state machine diagram
  • Select external clock source (only for building a firmware to use external clock/oscillator)

Page End