/sigma_tcp

a C gateway IP/I2C between Analog Device SigmaStudio and ADAU DSP

Primary LanguageCGNU General Public License v3.0GPL-3.0

introduction

this program is used to drive a DSP like ADAU1452 from Analog Device Sigmastudio GUI; that's useful for rapid development.

this program is supposed to run on a middleman board with these links:

  • an IP connection toward the PC running Sigma Studio
  • an I2C bus connected to the DSP board

in my use case, we have running it on a Cubieboard with ARM32 Allwinner A10 SOC running kernel 4.11.xx with buildroot OS (a topic out of scope here..)

this src is loosely based on sample code from: https://wiki.analog.com/resources/tools-software/linux-software/sigmatcp

i've used Sigma Studio 3.14.1 Build 1675 on windows 7 toward an ADAU1452 board

video

you can have a look at my setup and running test here: https://drive.google.com/open?id=0B9QRW6Oy0Gmea2dDNmpIRjZyOVk

usage

it's pretty simple.

  • clone the repo: git clone https://github.com/aventuri/sigma_tcp.git
  • cross compile the source in the final single bin sigma_tcp
    • eventually adjust the BASEDIR var in Makefile to match your local environment
  • copy the binary in your SBC root fs
  • execute as ./sigma_tcp i2c /dev/i2c-1 0x3b, some verbose print tells you about IP and port
  • get to Sigma Studio, cfg the prj to lookup for IP connection (with param from above)
  • open connection (the tool will spit out some messages)
  • link compile download youre DSP design into the DSP (lot's of prints on tool..)

example of this invocation:

 # ./sigma_tcp i2c /dev/i2c-1 0x3b
 Utility for driving ADAU1452 over IP/I2C using SigmaStudio
 License GPL v3 or later
 Andrea Venturi <be17068@iperbole.bo.it>
 
 current development at https://github.com/aventuri/sigma_tcp
 inspired by https://wiki.analog.com/resources/tools-software/linux-software/sigmatcp
 
 Using i2c backend
 i2c: Initalized for device /dev/i2c-1-3b
 Waiting for connections on port 8086...
 IP addresses:
 eth0: 192.168.0.103

test i2c connection

how to connect the board to the Arm SBC is out of scope, here, but you can check it works with a simple test:

 # i2cdetect  -y 1
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 30: -- -- -- -- -- -- -- -- -- -- -- 3b -- -- -- -- 
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 70: -- -- -- -- -- -- -- --   

usually the DSP has i2c address 0x3b

devel board

ADAU1452 BOARD i've been using a pretty cheap board from aliexpress (..of course i've no economic interest with this vendorI). you can find the schematic of this board (together with a daughter board wih ADC/DAC features thanx to AD1938 IC).

community

i gladly invite everybody to test this setup and eventually give me feedback, here in gihub or at this forum thread

i'm course open to hear about custom development, as i have made some pretty experience om this stuff!

next to come

of course the current release is just a working starter.

i plan surely to test if it works ok with another DSP, the ADAU1701 workhorse, as i have another pretty cheap devel board.

adau1701 board

if there are other interests, please elaborate!

have fun