Showing posts with label DAC. Show all posts
Showing posts with label DAC. Show all posts

ESS DAC Code?

/******************* Code Customization Section *********************/
/* First: Choose the clock frequency you have and comment the other */

#define USE80MHZ  
//#define USE100MHZ

/* Second: Choose stereo or mono

   | CONFIGURATION       | #define DUALMONO | #define STEREO   |
   |---------------------|------------------|------------------|
   | Dual mono           | un-comment       | comment          |
   | Stereo              | comment          | un-comment       | 
   |---------------------|------------------|------------------|    */
   
#define STEREO
//#define DUALMONO

/* Third, optionally choose the number of inputs. 6 is the max without 
   modifying the code. You could lower the number of input choices
   here. for example if you only want to see 2 choices, modify the
   code like this: #define ICHO 2                                   */

#define ICHO 6

/* Fourth, optionally change the name of the inputs. Keep 6 characters
   Use blanks if necessary. If you use less number of inputs, only the
   top ones matter.
   */

char no0[] = "INPT-A";
char no1[] = "INPT-B";
char no2[] = "INPT-C";
char no3[] = "INPT-D";
char no4[] = "INPT-E";
char no5[] = "INPT-F";

/* These inputs choices can be virtual or real. In the ES9018 there
   were 8 data lines. One could simultanously connect one I2S/DSD input
   plus 3 additional SPDIF input (thus 4 physical inputs). 
   In the ES9018K2M there are two additional input lines for SPDIF so 
   one can potentially connect one I2S/DSD input plus 2 additional SPDIF
   inputs.In addition one could choose different parameters -such as the
   DPLL bandwidh or filter selection- 
                                                                    */
   
/* Fifth, adjust the interrupt routine to match your rotary encoder by
   adjusting the mode parameter in the following routine
   (search for it in the code):
   
   "attachInterrupt(0, rotEncoder, LOW);"
    
   The mode parameter defines when the interrupt should be triggered:
       LOW to trigger the interrupt whenever the pin is low,
       CHANGE to trigger the interrupt whenever the pin changes value
       RISING to trigger when the pin goes from low to high,
       FALLING for when the pin goes from high to low. 
   
   You can also read the following link:
   https://hifiduino.wordpress.com/2011/09/12/problems-with-rotary-encoders/
                                                                    */

/***************** End Code Customization Section *******************/



/******************* Code Customization Section *********************/

/* First: Choose the clock frequency you have and comment the other */

#define USE80MHZ  
//#define USE100MHZ

/* Second: Choose stereo or mono

   | CONFIGURATION       | #define DUALMONO | #define STEREO   |
   |---------------------|------------------|------------------|
   | Dual mono           | un-comment       | comment          |
   | Stereo              | comment          | un-comment       | 
   |---------------------|------------------|------------------|    */
   
#define STEREO
//#define DUALMONO

/* Third, optionally choose the number of inputs. 6 is the max without 
   modifying the code. You could lower the number of input choices
   here. for example if you only want to see 2 choices, modify the
   code like this: #define ICHO 2                                   */

#define ICHO 6

/* Fourth, optionally change the name of the inputs. Keep 6 characters
   Use blanks if necessary. If you use less number of inputs, only the
   top ones matter.
   */

char no0[] = "INPT-A";
char no1[] = "INPT-B";
char no2[] = "INPT-C";
char no3[] = "INPT-D";
char no4[] = "INPT-E";
char no5[] = "INPT-F";

/* These inputs choices can be virtual or real. In the ES9018 there
   were 8 data lines. One could simultanously connect one I2S/DSD input
   plus 3 additional SPDIF input (thus 4 physical inputs). 
   In the ES9018K2M there are two additional input lines for SPDIF so 
   one can potentially connect one I2S/DSD input plus 2 additional SPDIF
   inputs.In addition one could choose different parameters -such as the
   DPLL bandwidh or filter selection- 
                                                                    */
   
/* Fifth, adjust the interrupt routine to match your rotary encoder by
   adjusting the mode parameter in the following routine
   (search for it in the code):
   
   "attachInterrupt(0, rotEncoder, LOW);"
    
   The mode parameter defines when the interrupt should be triggered:
       LOW to trigger the interrupt whenever the pin is low,
       CHANGE to trigger the interrupt whenever the pin changes value
       RISING to trigger when the pin goes from low to high,
       FALLING for when the pin goes from high to low. 
   
   You can also read the following link:
   https://hifiduino.wordpress.com/2011/09/12/problems-with-rotary-encoders/
                                                                    */
 

