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
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.
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.
- Home
- Source & Line
- Digital Source
- Help needed: Raspberry Pi I2S driver for TDA1543