Die, SPDIF ! Design of the Ethernet DAC

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
oops! It looks like I should have read more of what was posted earlier. It looks like CobraNet was already mentioned.

But... if you are shipping audio data around a network then you want to make sure that the clock domain of the sending device and the clock domain of the receiving device are the same. If this is not true then you need to resort to sample rate converters. CobraNet is an isochronous system that syncs up the audio clock domains of all devices on the net with the cycle to cycle jitter being a property of the VCXO used to reconstruct the master audio clock. It's pretty good. BTW, I should say that I work for Cirrus and know a fair amount about CobraNet. I use Attero CO2 boards to run a pro grade networked whole house audio system at home.
 
peufeu said:
These don't have ethernet really. They have an ethernet connector wired to the FPGA with a bunch of resistors, and then it's up to you to handle the rest. For the price, it's a joke, forget it.

For ethernet you need a PHY (physical interface chip) which handles the low-level stuff like wire equalization etc, and a MAC (media access control) which handles packets, ethernet protocol, collisions, etc. Some chips (like mine, SMC91c111) have both one one chip. Or you can use a board with just a PHY and use the Opencores MAC inside your FPGA.

A PHY has analog circuits in it, you can't really do this in a FPGA...

If you want low throughput (10 Mbps) you're better off with something like an ARM with an ethernet connection, but then you'll need some programmable logic chip to handle the conversion to I2S...

Or you could buy the same board as I did, but it is only usable if you jump through some hoops (read my site).


A solution for low throughput (10 Mbps) with ARM and ethernet could be to use the AT91SAM7S family of MCU from Atmel with on chip I2S in and out.

http://www.atmel.com/dyn/resources/prod_documents/doc6175.pdf

Look at chapter:
31. Synchronous Serial Controller (SSC)
page 351

ciao
andrea
 
OOoooooooooo YES ! Bullseye ! Thanks mate.

http://www.sonyoxford.co.uk/pub/supermac/download/sox_sm10_brief_web.pdf

Now where do I order this thing ?

I had looked into CobraNET but it's not really doable for the single individual like me. Actually, using an ad-hoc protocol isn't a problem, since it took me much less time to implement the actual protocol than overcoming this crap FPGA board shortcomings and all the bugs in xilinx software. But, sell me a finished chip, I won't say no.

----

The board is very nice. I'll look into AES50 first, though. Especially licensing issues. It's very good news however to see a powerful linux ethernet enabled board like this.

If you don't need multichannel, you can make a decent netplayer out of it since it has I2S.
 
don't email sony oxford

I did and the guy who replied is the actual developer ! He is an extremely friendly guy, but since his tech is patented he won't sell it to me for free of course. I repeat : he's a really nice guy, don't spam him ;) I hope he can license his tech and make a living from it.

Anyway from the AES50 specs, it seems that you need a special ethernet board in your computer which can emit the custom packet format. This is absolutely mandatory for PRO work to get less than millisecond latency (!) but for our usage I believe UDP over standard Ethernet is more suited because :

- you can emit the packets with a standard ethernet interface
- it's UDP so you don't need a kernel level driver, only a socket

