mod NAIM CD-player with PMD-200 into stand alone DAC

Many thanks for the PDFs!!!!

1. MCU enters sleep mode after sending data. (Need to analyze whether monitoring is needed)

1.) Code for sending the MCU to sleep will be processor dependent: I can only program sleep modes if I know the processor. Here an example, sending the attiny24/44/84 after half a second of doing nothing to deep sleep:
Code:
#include <avr/sleep.h>
#include <elapsedMillis.h>

elapsedMillis stopwatch;
unsigned long interval = 500;

void setup() {stopwatch = 0;}

void goto_sleep() {
  GIMSK |= _BV(PCIE0);
  GIMSK |= _BV(PCIE1);
  PCMSK0 |= _BV(PCINT4);                  // Use PA4 as interrupt pin
  PCMSK0 |= _BV(PCINT5);                  // Use PA5 as interrupt pin
  // PCMSK1 |= _BV(PCINT9);               // Use PB1 as interrupt pin
  ADCSRA &= ~_BV(ADEN);                   // ADC off
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // replaces above statement
  sleep_enable();                         // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
  sleep_cpu();                            // sleep
  sleep_disable();                        // Clear SE bit
  // PCMSK1 &= ~_BV(PCINT9);              // Turn off PB1 as interrupt pin
  PCMSK0 &= ~_BV(PCINT5);                 // Turn off PA5 as interrupt pin
  PCMSK0 &= ~_BV(PCINT4);                 // Turn off PA4 as interrupt pin
  ADCSRA |= _BV(ADEN);                    // ADC on
}

ISR(PCINT0_vect) {stopwatch = 0;}
// ISR(PCINT1_vect) {stopwatch = 0;}

void loop() {if (stopwatch >= interval) {goto_sleep();}}
2. Start resetting PMD200 after power-on. The reset logic is: first low level for 500us and then high level. 3 times.
2.) I included that already in my latest code, please see post #91.

3. I suggest adding the hardware mute function. The high level of pin17 HMUTE of PMD200 is mute, and the low level is played normally. The logic is: power on-reset-mute-send data completed-release mute.
3.) This is also included in my latest code, please see post #91.

4. I think the output pulse polarity problem can be determined according to the DA chip and DIR, because the PMD200 data sheet cannot understand the timing diagram (I spent a lot of time to verify its timing diagram), the most direct way is to try .
4.) Please would you be so kind and check for us with the logic analyzer...? I can't access my PMD200 as I am still on tour, but even at home I doubt I can probe the pins of the PMD in my Naim player, so it would be of great help to clarify the polarity of the word clock output as shown on the diagram in post #95.

5. If the DAC output by PMD200 is PCM1702/04, and their working status is 8X mode LRCK=352/384KHZ mode, then PMD200 will not allow the input signal to be greater than 44.1KHZ, 16bit. Remember. If you want to input a signal greater than 44.1KHZ to PMD200, then you must run PMD200 at a reduced speed, such as 2X mode.
5.) Yes, got it :cool:

6. I don’t understand what DITH does? I found time to do verification tests.
6.) There are several dither modes which define what kind of dither is added to the output signal. In short it's a kind of random digital noise added to the smallest bit.

7. Strict execution information: PMD200 xtal clock signal must be the highest priority, and it must be available before power-on reset. The main reason I use DIR9001 is that it has a low enough jitter, and more importantly, it does clock source switching.
7.) Are you using 2 oscillators for the sampling rates with the DIR9001?

8. I use a dedicated clock driver to drive the PMD200 output clock from CDCM7005, which can be isolated from the PMD to the clock circuit. Use ADI digital isolator to isolate the ground between DAC and PMD200.
8.) Cool!

9. It is recommended to use DIR9001 or AK4118. When the SPDIF signal is not ready, most DIR chips will output some abnormal signals. For example, LRCK and SCK will work at some unstable frequencies, which will cause great interference to PMD200 at this time, a common phenomenon There are PMD200 information loss, register write failure, etc. However, DIR9001/AK4118 has no output (IIS interface signal) before the SPDIF signal is ready, while MCLK has an output (derived from an external clock).
9.) What would be your recommendation for an USB input to the PMD200?