/***************** End Code Customization Section *******************/ 

Isolator for Amanero USB I2S with reclock

 Isolator for Amanero USB I2S with reclock




It is recommended to use the board with USB modules  converted to "slave" mode  (receiving a clock signal from the DAC board). 

At the same time, the board allows the use of amanero in master mode, but for this you should use another isolator (for example, ADUM1400CRW), the relevance and expediency of using a reclock in this case is sharply reduced.

Printed circuit board

The device is made on a 42x78mm double-sided printed circuit board. Below is a 3D view of the PCB with components



Adapter circuit with reclock





D-triggers can be replaced with the new AUP series - 74AUP1G79. 

The "USB power option" part of the circuit is unsoldered only if you are going to use power from the USB port. When using this option from the amanero board, just like in the case of external power, remove the standard LDO for 3.3v and apply 5V power from the USB connector to the "USB + 5v" pin. 

The design has been tested over a year with various DACs and has shown good results. The most noticeable results when using reclock were obtained with TI - PCM179x chips. 

For chips from AKM, there is a very small gain in sound  at low sampling rates compared to a conventional adapter without reclocking.    

When using the 22.5792 / 24.576 MHz clock generators used in the Amanero, the maximum sampling rate when using the reclock is capped at 192 kHz. 

Unfortunately, this limitation does not allow us to recommend this board as the main option for the AH-D6x line. 




ESS Hump: Root Cause?

下面的方案僅僅針對SGD1LA-QXD1來自SONCOZDAC,其他的機型僅僅只有參考的意義。

 為了節約大家的時間,先說方法和結論:

調整ES9038Q2M DACIV轉換電路阻容配置以及LPF電路的阻容配置即可完全修復駝峰問題,屬於硬體修復方案!

To sum up, the "ESS Hump" of ES9038Q2M can be fixed by changing the setting of capacitors and resistors of LPF as well as I/V converter. The fixation is purely done by hardware adjustment. 

Discrete R2R+Sting MSB?

 http://audiophilediyer.com/diy-discrete-r2r-dac-part-1/

Controlling SPI DAC: A Journey started.

 

2020.10.4     Get this from Paul Frost, the designer of DAC11001.   Write him a mail. 


To be clear, this device was not designed for audio but rather very high-end test and medical applications. R-2R DACs in audio is a bit of a niche application. That being said, there are some companies and hobbyists that are using R-2R DACs still (Schiit's Yggdrasil, for example). Note that the first version released is the DAC11001A, the next version will achieve tighter INL and drift specifications. The sample-and-hold circuit improves the AC performance of the R-2R by making the glitch code-independent. This removes some of the nasty harmonics that you might see in a regular R-2R design. The I2S to SPI is a bit of a problem. Fortunately, the DAC11001A features a daisy-chain mode that looks somewhat similar to I2S. I was able to create the glue logic that converts 24-bit, right-justified I2S to SPI using only 2 flip-flops, a shift register, and 7 logic gates.

USB-I2S Solutions: Review and Research

1) DIYINHK XMOS 768kHz DXD DSD512 (DSD1024) 
https://www.diyinhk.com/shop/audio-kits/116-isolated...o-i2sdsd-pcb.html
2) Amanero CPLD/FPGA Combo384
3) DIYINHK XMOS 384kHz DXD DSD256 
https://www.diyinhk.com/shop/audio-kits/138-isolated..dsdspdif-pcb.html
4) WaveIO XMOS isolated
https: //luckit.biz/
5) MiniDSP USB Streamer
https://www.minidsp.com/products/usb-audio-interface/usbstreamer
6) JLsounds I2SoverUSB XMOS isolated  
http://jlsounds.com/i2soverusb.html
7) Russian Charleston V3 
http://forum.vegalab.ru /showthread.php?t=80671
https://www.danomsk.ru/shop/19-konstruktory-i-elektronnye-moduli/178189-usb-spdif-transport-charleston-do-32-bit-384-0-kgts-energyaudio/





E-mu 0404 1212m 1616m 1820m PCI 音效卡 Windows11 驅動程式安裝 2025

E-mu 0404 1212m 1616m 1820m 音訊卡 驅動相容性與安裝 E-mu 0404 1212m 1820m等是歷久彌新的老音效卡,這些是Windows 7 時代製造且相對較老舊的音效卡。當時,AKM旭化成和 Burr-Brown 等廠商的 AD 轉換器都在爭奪板...