Hi everyone, I'm new to DAC and would like to try different DAC available in the market. Recently I purchased the ProtoDAC, which works directly with Raspberry Pi through the I2S interface, and everything works like a charm.
The ProtoDAC comes with a DAC module, which is basically 8x TDA1387 in parallel. Having checked the datasheet of TDA1387 and TDA1543, both of them use the I2S protocol. Therefore, I replaced the TDA1387 module with the TDA1543 IC by mapping the I2S (WS, DATA & BCK), VDD and GND pins. Unfortunately, I could not get pure music but a mix of music and noise.
What I can confirm:
Symptoms observed:
At first I thought the TDA1543 was faulty, then I purchased a couple of them from different vendors but all of them exhibited the same behavior, Then I purchased a finished kit which converts SPDIF signal to I2S, and all TDA1543 worked fine.
The converter KIT has a CS8412 which converts SPDIF signals to I2S signals. Again, having checked the Datasheet of CS8412, I confirmed that the output was configured as I2S mode.
M3=0
M2=0
M1=1
M0=0
So I started to think about the driver issue from Raspberry Pi. Here is the connection between TDA1543 and Pi 4:
TDA1543 <-> Pi4 (GPIO)
BCK (Pin1) <-> BCK (Pin12)
WS (Pin2) <-> LRCK (Pin35)
DATA (Pin3) <-> DOUT (Pin 40)
GND (Pin4) <-> GND (Pin 6)
VDD (Pin5) <-> 5V (Pin2)
Attachment is the converter kit and it works flawlessly when fed with SPDIF signal. Could anyone point me to the right direction? I feel frustrated. Thank you.
P.S. Before asking for help, I also Googled and seemed older version of Pi worked with TDA1543 without any issues. I just tried many ways but could not fix the problem.
The ProtoDAC comes with a DAC module, which is basically 8x TDA1387 in parallel. Having checked the datasheet of TDA1387 and TDA1543, both of them use the I2S protocol. Therefore, I replaced the TDA1387 module with the TDA1543 IC by mapping the I2S (WS, DATA & BCK), VDD and GND pins. Unfortunately, I could not get pure music but a mix of music and noise.
What I can confirm:
- TDA1543 is working fine (will explain below)
- It is the TDA1543, not the TDA1543A
- TDA1543 works with CS8412 I2S output mode
- the resistor in the passive I/V stage is changed to 1K because of the smaller output current
- VDD and GND are connected
Symptoms observed:
- Volume control seems not working (no problem with TDA1387)
- Output is a mix of music and noise
At first I thought the TDA1543 was faulty, then I purchased a couple of them from different vendors but all of them exhibited the same behavior, Then I purchased a finished kit which converts SPDIF signal to I2S, and all TDA1543 worked fine.
The converter KIT has a CS8412 which converts SPDIF signals to I2S signals. Again, having checked the Datasheet of CS8412, I confirmed that the output was configured as I2S mode.
M3=0
M2=0
M1=1
M0=0
So I started to think about the driver issue from Raspberry Pi. Here is the connection between TDA1543 and Pi 4:
TDA1543 <-> Pi4 (GPIO)
BCK (Pin1) <-> BCK (Pin12)
WS (Pin2) <-> LRCK (Pin35)
DATA (Pin3) <-> DOUT (Pin 40)
GND (Pin4) <-> GND (Pin 6)
VDD (Pin5) <-> 5V (Pin2)
Attachment is the converter kit and it works flawlessly when fed with SPDIF signal. Could anyone point me to the right direction? I feel frustrated. Thank you.
P.S. Before asking for help, I also Googled and seemed older version of Pi worked with TDA1543 without any issues. I just tried many ways but could not fix the problem.
Attachments
Hi,
I think a resistor of a value 330 for the I2S it too low. Normally it should be using 5 volts 4k7. Since the Pi giop ports are 3.8 volts the resistor should be around 2k4.
I think a resistor of a value 330 for the I2S it too low. Normally it should be using 5 volts 4k7. Since the Pi giop ports are 3.8 volts the resistor should be around 2k4.
Thanks for the hint! Currently there is no resistor connected to Pin 7 as the datasheet says optional.Do you have anything connected to pin7 on your TDA1543 (the implementation that isn't working) ?
What's the recommended resistor value?
Also checked that, seems like TTL is not a problem.Can it be that TDA1543 cannot work with 3.3V TTL? RPi I/O are 3.3V.
Thanks for the hint! Currently there is no resistor connected to Pin 7 as the datasheet says optional.
I think you may have found your problem!
What's the recommended resistor value?
I'd go for 1k for pin7 and 820ohm for pin6 and pin8.
Thanks all of you for the help.
Just checked the converter kit, Pin 7 is connected to an 1K resistor, Pin 6 and Pin 8 I/V resistors are also 1K. I will go for this configuration and try again tomorrow.
Will keep you guys posted.
Just checked the converter kit, Pin 7 is connected to an 1K resistor, Pin 6 and Pin 8 I/V resistors are also 1K. I will go for this configuration and try again tomorrow.
Will keep you guys posted.
My 2 cents you have a mismatch of I2S format - while TDA1387 is OK with it, the other DAC chip expects some different format. Bit-shifted/mixed samples typically produce noisy output yet with discernable music, not working volume control (the MSBs are misaligned).
E.g. TDA1543A is right-aligned, while TDA1543 is standard I2S - this can be adjusted in DTS overlay.
Maybe your I2S has 32bit per sample (i.e. 64bit frame) which TDA1384 may accept and TDA1543 may not - best to use S16LE format for the I2S alsa device to avoid this possibility.
It's good to check the digital format with a 2+ channel oscilloscope and a suitable playback signal which reveals position of the MSB.
E.g. TDA1543A is right-aligned, while TDA1543 is standard I2S - this can be adjusted in DTS overlay.
Maybe your I2S has 32bit per sample (i.e. 64bit frame) which TDA1384 may accept and TDA1543 may not - best to use S16LE format for the I2S alsa device to avoid this possibility.
It's good to check the digital format with a 2+ channel oscilloscope and a suitable playback signal which reveals position of the MSB.
Thanks for everyone's help! After connecting Pin 7 with an 1K resistor, TDA1543 works like a charm! Now I'm going to hook it with my amplifier and speakers and have a serious listening test.
- Home
- Source & Line
- Digital Source
- Help needed: Raspberry Pi I2S driver for TDA1543