10. The length of the PMD200 slot (important) should have been working normally during the explosion version of JPK73. Why is the sound abnormal? It is because the parameter of this register is incorrect. It is abnormal because the data obtained by reverse decoding is 24bit input and 32bit output.
10.) I don't understand this: we use 24bit input but actually feed only 16bits to the PMD200? And we configure the output for 32bit and feed these 32 bits to the PMC1704 chips...? Is that correct or did you use different settings?

11. I saw the serial monitoring screen from the last version of the software. The input register has been sent continuously more than 10 times before it can be sent successfully. I still can’t explain why?
11.) I don't know why, but that's the way I recorded it from my Naim. Do you have the pullup resistors at the i2c pins and the pulldown resistor at the reset line? I can't see them on your schematics and photos! You can try to reduce the command send repeats as explained in post #91.
 
Last edited:
hi my friend
Thank you, I used the code you wrote today to listen to it for half a day...
1. I carefully analyzed the entire application process, and I think there is no need for MCU to develop sleep mode. Using tri-state logic devices between SPI interfaces can well handle the isolation problem between signals. Under the trade-off, I suggest to abandon the study of MCU sleep mode development and application.
2. The N/A new program has been included.
3. The new N/A program has been included.
4. My newly purchased logic analyzer is still in the shipping process, and I can verify it when it arrives.
5. N/A
6, Thank you for your answers. DITH mode Naim uses DITH2 mode. I spent a long time doing audition comparisons today. DITH7 will have better low-frequency elasticity and more transparency.
8. DIR9001 uses 2 oscillators. The principle is: 1# oscillator is used before the SPDIF signal recovers the clock, in order to provide PMD200 with an XTAL signal. The SPDIF signal normally locks the switching and is called the recovered clock oscillation signal. This is related to the use mode of DIR9001. Strictly speaking, I set the external oscillator only for the oscillator source, it does not participate in the audio signal work.

9,USB interface
9. The USB interface is very convenient. PC interference should be considered. More importantly, PMD200 supports up to 96K sampling, otherwise it will be overloaded, or the speed will have to be reduced. Therefore, the DSD format will not be supported. I have tested the maximum output of PMD200 at 768KHZ 8X. At this time, the SCK frequency seems to be as high as 22Mhz (memory ). The choice of such a high operating frequency DAC is a huge problem, and PCB wiring has also become difficult.
If judging from the perspective of sound quality, I personally do not recommend using the combination of USB and PMD200.
10,Yes, I read its chip manual, and there is no mention about the slot length that the exit must be equal to the entrance. It will not work if it is not configured properly. After getting the code you designed (the Madden version) and testing it, I found that it was already working at that time. It's just that my thinking is still limited to the manual. When I tried to modify the entrance and exit to be equal, it worked.So I made a big detour.
11,I did not set the pull-down resistor in the reset, I used the voltage monitoring chip ADM811.
 
Last edited:
The final version of the code is already very good in terms of functionality. No, it is perfect. I want to start learning arduino programming after finishing the PMD200 DAC design project. I can meet so many precious friends through this chip, I think my DIYAUDIO journey is very beautiful.
 
Last edited:
After several hours of comparison and audition, PMD200 is undoubtedly the most beautiful chip in the digital filter. As other friends said, it is delicate, it is exquisite, and it is transparent.

Cool!!! What do you think in comparison to this digital filter board? The forum thread about it is here.

I have been planning it for a long time.

Will you sell your PMD200 DAC?

I did not set the pull-down resistor in the reset
I think pullup resistors should be used on both of the I2C lines...

