Correction to a previous post #122 regarding obtaining a balanced output from ProtoDAC:
"Use two TDA1387 X8 modules and a 74ACT86 logic IC. One module gets DATA (from I2S) and the other inverted DATA. The analog outputs will be 180 degrees out of phase." is not correct.
According to an explanation posted in diyAudio :
"The problem is that with binary arithmetic, there is a difference between inversion and negation.
Inversion is a logical operation that is applied the each bit individually. The rule for inversion is invert every bit.
Negation is an arithmetic operation and is applied to the value of the data represented by the collection of bits. The rule for negation is invert every bit and then add 1 to the resulting binary number.
When you invert the number 0, you get -1.
When you invert the number 1, you get -2.
And so on...This is not the behavior you want to create a balanced signal.
When you negate the number 0, you get 0.
When you negate the number 1, you get -1.
And so on...This is the behavior you want to create a balanced signal.
A problem with negation is that certain input can lead to binary overflow and the wrong result. Recognizing and correcting overflow with a hardware implementation is not simple, but is easy with software.
You should also know there is no value in using a pair of DACs to create a balanced signal, even if you do the proper negation of the input. One DAC will be converting a positive number while the other is converting a negative number. It is unlikely the two DACs will be sufficient matched to make it worthwhile."
"...inverting the data introduces an undesirable offset. It's better to use a transformer to create the balanced signal from the single-ended output of the DAC chip."
"Use two TDA1387 X8 modules and a 74ACT86 logic IC. One module gets DATA (from I2S) and the other inverted DATA. The analog outputs will be 180 degrees out of phase." is not correct.
According to an explanation posted in diyAudio :
"The problem is that with binary arithmetic, there is a difference between inversion and negation.
Inversion is a logical operation that is applied the each bit individually. The rule for inversion is invert every bit.
Negation is an arithmetic operation and is applied to the value of the data represented by the collection of bits. The rule for negation is invert every bit and then add 1 to the resulting binary number.
When you invert the number 0, you get -1.
When you invert the number 1, you get -2.
And so on...This is not the behavior you want to create a balanced signal.
When you negate the number 0, you get 0.
When you negate the number 1, you get -1.
And so on...This is the behavior you want to create a balanced signal.
A problem with negation is that certain input can lead to binary overflow and the wrong result. Recognizing and correcting overflow with a hardware implementation is not simple, but is easy with software.
You should also know there is no value in using a pair of DACs to create a balanced signal, even if you do the proper negation of the input. One DAC will be converting a positive number while the other is converting a negative number. It is unlikely the two DACs will be sufficient matched to make it worthwhile."
"...inverting the data introduces an undesirable offset. It's better to use a transformer to create the balanced signal from the single-ended output of the DAC chip."
Hardware: RPi Zero W | Allo Kali | ProtoDAC TDA1387 X8 | PGA2311 | Icepower 500ASP | Harbeth SHL5
Software: Moode 8.3.3
Source: Win 10 NAS
Software: Moode 8.3.3
Source: Win 10 NAS