TDA1540 - I2S to Offset Binary for Intel Altera CPLD/FPGA

Do you think using TDA1540 without digital filter is a good idea?
The thing is it is a 14 bit dac so the quantanization noise is quite high. If I remember correctly, original Philips design uses noise shaping (dithering) to improve the SNR.

If there is need, I can add support of TDA1540 to my USB interface as well. Currently it has support for NOS dacs with 16/18/20/24 bits of resolution:
https://www.diyaudio.com/community/...put-interface-york.413504/page-2#post-7751610

Perhaps it has enough power for dithering too 🤔
 
I know SAA7030 did what was necessary to communicate with the TDA1540 so I ordered this from aliexpress

https://www.aliexpress.com/item/325....order_list.order_list_main.11.352e1802IJm3af

I wanted to hear the difference side by side between the two devices. My ultimate goal is to get a TDA1540 based DAC working with I2S input and a balanced analog output. The board from aliexpress with the SAA7030 ouputs an inverted signal for left and right so I'm going to try that with one miro board to make sure stereo is working, then a second to see if it'll work as a balanced DAC with 2 boards and 4 chips. If that works then I'd like to work with somebody to get the code for the CLPD device working with a balanced setup.
 
Do you think using TDA1540 without digital filter is a good idea?
The thing is it is a 14 bit dac so the quantanization noise is quite high. If I remember correctly, original Philips design uses noise shaping (dithering) to improve the SNR.

If there is need, I can add support of TDA1540 to my USB interface as well. Currently it has support for NOS dacs with 16/18/20/24 bits of resolution:
https://www.diyaudio.com/community/...put-interface-york.413504/page-2#post-7751610

Perhaps it has enough power for dithering too 🤔

Philips used oversampling and noise shaping, but no dithering.

2 LSB peak-peak triangular PDF dithering (without oversampling or noise shaping) would change the requantization error from -86 dBFS distortion to a -81 dBFS noise-like signal. It sounds better when you play soft passages at a high volume setting, but it doesn't look good on a spec sheet with only SINAD values.
 
If there is need, I can add support of TDA1540
it would be nice to add support for 4 data outputs 14bit with emulation to 16bit
The reminder of 2 last bits 15 and 16 bits can be used for controlling the dac input data lines. At Iout will be the sum corresponds for 16 bit word. As the summ of 4 14bit words. Reminder is what number of dac chips will be supply with
I think that it can be done with Your board?
 
it would be nice to add support for 4 data outputs 14bit with emulation to 16bit
The reminder of 2 last bits 15 and 16 bits can be used for controlling the dac input data lines. At Iout will be the sum corresponds for 16 bit word. As the summ of 4 14bit words. Reminder is what number of dac chips will be supply with
I think that it can be done with Your board?
I can only have 4 data outputs. So that means 4 TDA1540 total, 2/channel.
 
  • Like
Reactions: sbelyo
btw
the one and only dac chip that can produce clear square of 20khz. every other badly distort squares...

You can't really represent a square wave with an ordinary (Nyquist-Shannon-sampled) digital signal, because it isn't band limited. For example, a sequence +1 +1 -1 -1 +1 +1 -1 -1... at 44.1 kHz sample rate represents a sine wave of 11.25 kHz with amplitude √2, as it's the only signal that is bandlimited to half the sample rate that fits through those sample points.
 
I can only have 4 data outputs. So that means 4 TDA1540 total, 2/channel.
Sometning based on this paper
I check and it is posibile. Only the arrangements should be done before the word send to convesion.

info TDA1540 14 bits.png
 
You can't really represent a square wave with an ordinary (Nyquist-Shannon-sampled) digital signal, because it isn't band limited. For example, a sequence +1 +1 -1 -1 +1 +1 -1 -1... at 44.1 kHz sample rate represents a sine wave of 11.25 kHz with amplitude √2, as it's the only signal that is bandlimited to half the sample rate that fits through those sample points.
Yes... I dont know... But I measured this at the output and with the same set up, same scope and everything else, it was not possible with other dac chips. 🙁
I cant explain why? The output was sa I am remeber, standard current injection of 2mA with BF245B, 5R (or 10R cant remember) Riv simple JFET 2SK170 gain stage with same jfets buffer,
Cdem was 820pF BUT with each dem pin with 20K R connected to -18V supply, for 0.2mA (measured) current to dem pins.
All other things was as in the datasheet and standard.

20KHz square TDA1540.JPG
 
Last edited:
But it need 8 pin outputs 4 pin for each channel. In praxis.
shuld be check on paper first I checked but has to be verified again...
all 4 14bit words corrected for last bit, in addition has to form a 16bit original word, and when analog outputs are summed should be emulate a 16bit word lenght value?
They do averaging in time domain. I.e. for 1 given 44.1kHz sample they send 4 words to tda1540 at 176.4kHz rate. And the reconstruction filter averages these 4 words.

As @MarcelvdG mentioned:
Philips used oversampling and noise shaping, but no dithering.
But it is also quite hard to call as noise shaping. As mentioned in the paper 🙂

So only 2 data lines and 2xtda1540 required for that.
 
They do averaging in time domain. I.e. for 1 given 44.1kHz sample they send 4 words to tda1540 at 176.4kHz rate. And the reconstruction filter averages these 4 words.
Yes this is for serial 4 x OS word, BUT maybe it can be used in NOS mode in parallel words, just summing the analog products?
.
There will be one base word of 2 LSB cutout to 14bits
other 3 words are repeating in the ranfe of other 3 DAC chips...
.
Try to expand the hex word from the example?
I had it on the paper but somehow I lost 🙂
I will try again and post
Thanks 🙂
 
BUT maybe it can be used in NOS mode in parallel words, just summing the analog products?
Yeah, I understand what you mean, that's why I mentioned need for 8 data lines for 8 chips (for stereo) in previous posts.
My board can't do that but it is doable with small FPGA.
However, I doubt that it will work. In principle yes but little differences between 4 DACs connected in parallel are not going to be the same as 16 bit DAC.

So averaging in time could be better approach in terms of DAC linearity.
 
I have this idea of laying out a board that has a footprint to plug in USB input like @eclipsevl 's board or the JL sounds board. That input would feed four TDA1540 chips. Then the board would leave the TDA1540 output exposed so someone could choose whatever output stage they want.

I'd happily pay someone to lay this out so that we could all have a board to experiment with and possibly open source so that it would continually evolve. I could stock the board and put together an assembly guide over time. I think it would be a neat project. If someone wants to help me start it, let me know.