Mod for DVD player Hi-Rez stereo PCM output - SACD DVD-A HDCD
Mod for DVD player Hi-Rez PCM output
subtitle - adventures with CS8421
Most DVD players sold in the USA limit the resolution of the digital audio output due to fears about copy protection. As a result, I have purchased Hi-Rez discs and I have paid for full audio resolution. Due to the shortsightedness of the lawyers and paranoids at the RIAA, I cannot utilize the full audio resolution that I have paid for if I wish to send digital audio to an external processor and DAC. I probably would have purchased hundreds of these discs if I were able to use them to their full capability.
I wish to send Hi-Rez digital audio over SPDIF to my Behringer DEQ2496 and then on to a high end stereo DAC. The DEQ2496 is a DSP equalizer that corrects and matches my speakers to the room. This is a marvelous invention. Room resonances can be corrected Listening to analog SACD without digital EQ is nowhere even close to the sound of a carefully adjusted DEQ2496 and a high-end DAC. Analog equalizers with lots of analog op-amp filters introduce a lot of coloring into the sound and cant fine tune room resonances like a DSP can.
I listen to the stereo mixes on DVD-A and SACD. I am not interested in doing a multi-channel mod at this time. So, my mod addresses Hi-Rez stereo only. It would be possible to expand the concept to six channel in the future.
I began research into a hardware mod solution to this problem and analyzed several DVD players. I also read the thread on modding Pioneer players by Dr. Oehlrich from Germany. I settled on creating a mod to use on an inexpensive player that uses the MediaTek MT1389 chip, the Oppo981.
The Oppo has DVD-A, SACD, & HDCD capability, and a Faroudja chip for video. This mod may work on other players but I haven't done the research to prove that out. I have read that some of the Pioneers use this chip, but I don't know for sure since I don't have a Pioneer.
The MT1389 DVD controller chip outputs digital audio in at least two streams. One is a SPDIF stream from pin-225 that is ready for a Toslink or coax output circuit. This is the stream that is down-rezzed by the DVD firmware for DRM. A second data stream is a standard three-wire DAC interface that consists of a bit clock (pin 214), left-right clock (pin 213), 3 stereo data lines (pins 217-219), and a DAC reset line (pin 222). This 6-channel interface is not down-rezzed for DRM and is sent to an onboard DAC chip. In the case of the DVD player that I have chosen to mod, the DAC chip is the CS4360, an inexpensive Cirrus Logic six channel DAC that can muster only marginally better than 16 bit performance even though it accepts 24 bit data.
The MT1389 DVD controller chip also sends audio data to the Silicon Image HDMI chip. That chip has both I2S and SPDIF inputs. It's not clear to me how that is used since I can't find a data sheet on the Sil9030ctu.
In his thread, Dr. Oehlrich has described a simple adapter that could be wired to the standard three-wire DAC interface port but not fully accept all hi-rez data. A partial solution could be as simple as connecting a SPDIF interface transmitter to the MT1389 DAC interface.
The MT1389 DAC interface can send sampling rates anywhere from less than the 44.1K of CDs up to 192K on DVD-As. In the case of the commonly used Cirrus Logic CS8406 Digital Audio Interface Transmitter, a master clock is needed that is either 128*Fs, 256*Fs, or 512*Fs, and extra logic would be needed to detect all the sampling rates and provide the correct data format & clock. In the mod that Herr Oehlrich has done, he used programmable logic to solve the problem. I wish to accomplish the task with fewer parts and complexity. I also wish to limit the SPDIF rate to 96K, which is the limit of the Behringer and my external DAC.
Enter the Cirrus Logic CS8421 Asynchronous Sample Rate converter. For those of you concerned about resampling and it's effects and drawbacks, see this long thread:
Asynchronous Sample Rate Conversion
A short review of that long thread: Some say that resampling will add digital artifacts and encode jitter into the output stream. Cirrus Logic claims that the input jitter can be largely rejected. It is true that resampling digital audio will not improve the sound at all. I believe that the benefits of resampling are greater than the disadvantage of listening to the shoddy analog outs of an inexpensive DVD player, or it's down-rezzed DRMed digital.
This mod does not illegally bypass or circumvent copy protection because I am not making a copy. The bitstream has been decoded with a licensed decoder. If someone were to use this mod to make a copy and sell it, however, then that may be illegal. The copy would not be bit-perfect since the bitstream is modified by the Cirrus Logic CS8421. From what I understand of watermarking, that technology won't be defeated or circumvented with this mod, though I have made no effort to test that assumption. I'm not giving legal advice or advocating or allowing anyone to break the law using this technology.
Having said that, of course, it may make RIAA lawyers unhappy if they somehow knew that we had the audacity to question their jurisdiction and listen to the audio bitstreams in the way that we choose on discs that we have purchased. I am not selling anything nor copying anything. Anyway, the RIAA lawyers are too busy molesting little boys out at the Neverland Ranch with MJ. Heheh.
It is my firm opinion that copy protection and DRM are what have killed the market for Hi-Rez discs. Widespread use of this mod may actually boost the market for SACD and DVD-Audio.
The Cirrus Logic CS8421 has the ability to use the MT1389 DAC interface directly in slave input mode without adding external logic. Providing a low-jitter master clock to the CS8421 we then can enable a single output sampling rate and clock to a CS8406 SPDIF output device.
A benefit of this process: The CS8421 will provide a constant low jitter 24 bit/96K data stream to the Behringer 24/96 DSP equalizer for its operations, regardless of the source.
I chose a 24.576MHz clock oscillator package that has less than 1pS RMS jitter spec and 30pS PP jitter (20000 periods). The model with 25PPM stability costs $2.38 from Mouser.
It's not perfect but it is much better for clocking samples than the 25cents cheapo 27MHz DVD crystal timebase that isn't even an integer multiple of the sampling rates. I believe the Superclock and Tentlabs clocks are overkill for my application. A 4 pin clock osc circuit with power supply filter has a low parts count.
The CS8421 uses two resistors and two pins to configure the input and output ports. I chose the 1% resistor values that correspond to 24-bit left-justified data streams, but other setups can be done just by changing the 1% resistors to values specified in the data sheet.
My mod takes shape. I chose to output a 96K sampling rate from the SRC chip to send to the DEQ2496 because that is the highest rate it can process. All we need from the DVD player is power and four signal wires from the MT1389 DAC interface. I am configuring the player setup for stereo downmixing and ignoring the other two data signal wires for the multichannel streams.
Someone who wishes to do 5.1 output will need six signal wires and power from the MT1389 board.
I choose to add a TOTX142 Toslink output (25MHz bandwidth) instead of re-wiring the existing one. Now with two optical outs I can send RIAA-happy down-rezzed audio on the stock Toslink port to my TV and Hi-Rez audio on my new Toslink port to the Behringer DSP.
The Oppo981 is on backorder so I decide to experiment on my older Oppo971. It doesn't have SACD capability but does play DVD-A and HDCD.
The Oppo971 has DVI output so I need to send audio to the TV. When I mod the Oppo981 it has HDMI with audio, and a double SPDIF output will not be necessary.
I develop a schematic, PCB layout and bill of materials.
The digital audio signal path is straightforward and mostly as described in the data sheet recommendations. The CS8421 resampler chip uses slave mode on the input and master mode on the output. The CS8406 SPDIF Transmitter chip is set up in hardware slave mode. Both CS chips are reset by the DAC reset line from the MediaTek chip. The CS8421 "unlock" output signal is used to set the "valid" bit on the CS8406 output data stream. Jumpers are provided to set the output sample rate at either 96K or 192K, just in case I want to upsample everything to 192K at some later time.
Two voltage regulators are used because the CS8421 needs a 3.3V and 2.5V supply. I could have used a diode drop from the 3.3V supply, but most ICs that use a low core voltage also require that the low core voltage power up in sequence with the higher IO voltage. ICs may lock up if the core voltage rail trails the IO voltage rail on power up ( which would be a consequence of creating a 2.5V supply with a diode drop from the 3.3V ). Even though the CS8421 data sheet states that they "can be set independently", I use the two regulator setup to let the rails track together in power up to keep the silicon happy and stress-free. :)
LDO regulators are used and the power setup will work nicely connected to a 5V regulated supply on the DVD controller board. a small quarter watt resistor was added in to the supply line to drop a few hundred millivolts and, along with the input caps, provide a smidgeon of digital noise isolation. The entire mod circuit can theoretically draw up to 190mA when running at full speed, so attention is needed to make sure the DVD supply rail is regulated adequately. We also are going to generate some heat as a consequence of consuming nearly a watt. The regulators are small PQ1L series regulators in SOT98-5 packages from Mouser.
Obstacles: The Cirrus Logic parts are in fine pitch surface mount. The MT1389 DAC interface is also fine pitch surface mount, but has some terminating resistors that we can connect to. The Crystec oscillator is a SMT package. I purchase a fine point soldering tip for my iron and get ready. The Cirrus logic chips and the rest of the parts came from Digi-Key.
Soldering a TSSOP is not as hard as it looks. Put a dot of solder on the PCB at pin one, hold the TSSOP with tweezers, heat the solder on the PCB at pin 1 and place the chip and inspect it. If the placement isn't perfect, heat it again and move the chip. It's easy as long as only one pin is soldered. Once you are satisfied with the part placement on the PCB lands, then glob some solder all over the rest and then remove the excess with solder wick. Make sure you have pin one oriented correctly, because once more than one pin is soldered, you'll never get that chip off intact if it's not on there correctly at the start.
Careful handling the TSSOP because if you bend those pins then give it up because the chip is ruined.
It doesn't take much solder or heat to attach a TSSOP lead to the board. Try not to get solder under the package. Inspect it closely with a magnifier. View it from several angles because the mask is shiny and it makes it hard to see. Solder mask on the PCB is required for this type of work, so forget about going in the cheapo direction with your board purchasing... (grin) Those pins are on 0.5mm centers.
Soldering a 0603 resistor is actually harder than soldering down a 20 pin TSSOP, so I use 0805 as the smallest size on the board. Soldering hint #1: keep your tip clean. Soldering hint #2: keep your tip clean. Soldering hint #3: keep your tip clean.
The hardest part of the project was connecting wires to the main board of the Oppo971 DVD player. The data and clock signals had terminating resistors that I soldered to, but they are 0603s. It is difficult to solder a wire to an 0603 because if you heat it too much, the entire resistor comes off the pads. For the reset line, I soldered directly to a tiny pin on the CS4360 DAC. The pins are 0.5mm spacing and a good magnifier was used just to make sure I didn't short anything out. I found a decoupling cap to solder a ground wire for a short signal return. I kept all these wires as short as I could make them to keep the inductance down to a minimum.
I discovered an empty part location on the DVD main board that was designed for a voltage regulator. It has +5V on the input, so this made a great place to attach my power supply twisted pair. I wired up my toslink port and hacked a hole in the back of the DVD player right next to the existing one.
I connect everything up and turn on the power. My power supplies look good but no output and the clock looks really bad. I look at my schematic and realize that I have made a real bonehead mistake. I have wired the 24.7M clock into XTO instead of XTI. Fortunately I have used termination resistors on both XTO and XTI so the fix is really simple. Turn the power back on and we are resampling. Yes!
I played a CD and checked the output, it definitely is 96K and sounds very good. After about an hour of CDs I played a DVD-A with 96K sampling and it sounded good for a while. After an hour sound started clicking and I noticed the "lock" light on my DAC was flickering. Playing a DVD-A with 192K sampling had horrible noise.
I took the DVD player apart and everything was very, very warm. OK, it's was HOT. The Oppo971 DVD player ran hot to begin with and is hotter now with my little mod board inside it. The Oppo971 has no vents or fans, so I suspect a heat problem.
I have calculated that the CS8421 chip can dissipate up to about 1/3 watt. This tiny little IC is only about 5mm x 3mm in size and could have trouble dissapating heat. Cirrus has two available packages shown in the data sheet, the TSSOP20 and a funny little BGA-like part that has a heat sink pad on the bottom. That other part would be good for heat dissapation but would be impossible to hand-solder.
|All times are GMT. The time now is 05:23 PM.|
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2015 DragonByte Technologies Ltd.
Copyright ©1999-2015 diyAudio