(actually UDP is what I use now. Ping between two LAN hosts is sub-millisecond. Linux is good at low latency audio, and has an excellent network stack, so I expect when I write the JACK driver I'll be able to get latencies in the 20 ms range maybe, which is perfectly adequate for video playback sync, and way overkill for audio playback). Now my latency sucks (I use 500 ms buffer) simply because I haven't written the JACK driver yet, so my audio goes through 2 UNIX pipes (from audacious to sox to my driver), which of course have never been designed for low-latency work !
 
CobraNet is available in chips and a reference schematic is in their Hardware User's Guide downloadable from their website.

Attero Tech (http://www.atterotech.com) makes some modules (one with on board codec, one with I2S I/F) that could be usable for DIY.
They may be marginally pricey for DIY but FAR FAR less than the Cirrus EVAL kit. If enough people are interested maybe we could negotiate a better price from Attero on a group buy.

Steve
 
If you are trying to use AES50 (aka SONY SuperMAC) with a PC as a terminal end:

Unless they have changed the scheme to something I am not yet familiar with, AES50 uses the unused pairs on the CAT-5 to distribute an audio clock. The audio itself uses an Ethernet transport. But the system as a whole is not standard Ethernet and cannot be supported using stadandard Ethernet switches or with UDP packets. I believe it is all layer 2 and even UDP would not work. Even if you could solve the clock issue and send layer 2 packets, you'd have a pretty hard time meeting timing constraints using a standard port driver or TCP/IP stack. The O/S would not allow the timing to be that deterministic. At the least you'd have to write your own port driver and use a dedicated NIC AND handle the clock lines somehow.

Assuming a transmitting device would talk to a standard Ethernet receiver, you might be able to RECEIVE audio on a PC and then buffer and re-clock it, but I think transmission would be impossible w/o a purpose built interface card and software.
 
My last post was in reference to AES50 but I now see that the immediate post above that was referring to the AudioScience CobraNet card. This is a pro card with a fair amount of on board DSP processing and aimed primarily at the professional market. So it is more pricey than just a plain jane CobraNet card aimed at the broader market would be. There is no reasonably priced CobraNet PCI card that I am aware of. Although if you check the price on the CobraNet chips there is no reason that there could not be such a card. No one has made one yet. Anyone out there up to the challenge? It seems to me that an Attero CDK-8 piggy backed on a PCI card w/some buffering and glue logic would do the trick. One other thing. CobraNet uses 48k or 96k sample rates. PC's are pretty 44.1k centric. So you'd also need to use the built in sample rate conversion available in Windows to support other than 44.1k sample rates.
 
Audiosteve, I would like to use CobraNet to get digital 5.1 signals out of a PC. In the end I need 3 2-channel S/PDIF or AES/EBU streams. The whole thing should appear as a sound card to other PC software. I’m thinking about an external box providing 3 digital output connectors and an Ethernet input connector. I have been looking at Aerotech CobraNet CDK-8D card which should be easy to equip with S/PDIF interface (if I can’t get a card with S/PDIF or AES/EBU already built-in). As far as I can see the only missing part is CobraNet driver software for PC appearing as sound card under XP/Vista/Linux/OSX etc. Perhaps a separate from the ordinary network card is also required but that is trivial. My primary question is whether there exists such driver software. Any other comments and/or advices would also be greatly appreciated.
 
Mhakman,

If you were to use an external box with an AtteroTech card, there would be no need for a driver for the O/S. The input to that card is I2S. So you would need a S/PDIF receiver that supplied I2S to the AtteroTech card. Then run the S/PDIF out from your computer into that. Set the interface from the computer to run at 48kHz sample rate.
The actual control of the card (i.e. setting up the CobraNet audio routing bundles , etc.. ) could be done using the free CobraNet Discovery software from Cirrus. That talsk to the card via the EThernet interface. Under the hood, it is all done using the SNMP protocol. But you have to turn the configuration functions on in CobraNet Discovery to do that. The CobraNet config functions are not enabled by default. Read the manual that comes with it for instruction on how that is done.
If you have any other questions, let me know. I know a fair amount about CobraNet.
 
Audiosteve,

Many thanks for the reply. From your answer I understand that I didn’t describe my needs precisely enough. My audio source is a computer. This computer needs to output 6 channels of audio (5.1) digitally to other devices. The only available connections to this computer are Ethernet, Firewire, USB and PC-card and there is no internal PCI place (think of notebooks, minis, and SFF). The built-in S/PDIF output connector when available at all is not usable because it can only output 2 channels. So I need a device (or a set of devices) that would connect to this computer by one of the above links and then provide 3 2-channel S/PDIF out. More or less like 5.1 sound card without DAC. I was hoping that this could be cheaply achieved by CobraNet. If there is a software/hardware for the computer that can act as CobraNet source device on Ethernet port (perhaps on a separate PC-card if not on the built-in RJ45) then this could be connected to, let’s say, AeroTech card and then I would only need to build a small card connecting to the 3 I2S signals on AeroTech and converting to 3 S/PDIF – that should be easy enough using off-the-shelf components.

The crux, as I see it, is how to cheaply get a computer to behave as or connect to a CorbaNet device and to do it without using PCI. If I could use PCI then I would probably use 8 channels (4 connectors) AES/EBU/SPDIF PCI sound card without going over CorbaNet. I can’t but CorbaNet is also interesting for expansion and/or other applications. In other words, use a computer not only as CobraNet control but as fully-fledged CobraNet device.
 
Peufeu,

I don’t know much about CobraNet protocol but I now a lot about Ethernet from the protocol point of view. Then from CobraNet FAQ:

“CobraNet delivers audio in standard Ethernet packets over 100Mbit Fast Ethernet. Switches, hubs, media converters and other gear that operate in compliance with the IEEE 802.3u specification for Fast Ethernet, will work with CobraNet.”

Therefore it seems to me that any decent Ethernet card could generate/receive these packets. The FAQ sentence above is the very reason that I started thinking in these terms. Maybe the FAQ doesn’t say all of it and CobraNet uses some feature of IEEE802.3u normally implemented in all above network gear but not in plain Ethernet cards. In that case it won’t work.

I have been reading about your solution both here and on your site and I’m impressed. I don’t think however that your solution is directly applicable to my problem. Your problem appears to be DAC with the highest possible quality. My problem is to get 6 digital channels out of a small computer at a reasonable cost. To design and build everything from scratch as you did is above my skill level. I can do some simpler DIY hardware projects but nothing as complex as yours. Also I DIY only when I cannot find ready-to-use and affordable solution on the market (commercial or not).

Could you give me some references to pro-audio Firewire breakout boxes with digital (S/PDIF or AES/EBU, no ADAT) outputs? I searched but I couldn’t find.
 
Ah, no, what I meant is that CobraNet :

- apparently uses standard Ethernet packets, BUT these contain a custom payload, ie. no UDP or IP ; therefore to generate these you need a custom raw ethernet driver (this is probably doable, but does it exist ?)

- and is designed with ultra low latency professional applications in mind, ie. the card MUST send packets at the right times and with the right rates. Since CobraNET PCI cards incorporate all the needed logic, hardware timers and interrupts, and use the OS soundcard driver path, this is alright ; a standard Ethernet card is not designed for this at all...

Have you considered ADAT optical ? It fits your bill and there are USB/FW adapters with ADAT outputs.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.