All Projects → hansfbaier → adat-usb2-audio-interface

hansfbaier / adat-usb2-audio-interface

Licence: other
FPGA based USB 2.0 high speed audio interface featuring multiple optical ADAT inputs and outputs

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to adat-usb2-audio-interface

pergola
Low-cost ECP5 FPGA development board
Stars: ✭ 64 (-5.88%)
Mutual labels:  fpga
yarvi
Yet Another RISC-V Implementation
Stars: ✭ 59 (-13.24%)
Mutual labels:  fpga
PeakRDL-ipxact
Import and export IP-XACT XML register models
Stars: ✭ 21 (-69.12%)
Mutual labels:  fpga
fpga-virtual-console
VT220-compatible console on Cyclone IV EP4CE55F23I7
Stars: ✭ 33 (-51.47%)
Mutual labels:  fpga
fpga-nn
NN on FPGA
Stars: ✭ 16 (-76.47%)
Mutual labels:  fpga
FPGA RealTime and Static Sobel Edge Detection
Pipelined implementation of Sobel Edge Detection on OV7670 camera and on still images
Stars: ✭ 14 (-79.41%)
Mutual labels:  fpga
pano man
Simulation of the classic Pacman arcade game on a PanoLogic thin client.
Stars: ✭ 30 (-55.88%)
Mutual labels:  fpga
risc8
Mostly AVR compatible FPGA soft-core
Stars: ✭ 19 (-72.06%)
Mutual labels:  fpga
verifla
Fork of OpenVeriFla - FPGA debugging logic analyzer to use with your designs - examples (so far) for ice40/IceStorm
Stars: ✭ 21 (-69.12%)
Mutual labels:  fpga
EBAZ4205
Vivado and PetaLinux projects for Zynq EBAZ4205 Board
Stars: ✭ 38 (-44.12%)
Mutual labels:  fpga
fpga-tidbits
Chisel components for FPGA projects
Stars: ✭ 88 (+29.41%)
Mutual labels:  fpga
IIoT-SPYN
IIoT-SPYN gives users the ability to control, monitor, capture data, visualize and analyze industrial grade motors
Stars: ✭ 37 (-45.59%)
Mutual labels:  fpga
PandA-bambu
PandA-bambu public repository
Stars: ✭ 129 (+89.71%)
Mutual labels:  fpga
KRS
The Kria Robotics Stack (KRS) is a ROS 2 superset for industry, an integrated set of robot libraries and utilities to accelerate the development, maintenance and commercialization of industrial-grade robotic solutions while using adaptive computing.
Stars: ✭ 26 (-61.76%)
Mutual labels:  fpga
EDSAC
FPGA Verilog implementation of 1949 EDSAC Computer with animated tape reader, panel, teleprinter and CRT scope
Stars: ✭ 28 (-58.82%)
Mutual labels:  fpga
PothosZynq
DMA source and sink blocks for Xilinx Zynq FPGAs
Stars: ✭ 19 (-72.06%)
Mutual labels:  fpga
ACCL
Accelerated Collective Communication Library: MPI-like communication operations for Xilinx Alveo accelerators
Stars: ✭ 28 (-58.82%)
Mutual labels:  fpga
ZYNQ-NVDLA
NVDLA (An Opensource DL Accelerator Framework) implementation on FPGA.
Stars: ✭ 144 (+111.76%)
Mutual labels:  fpga
ice-chips-verilog
IceChips is a library of all common discrete logic devices in Verilog
Stars: ✭ 78 (+14.71%)
Mutual labels:  fpga
KyogenRV
The Simple 5-staged pipeline RISC-V written in chisel3 for intel FPGA.
Stars: ✭ 37 (-45.59%)
Mutual labels:  fpga

ADAT USB Audio Interface

FPGA based USB 2.0 High Speed audio interface featuring multiple optical ADAT inputs and outputs

BlockDiagram

Status / current limitations

  • Enumerates as class compliant audio device on Windows and Linux (Mac OS not tested). 2 and 32 channel modes.
  • Audio input and output seems to work glitch free.
  • Only 48kHz sample rate supported
  • Integrated USB2 high speed logic analyzer works
  • Runs without dropouts with FlexASIO with a buffer size of 32 samples (0.67ms latency)
  • Has a hardware roundtrip latency (USB out -> ADAT out -> cable -> ADAT in -> USB in) of 2-3 USB2 microframes which is about 0.25ms to 0.375 ms
  • Both headphone DACs on the board work now. In two channel mode, they are both wired to channels 0/1. In 36 channel mode DAC1 is wired to channels 0/1 and DAC2 to channels 2/3
  • Both USB PHYs now are operational. USB1 has access to all 32 ADAT I/Os and has 4 extra channels to/from USB2. USB2 enumerates as a 4-channel sound card which sends/receives audio to/from USB1
  • Both USB interfaces will also enumerate as USB MIDI devices and send each other MIDI
  • The current board design has not been designed with the case in mind: In the current version of the case, only ADAT-cables with thin connectors will fit into the holes. Cables with fat connectors will hit the case wall before they can be fully inserted. This will be fixed in a future iteration of the PCB and case.
  • The current case design lacks a guide channel for the LED light pipes. Therefore there is considerable bleed from lightpipes into each other, and they also can't be positioned exactly over the LEDs. Will be fixed in the next version of the case.
  • Limitation: Currently audio input will not work properly when audio output is inactive. This should not be a problem for most uses (VoIP, Videoconference, DAW recording). If you have an important use case which needs this, please file an issue.

Hardware

The current board design is a custom development board, based on the QMTech core FPGA boards. Once the chip shortage is over, it is planned to move to a complete custom design, including the FPGA.

P1173938

image

How to build

  1. Download and install Intel Quartus Lite
  2. put the bin/ directory of Quartus into your PATH variable:
export PATH=$PATH:/opt/intelFPGA_lite/21.1/quartus/bin/

Of course you need to adjust this to the install directory and version of your particular installation.

  1. Set up python venv and install requirements:
$ cd gateware/
$ ./initialize-python-environment.sh
$ cd ..
  1. Activate the venv and build
$ source ./gateware/venv/bin/activate
$ python3 gateware/adat_usb2_audio_interface.py --keep

This will create a directory named build/ and after a successful build will directly try to load the generated bitstream into the FPGA, if an USB-Blaster is connected. Or, you can flash the bitstream manually, by opening the Quartus GUI with:

quartus build/*.qpf

and then open the programmer application from there. Alternatively you could directly start the programmer with:

quartus_pgmw
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].