If judging from the perspective of sound quality, I personally do not recommend using the combination of USB and PMD200.
What do you recommend for my situation with the Naim? I want to convert it to a stand alone DAC with 16bit/44.1kHz to 24bit/192kHz. I can program the mcu to make the PMD compatible with various input sample rates, but the Naim only has one clock with 16.9344 MHz: can I use this clock for all input sampling rates? Do you recommend to add only an SPDIF input to the Naim and do all other stuff such as USB separately?
 
en,
1,KuSy Audio When I saw it (for the first time), the design was very advanced. I can't comment on it now because I haven't used it and don't know the internal calculations. Please be patient and wait for my research and report.
2,If you need PMD200, I can give it away for free. If it is a complete product, I might consider selling part. (Only charge the cost of parts)
3,Yes, I manually soldered two 4.7K pull-up resistors to 3.3V on the demo project board.
 
4,
Yes. 16.9344Mhz can be used as the clock source of PMD200, no problem, because 16.9344MHZ/44.1khz=384x, PMD200 supports 384x. If you really don't like this operating frequency, Niam's DSP (SAA7324) provides 11.2896MHZ clock.
If you want to be an independent DAC, I think PMD200 with R2R architecture PCM1704 is the perfect combination. After completing the first step, you can refer to the HADM circuit design of marantz cd7 to match PCM1704.
For PCM1704, it is not sensitive to clock quality, but has extremely high requirements for power quality. Therefore, I plan to use lithium batteries to power PCM1704 to solve the impact of power on it.
 
PCM1704 is already a perfect design demonstration of the R2R architecture. For filters, the sound direction of FIR and IIR is fundamentally different. Like the Japanese NPC series, most of them belong to FIR filters. Its sound is of a refreshing type, while IIR filters will sound mellow and flexible. I don’t know. What type of PMD200 is inside? When I carefully compare it with PMD100 , DF1704 and PMD200 ,it can determine full marks.

So I personally think that naim is enough to make a turntable. Add a SPDIF channel with good signal quality to complete.

If I am not mistaken, naim application SAA7324 belongs to NXP's CD10II architecture.
It is likely to inherit the genes of CDPRO2. It depends on which preamplifier circuit the laser head uses.TZA1022/TZA1024
 
Last edited:
Thanks for your answer!!! I saw the Classe CDP-10 uses SPI, so I attached an SPI version of the latest code.

I manually soldered two 4.7K pull-up resistors
Maybe better 10k or even 22k...?

PCM1704 is already a perfect design demonstration of the R2R architecture.
Just out of curiosity: what do you think of AD1862?

If you need PMD200, I can give it away for free.
I would be very happy to receive one or two :cool:
 

Attachments

  • SPI.zip
    1.9 KB · Views: 51
Last edited:
Hi my friend
I have modified the I2C pull-up resistor to 22K. As the current R2R camps, there is no doubt that ADI's AD1862 is also one of them. It is equivalent to PCM1702, 20bit...
--------------------------
Please send me your mailing address and contact information in private. It is the first time for me to use international express mail to send chips, (I don’t know whether customs clearance is required, etc.) so I need to go to EMS to inquire about international parcel rules.
thank you.
 
My goodness, 1pcs TFPQ100 package weight 30g package size 5cm*3cm*2cm. I consulted two international logistics companies for quotations as follows:
DHL:826.5 CNY;
FedEX: 1181.9 CNY;
Item declared value: 300.00 CNY
Ship from Chengdu, China to Vienna, Austria.

The cost is too high.!!!

Experienced friends, please tell me is there any economic plan?
 
Thank you, I just registered for China Post EMS Global Express. The estimated cost is about 730.3 CNY. One thing in common is that the price of express delivery of documents is very cheap, and the price of parcels will be very expensive. Even if they are equal in weight.
I tried to disguise the chip in the file and send it. The reply was: No. And it needs to report to the customs and submit the audit information.
 
Hi friends
I plan to use Leonardo's Mega32u4 to replace arduino UNO's Mega328p. I designed a blank 32U4 on the PCB, and then burned the bootloder of the Leonrado pro micro online. This eliminates the need to install the PRO MICRO kit PCB on the PCB.
What is your comment?