Adding TOSLINK / optical input to 1701 project?
I have an older design using an ADAU1701, and we'd like to upgrade it to include consumer-grade TOSLINK (optical input), but I don't want to add too much cost. From my reading, this gets complicated, because the master clock for the ADAU won't be synchronized with the external source. So I assume I'll need an ASRC.
I see a few options -
1. Add a chip to convert S/PDIF to I2S as a slave to the source, then use an ASRC to sync the digital data into the ADAU1701. This seems quite complicated, but maybe there's a cheap IC somewhere that does all this?
2. Convert the S/PDIF into analog, which is mux'd or mixed to the ADAU analog input. This probably requires a receiver + DAC, so $$.
3. Switch to an ADAU1442 or similar (adds $5), which handles the digital side nicely, but requires a codec to retain my analog capability, so that's another $2 or so. The extra processing is nice but I don't really need it.
Given that this type of input is so common in inexpensive consumer gear, I'm surprised it's turning out to be so expensive - easily $5 plus the connector in quantity.
Any other options I'm overlooking?
Audio Signal Processors
spdif
adau1442
SigmaDSP Audio Processors
toslink
asrc
adau1701
Show More
There are SPDIF transceiver ICs (not ADI products though as far as I know, other than ADAV801/3 which are also codecs) that will sync their clocks to incoming SPDIF or their own MCLK if there is no SPDIF present. There are also a few with ASRCs. You could use one of those if you have have your ADAU1701 slave to the resulting I2S stream. You're still looking at a $5 chip though, and you'll need to control it with a MCU.
A lot of the inexpensive consumer gear is using SoC devices that have all of these functions integrated, but they don't necessarily have the DSP capabilities of SigmaDSP, and certainly they don't have the same ease of programming. There are also lots of obsolete AC97 codecs that will have SPDIF support, that could be what inexpensive devices are still using. Most of those parts don't have very good codecs by modern standards.
Thanks very much. The DIR9001 looked interesting, as it can use its own clock, or the source clock, and switch automatically. Then the ADAU1701 would be a slave via I2S. I'm not sure how well-behaved the clock switching is, however, and whether the ADAU1701 will lock up during these transitions. It's only a $2 chip.
Maybe I should see just how bad these old AC97 codecs are..
Do you need -1701 to run continuously? If not, pull it into reset on transitions. The transceiver chips usually have lock flag pin for that purpose.
As you noted if you only need Rx and not Tx, those chips aren't as expensive.
I wouldn't bother with AC97 as they have a lot of other functions you don't need, you'd have to program them (vs. a Rx chip that can run in hardware mode), and the codecs are much worse than -1701. Also check those parts carefully as I think only S/PDIF Tx was mandatory, many of them don't have Rx. I only mentioned them because some consumer products might still use them as cheap SoCs. I believe ADI has made all of theirs obsolete, but a few other vendors still have them in their catalogs.
All we need is RX. The DIR9001 may fit the bill at ~$2, or something similar. It need not be continuously running when switching to S/PDIF; we can afford a second or two for a reset. And I do have a microcontroller on the board.
Still more cost and hassle than I was expecting, but this might be the best solution.
Check this (my own) project WM8804+AD1895+ADA1701 (1Spdifin, 4DAC OUT), fs=96kHz:
or try AD1445 + external DAC ex.PCM5102.
Nice work, thanks for sharing.
This might be the most expensive way to do it, though! The AD1895 is $6, and the WM8804 is $7, so that's a lot of added cost.
Curious - why didn't you have the ADAU1701 be a clock slave from the WM8804, so you wouldn't need the AD1895?
ADAU1445 is about $12, plus a $2 DAC (codec, really), so that's about a $10 increase in price. A lot for a consumer item. I was hoping to find a solution in the $2 range.
I have begged ADI to consider S/PDIF in future (smaller then -1445) SigmaDSP chips. My dream chip would be -1772 with S/PDIF and a -1701 core. More voices in support would be merrier!
One possible reason to use AD1895 between the Rx and -1701 is so that -1701 doesn't have to reset & load a new program for incoming sample rate changes (for example if its analog inputs have to keep running while the digital inputs are muted while acquiring a new lock). It also lets you pretend to run at double-speed rates while retaining the single-speed instruction set in the -1701 core.
Well hopefully ADI is listening to my begging as well.
I can see that benefit from the AD1895. I can live without continuous analog inputs briefly during a switch to digital. (I don't expect many sample rate changes from consumer connections though.) A reload is a bit of a hassle, but it's workable.
I think I'll have to try the DIR9001.
jon71 wrote:
I have begged ADI to consider S/PDIF in future (smaller then -1445) SigmaDSP chips. My dream chip would be -1772 with S/PDIF and a -1701 core. More voices in support would be merrier!
You have my voice in support too!!
AD should also release register control interface to the hardware configuration tab in SigmaStudio for ADAV4601.
Related question:
What sample rates should be supported by S/PDIF for consumer products (TV's, DVD, etc.)? I haven't found any definitive info about this. Is 48kHz safe, or should 96kHz be accommodated? Supporting the higher sample rate of course eats up half my processing capacity unnecessarily, and might require an ASRC ($$).
48kHz does the job almost 100% of the time. I have not come across a situation where I could not get audio with SPDIF set to 48kHz.
Kindly note that this statement is not backed by document/ specification but based on my experience.
Others can share their experience as well.
In fact, I feel that AD should re-release ADAV4601 as is but with added SPDIF decoder. It enjoys full SigmaStudio library support even today so no ground work will be needed there! It WILL be a BIG HIT!!
You may also want to take a look at LC89091JA from ON Semi. It is not expensive. That with PCM5100 from TI will give you an SPDIF interface. Then use it with ADAU1701 with any required combination and topology as per your requirement.
You can find my board here: https://ez.analog.com/message/219878#219878
It uses WM8805 + PCM5100
Nice. The LC89091JA would probably work on its own, as long as I allow the 1701 to be a clock slave (and can reject >48kHz). The WM8805+PCM5100 is a good solution if you need concurrent continuous analog inputs, which I can live without.
Please log in to reply.