AKM Verita 4490EQ DAC
(12/22/14- Updated with information from AKM support engineers -see register section)
It has been a long time semiconductor houses invested in a flagship product. Wolfson announced the WM8471 in 2007 and ESS announced the Sabre DAC in 2008. Recent investment has been concentrated in DACs for the broad consumer industry especially for the mobile segment. It is good to see a company still interested in investing resources for the “audiophile” segment.
AMK introduced the AK4490 this year and has recently made it available in production quantities. It differs upon the AK 4399 DAC in the following areas (yes, the spec for Dynamic Range is lower in the new chip):
Parameter | AK4490 |
AK4399 |
THD | -112 dB | -105 dB |
S/N (Mono) | 123 dB | 126 dB |
Max Sample Rate | 768KHz | 216 KHz |
Built-in Digital Filters | 5 | 2 |
Direct DSD (No conversion to PCM) | Yes | No |
AVDD Max operating voltage | 7.2V | 5.25V |
Here is an overlay of the FTT measurement between the AK4490 and AK4399 (graph slightly shifted to the right to show the comparison) from the evaluation board data sheets. As seen, the AK4490 has a slight edge over the AK4399:
Increasing S/N by 3 dB
In order to “recover” the lost S/N in the new device as compared with the old device, The AK4490 can be operated with an analog supply of up to 7.2V. At 7V we gain 3dB S/N resulting in 126 dB for mono operation and therefore meeting the best specification of the old A4399 part.
Even though this is not documented in the current version of the AK4490 data sheet, it is documented in the AK4495 data sheet:
Thus one of the “mods” that can be made in this DAC is to run the DAC at the higher-end of the analog voltage operating spectrum.
KEY FEATURES
Built-in Digital Filters
(images taken from Ayre’s paper [link]):
The built-in digital filters consist of 5 selectable filters. They include all the “popular” filters developed so far by different vendors plus one additional filter with undisclosed response (super slow roll-off). The filters are described as follows:
Linear phase Sharp Roll-off (AKM notation: “no delay”): this is the “standard” sharp roll-off filter found is all DACs. It is also known as the “brickwall” filter. It is said that pre-ringing sounds unnatural.
Linear phase Slow Roll-off (AKM notation: “no delay”): this is also a “standard” filter found in all DACs. As in the linear phase sharp roll-off filter, it also generates pre-ringing, but trading lower amounts of pre-ringing with letting more aliased image through (theoretically increasing harmonic distortion).
Minimum delay Sharp Roll-off (AKM notation: “short delay”): this is also called the “minimum phase” or “apodizing” filter that was the rage a few years back. Whereas in the past audio engineers have insisted in phase linearity (meaning all frequencies have equal phase or delay), More recent research have shown that a “minimum phase” filter sacrifices some of the phase linearity (adds some phase distortion) for better time response. This filter removes all the “unnatural” pre-ringing but “dumps” all that energy to post-ringing. Implementation of this filter is also found in the Wolfson WM8741/8742 DACs
Minimum delay Slow Roll-off (AKM notation: “short delay”): this is a “more modern” type of filter also found in the Wolfson WM8741/8742 DACs. In addition to eliminating pre-ringing, this filter also incorporates slow roll-off and this reduces post ringing as well.
The properties of this filter are similar to the “MP filter” found in Ayres latest CD player.
Super Slow Roll-off: this filter is the differentiating feature (in terms of built-in filters) that this DAC provides. The AKM literature says “super slow roll-off filter with emphasized characteristics” (which really means nothing). There is some information in the marketing page as shown below.
The marketing information says the following [link]
Native DSD Support
Supports 2.8MHz (64fs), 5.6MHz (126fs) and 11.2MHz (256fs) DSD
According to AKM, the volume control module and the delta-sigma modulator can be bypassed for DSD resulting in “direct” DSD rendering. The AK4490 contains an integrated low-pass filter specifically for DSD data. The ultimate specified performance for SACD (as described in the Scarlet Book) can be easily realized with a simple external analog filter.
Notice the bypass path for DSD Data. The DSD data is received by the DSD interface and sent directly to the “SCF” (Switched Capacitor Filter) block. DSD filter can be selected at 50KHz, 100KHz or 150KHz cut-off.
Other Comparative Features
Resolution32 bit32 bit32 bit24 bit24 bit
Parameter | AK4490EQ | ES9018 | ES9018K2M | WM8741 | PCM1794 |
DR (Mono) | 123 dB | 135 dB | 127 dB | 128 dB | 132 dB |
THD | -112 dB | -120 dB | -120 dB | -100 dB | -108 dB |
Max SR | 768KHz | 384KHz | 384KHz | 192KHz | 192KHz |
Output Mode | Voltage | V or I (best) | V or I (best) | Voltage | Current |
Resolution | 32 bit | 32 bit | 32 bit | 24 bit | 24 bit |
DSD Mode | DSD Direct and DSD to PCM | DSD to PCM | DSD to PCM | DSD Direct and DSD to PCM |
Just like the WM8741, the AK4490 supports “direct DSD” processing bypassing the volume control and delta-sigma modulator. And like the WM8741, there is no automatic switching between PCM and DSD.
I2S and DSD shared lines
In order to facilitate the playing of both PCM and DSD content, it is desirable to have the same lines transmit PCM and DSD data. We find that in the AK4490, the I2S and DSD signals are shared. Here is a post I write earlier concerning shared I2S/DSD signal lines: [link]
The table below shows compatible DACs (DACs that share that use the same lines for DSD and PCM) and interfaces showing how the DSD pins are mapped to the PCM/I2S pins:
I2S Pins |
ESS9018 [link] |
PCM1795 [link] |
AK4399 [link] |
Amanero [link] |
SDTrans [link] |
XMOS Ref [link] |
BCLK | DSD Clock | DSD Clock | DSD Clock | DSD Clock | DSD Clock | DSD Clock |
LRCLK | DATA Left | DATA Right | DATA Right | DATA Left | DATA Left | DATA Left |
DATA | DATA Right | Data Left | Data Left | Data Right | DATA Right | DATA Right |
The AK4490 DAC follows the mapping of the AK4399 which switches channels with the “conventional” channel mapping of USB interfaces. Likely it was the USB interface designers that took notice of the ESS9018 DAC and conformed the channel mapping to that chip.
Fortunately, there is channel remapping in at least the Amanero interface and there is channel remapping in the DAC itself as specified in the following table of the data sheet:
MONO=0, SELLR=1 says:
- Right channel input is mapped to Left channel output
- Left channel input is mapped to Right channel output
DIYINHK IMPLEMENTATION
I Just received diyinhk’s implementation of AKM’s new flagship DAC, the AKM AK4490EQ [link]. This is the first available diy board in the market (that I know of):
POWER SUPPLY LINES
The Diyinhk implementation follows (mostly) the AKM evaluation board and data sheet [link] but maximizes performance whenever possible (like in the selection of capacitor type and value). The board is powered by: 5V line, 3.3V line and +/- 12V line (for the output opamp).
The general layout of the power traces, decoupling capacitors and ground planes also follows the data sheet:
Grounding and Power Supply Decoupling:
To minimize coupling by digital noise, decoupling capacitors should be connected to AVDD and DVDD respectively. VREFHL/R and VDDL/R are supplied from analog supply in system, and AVDD and DVDD are supplied from digital supply in system. Power lines of VREFHL/R and VDDL/R should be distributed separately from the point with low impedance of regulator etc. AVSS, DVSS, VSSL and VSSR must be connected to the same analog ground plane. Decoupling capacitors for high frequency should be placed as near as possible to the supply pin.
Analog 5V supply lines (can operate up to 7.2V according to spec)
The 5V supply connects to VDD (5V Analog supply input) and Reference Voltage High (VREFH) -as recommended in the data sheet.
The differential voltage between VREFH-L/R and VREFL-L/R sets the analog output range. The VREFH-L/R pin is normally connected to VDD (analog 5V supply), and the VREFL-L/R pin is normally connected to VSS1/2/3 (analog ground). VREFH-L/R and VREFL-L/R should be connected with a 0.1µF ceramic capacitor as near as possible to the pin to eliminate the effects of high frequency noise…All signals, especially clocks, should be kept away from the VREFH-L/R and VREFL-L/R pins in order to avoid unwanted noise coupling into the AK4490.
In addition, according to the eval board manual, a large value capacitor between VREFH-L/R (Analog 5v) and VREFL-L/R (GND) improves the THD performance in accordance to the following graph:
The Diyinhk board is implemented with 2200 uF capacitors, achieving the best THD numbers. (The larger capacitor holds the reverence voltage stable -perhaps an even larger capacitor would further improve the low frequency THD numbers).
There is an option to use separate supplies for right and left VREF and VDD. This also follows the scheme implemented in the official evaluation board where the left VREF is separately powered from the right VREF.
Further, the AKM literature states:
Special designs techniques for sound quality are applied to each blocks for achieving balanced, smooth and powerful signal flow. In addition to L/R perfectly symmetrical layout, more than 5x trace width is used for signal line compared existing products, supplying rich current to analog signal output blocks. To achieve low impedance, two analog power supply pins and two signal reference pins are assigned for each channel, allowing the system to utilize thick PCB trace pattern giving low impedance sources.
The board takes advantage of this feature to use thicker lines for VREF and VDD
All 0.1 uF decoupling ceramic capacitors are C0G
The official evaluation board has a provision to separate the VREF from the Analog 5V VDD which is not implemented in this board. However, it is easy to mod and use separate supplies for VREF and Analog 5V VDD.
The evaluation board implements VREF with the following circuit:
3.3 V Supply Line (Analog 3.3V and Digital 3.3V)
There is a 3.3V analog supply pin and a 3.3V digital supply pin in the chip. The default implementation of the diyinhk board uses the same supply line but filters them with a ferrite bead. By removing the ferrite bead, the user can use separate supplies for the analog and digital 3.3V.
In the evaluation board, AVDD and DVDD are powered by separate regulators:
GROUND PLANE
The ground planes follows the recommended separation between analog and digital sides (along pins 17-18 and 45-46)
SOFTWARE INTERFACE
The older device, the AK4399 supported a 3-wire serial interface. This seemed a not too widely supported protocol (it was not SPI and could not find a similar protocol in Arduino libraries , but one could code the protocol “by hand” as it was just a serial protocol -never tried it though)
Fortunately the new DAC supports I2C protocol (and maintains support for the original 3-wire serial interface found in older DACs). This greatly facilitating the interface to a microcontroller such as Arduino because of their built-in support for more standard protocols such as I2C and SPI.
The advantage of using the S/W interface is that it supports features such as volume control and DSD which are not available through the H/W interface.
The following table summarizes these features that are available in H/W interface (parallel interface -by pulling hardware pins up or down) and S/W interface (serial interface -microcontroller control).
Not indicated in the table is the “super slow roll-off” filter which is enabled by a register setting in s/w mode.
REGISTER DEFINITION SUMMARY
(Updated with information from AKM support engineer)
Here I summarize the register settings and the different functions that can be programmed. I also attempt to do some “translating” of AKM’s vocabulary to more “traditional” vocabulary.
I was able to communicate with AKM to clarify the functionality of certain sections.
Register address: 00 (Control 1) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| Reset chip without initializing registers |_|_|_|_|x|x|x|_| Interface mode: 16bit, 24bit, 32bit, I2S, LJ... (1) |_|_|x|_|_|_|_|_| External digital filter clock: 768KHz/384KHz |_|x|_|_|_|_|_|_| Enable/disable external digital filter mode |x|_|_|_|_|_|_|_| Master Clock frequency Setting: auto/manual (2)(3) NOTES: (1)- The only requirement for bitclock is >= 2x bit depth. Bitclock could be 32fs, 48fs or 64fs. Not limited to always be 64fs as in ESS DACs (2)- Auto: detects master clock frequency and sampling frequency (44.1KHz, 96KHz, ...) automatically; sets oversampling rate (1x, 2x, 4x...) according to input MCKL (this is kind of obvious). Note: AKM calls sample rate "sampling speed" and assigns names to typical sample rates: 44-48KHz="normal", 88-96KHz="double", 175-192KHz="quad"... (3)- Manual: manually set the sampling rate (44.1KHz, 96KHz...) Use reg 01 and reg 05 for sampling rate setting. This means, in its simplest form, manually matching the sampling rate to the incoming data sample rate to use the highest oversampling rate allowed by the system and thus obtain best noise performance. This feature can also be used to select a different sampling rate (typically a lower oversampling rate); for example, if selecting "normal" for 44.1KHz allows 8x oversampling (512fs), selecting "double" results in 4x oversampling (256fs). This allows for experimentation with different oversampling rates and can be used to tailor the sound for those inclined to lower oversampling or even no oversampling. The use of lower oversampling results in higher noise for these kind of DACs. AKM indicates in the datasheet that using a lower oversampling rate (512fs to 256fs) results in a decrease of S/N of 3dB. Register address: 01 (Control 2) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| Mute/unmute |_|_|_|_|_|x|x|_| De-emphasis: Off, 32KHz, 44.1KHz, 48KHz |_|_|_|x|x|_|_|_| Manual setting of sampling speed: "normal", "double"... (1) |_|_|x|_|_|_|_|_| Short Delay/Traditional filter (Minimum/Linear phase) |_|x|_|_|_|_|_|_| Zero data detect mode: Separate channels or ANDed channels |x|_|_|_|_|_|_|_| Zero data detect ON/OFF NOTES: (1)- Manual sampling speed setting uses 3 bits. The third bit is in reg 05. See notes on register 00 for additional info on manual settings Register address: 02 (Control 3) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| Filter cutoff slope: fast/slow |_|_|_|_|_|_|x|_| MONO mode: left/right |_|_|_|_|_|x|_|_| Invert output pin level on zero detect |_|_|_|_|x|_|_|_| MONO/STEREO mode |_|_|_|x|_|_|_|_| DSD Data on clock falling/rising edge |_|x|_|_|_|_|_|_| DSD master clock frequency:512KHz/768KHz |x|_|_|_|_|_|_|_| PCM/DSD mode Register address: 03 (Left Channel Attenuation) 7 6 5 4 3 2 1 0 |x|x|x|x|x|x|x|x| Attenuation (1) NOTES: (1)- 256 levels, 0.5 dB each. 00=mute; ff=max volume Register address: 04 (Right Channel Attenuation) 7 6 5 4 3 2 1 0 |x|x|x|x|x|x|x|x| Attenuation (1) NOTES: (1)- 256 levels, 0.5 dB each. 00= mute; ff= max volume Register address: 05 (Control 4) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| Super Slow filter on/off |_|_|_|_|_|_|x|_| Bit 3 of the manual sampling speed setting (see reg 01) |_|x|_|_|_|_|_|_| Left channel phase invert ON/OFF |x|_|_|_|_|_|_|_| Right channel phase invert ON/OFF Register address: 06 (control 5) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| DSD bit 0 of sampling speed selection (bit 1 is in reg 9)(1) |_|_|_|_|_|_|x|_| DSD Mode: Direct/Convert to PCM (2) |_|_|_|_|x|_|_|_| DSD Automute release when Automute release is in "hold" |_|_|_|x|_|_|_|_| Automute release: Auto/hold (3) |_|_|x|_|_|_|_|_| Right Channel DSD flag when detecting full scale signal |_|x|_|_|_|_|_|_| Left Channel DSD flag when detecting full scale signal |x|_|_|_|_|_|_|_| DSD AutoMute: ON/OFF (4) NOTES: (1)- There is no facility for setting auto sample rate detection for DSD. The use must detect the incoming DSD sample speed and match the sampling speed. Will have to experiment to see what is the effect of sample speed mismatch. (2)- In DSD direct mode, the volume control and delta-sigma modulator are bypassed. In PCM mode, it converts to PCM and uses volume control block and delta-sigma modulator. DSD direct with a combination of the internal filter and simple output filter meets the filter specification of the SACD Scarlet Book. (3)- Automute condition disappears when data becomes under full scale (4)- Automute condition is when data is full scale Register address: 07 (Control 6) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| Synchronize ON/OFF (1) NOTES: (1) Synchronizes multiple DACs when used together in the same system. Read data sheet for more information. Register address: 08 (Control 7) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|x|x| Sound Quality Control Setting (1) NOTES: (1): Sound Control has 3 settings: "1", "2", "3". The AK4495 data sheet shows additional settings "4" and "5". These setting refer to the 5 different filters that are available in the DAC. They serve the same function as the filter selection bits specified in the other registers. What is unclear is which register takes precedence. Register address: 09 (Control 8) 7 6 5 4 3 2 1 0 |_|_|_|_|_|_|_|x| DSD bit 1 of sample speed selection (see also reg 5) |_|_|_|_|_|_|x|_| DSD filter selection when in DSD direct mode
R-2R DAC For The REST of US
A MOST INTERESTING DIY PROJECT IN A LONG TIME
A Discrete R-2R Sign Magnitude 24 bit 384 Khz DAC [link].
The DAC Module includes all local power supplies, a programmable low jitter clock, Micro-controller and balanced output buffer. It is implemented on a 4-layer PCB. The board size is 3.2″ x 5.8″ (81 x 147 mm).
As the industry migrated from R2R topologies to Sigma-Delta in their quest for higher bit-depth, higher performance (and cost management), present implementations of R2R DACs are pretty much hand-crafted commanding a high premium.
As the author states:
“I believe that the sound quality will be the absolute best, better than any Delta Sigma DAC, in class with discrete DAC’s from totaldac and msb technology. And for way way less cost :-)”
For the rest of us with limited resources wanting to experience a ladder DAC, this is the DAC to have.
An excerpt from the PCM1704 [link] datasheet expunds the good points of a ladder DAC:
Digital audio systems have traditionally used laser-trimmed, current-source DACs in order to achieve sufficient accuracy.
However, even the best of these suffer from potential low-level non-linearity due to errors in the major carry bipolar zero transition. Current systems have turned to oversampling data converters, such as the popular delta-sigma architectures, to correct the linearity problems. This is done, however, at the expense of signal-to-noise performance, and the noise shaping techniques utilized by these converters creates a considerable amount of out-of-band noise. If the outputs are not properly filtered, dynamic performance of the overall system will be adversely effected.
The PCM1704 employs an innovative architecture which combines the advantages of traditional DACs (e.g., excellent full-scale performance, high signal-to-noise ratio, and ease of use) with superior low-level performance.
Granted, that was circa 1999. Since then the Sigma-Delta camp has made great strides. Even so, R2R DACs have not lost their appeal as witnessed by the interest in this project and the current commercial offerings.
TARGET PRICE
The DAC module is not yet available for sale. The target price is US$240 with 0.02% resistors. This is a steal considering how much other R2R implementations cost.
ADVANCING THE STATE OF THE ART
The last commercially available R2R DAC chips were the PCM1704 [link] and the AD1865 [link]. They have been out of production for a long time but still available for purchase for example here [link] and here [link].
Here is a table comparing selected performance numbers and features as described in the data sheets and by the author in the diyaudio discussion thread.
- The PCM1704 is typically used withe a companion chip, the DF1704 [link].
- The AD1865 is also used with a companion filter chip such as the Sony CXD1244S [cxd1244s]
Parameter | Seokris R2R |
PCM1704+DF1704 | AD1865+Digital Filter |
Max Input Sample Size | 24bit | 24bit | 18bit |
Max Input Sample Rate | 382KHz | 96KHz | 44KHz |
Max Resolution | 28bit (1) | 24bit | 18bit |
Inputs (2) | 1x Isolated I2S, 3x SPDIF/TOSLINK/AES/EBU [link]; future DSD upgrade | Serial only (DF1704: LJ, I2S) | Serial only through the digital filter chip |
S/W Interface | Serial (Not I2C) | Serial (Not I2C) | Depends on filter chip |
Oversampling Filter | On-board built-in and user defined (3) | Sharp, Slow roll-off (DF1704) | Needs External Filter |
Channels | 2 – Stereo | PCM1704 is single channel, so DF1704+2XPCM1704 | 2 – Stereo |
Jitter Reduction | Re-clocking input data through a FIFO Buffer (similar in design to Ian’s FIFO [link]). Uses a low jitter (0.8 psec RMS) Si514 programmable clock [link] which drives the LVC595 shift registers after clock division in the FPGA (Si514 -> FPGA divider -> LVC595) | None | None |
Output | “Raw” single-ended voltage output (1.4V RMS, 1.25 Kohm) or buffered balanced voltage output using TI LME49710 + LME49724 [link] | Single-ended current output | Single-ended current output or buffered single-ended voltage output |
Jitter Reduction | FIFO Buffer and reclock with low jitter clock | None | None |
THD+N (0db) | 0.0063% .05% resistors (Module measurement) | 0.0008% K-Grade (PCM1704 spec) | 0.003% J/K Grade (AD1865 spec) |
THD+N (-20db) | – | 0.006% K-Grade (PCM1704 spec) | 0.01% J/K Grade (AD1865 spec) |
THD+N (-60db) | 0.37% .05% resistors (Module measurement) | – | 1% J/K Grade (AD1865 spec) |
SNR | 126 dB (Link) | 120 dB | 110 dB |
Notes
(1) The Soekris R2R implements 28 bits of internal resolution in order to provide sufficient headroom to allow for a “perfect digital volume control. At -72 db volume you still have 16 bit resolution with perfect linearity” [link].
(2) The PCM1704 and AD1865 are NOS ladder DACs expecting an input stream from an external filter device such as the DF1704 [link]. Therefore they typically cannot accept and I2S input format. The input format for those chips consists of a clock signal, data signal and data latch signal. More information can be found in Ian’s “I2S to PCM” board project [link].
(3) The oversampling filter is implemented in the on-board Spartan-6 LX16 FPGA. It has 15K logic cells and can be configured as having 8 full high resolution MAC’s by using its 32 DSP48A1 MAC blocks in groups of 4 allowing them to do 35 x 35 bit multiplications plus 70 bit summers. Two of these hig-res MACs can be used for the first 2 most critical oversampling FIR filters; running them at just 49.152 Mhz makes space for 1024 coefficients if needed, then 2 more for the rest of the FIR filters. The rest for other functions, like de-emphasis, volume control and digital crossover filters… [link]. The user can use generate the filter coefficients and upload them to the FPGA [link]
Filter tools:
Here is a photo showing some of the details disclosed in the diyaudio thread. The LVC595A [link] are 8-bit shift registers: 7 bits on one side of the chip and the 8th bit on the other side of the chip. In this implementation the 8th bit is not used in order to optimize the layout (only using the outputs on one side of the chip) as can be seen in the photo.
The capacitor in the low pass filter (C142 in the photo) is the only capacitor in the signal path. It is a high quality C0G/NP0 ceramic. Those wishing for “higher quality” can replace/bypass with a film capacitor.
ISOLATED I2S and SPDIF INPUTS
The input is isolated with (what appears to be) TI ISO7420FE digital galvanic isolators [link]. There are 3 identical isolators resulting in 6 input lines. I think these support one I2S input and 3x SPDIF/TOSLINK/AES/EBU (I don’t know if the SPDIF lines are isolated, but there is no need for 6 isolated inputs if only the I2S is isolated). More info on isolators here [link]. Seems everyone has their favorite isolation device. Of the 4 different vendors I have surveyed, they have all been used by different audio diy implementers.
The TI ISO7420x and ISO7421x provide galvanic isolation up to 2500 V RMS for 1 minute per UL and 4242 V PK per VDE. These devices have two isolated channels. Each channel has a logic input and output buffer separated by a silicon dioxide (SiO 2 ) insulation barrier.
Built-in galvanic isolation at the input is a great idea. This gives the capability to completely isolate noise disturbance is coming from the source, including isolating ground, and since here is a FIFO reclocking stage afterwards, there is no need to worry about the small added jitter (100-200 psec RMS) that these devices would add to the data.
(update [link]) There will be two AES/Spdif inputs:
- Balanced into LVDS Receiver, can be connected directly to transformer and can be run single ended for SPDIF Coax, just a capacitor and two resistors needed when single ended 75R. To keep it isolated I recommend to always use a transformer for AES Balanced and SPDIF Single Ended inputs.
- 3.3V CMOS level input, can be connected directly to SPDIF Optical Toslink receiver.
Selection between I2S and AES/SPDIF sources can be automatic or manual with two pins that can be connected directly to a control switch. For more sources you can also just switch the inputs.
JITTER REDUCTION
A notable feature of this DAC module is the reclocking of the incoming. The design is similar in principle to Ian’s FIFO reclocker, The data is received into a configurable FIFO and then it is reclocked with a lower jitter clock.
However, Ian’s reclocker is designed for ultimate performance, whereas this reclocker is designed specifically for the DAC module and therefore matched to the requirements of the entire system (meaning, I think, the best consideration for jitter performance, cost and part count).
Here are the main differences between the two:
Ian’s FIFO reclocker
- Clock is Si570 which is the best programmable clock from Silicon Labs (.3 psec RMS jitter) [link]
- Clock drives the low jitter shift registers through a clock-fanout [link]. The jitter in the fan-out device is in the fsec range
Here is the clock board in Ian’s reclocker: the Si570 is used to clock the shift registers directly. The clock connects to a fan-out device (the chip next to the clock) and separate clock lines drive the 3 shift registers in the middle of the board.
R2R Module reclocker
- Clock is Si514 is the lower grade of programmable clocks from Silicon Labs (.8 psec RMS jitter) [link]. This is used instead of the Si570 because of power consumption (lower consumption for the Si514)
- Clock signal is transmitted through the FPGA for clock division and then to the shift registers. The added jitter in the FPGA is in the psec range. More details on the jitter through the FPGA here [link]
Here is the Si514 feeding its clock to the FPGA. The FPGA supplies the clock to the shift registers.
However, the reclocked signal in the R2R module feeds straight through the resistor ladder avoiding “several layers” of electronics as compared to a conventional implementation where the reclocked signal feeds the I2S receiver, the internal filters and other electronics of DAC chip. Internally, these “several layers” of electronics add jitter to the signal before arriving to the D/A conversion stage.
In the end, the actual jitter as seen by the resistor ladder is the cumulative jitter consisting of following components
- Clock intrinsic jitter (0.8 psec RMS)
- Jitter added by the FPGA (I think in the order of 10s psec RMS based on datasheet numbers)
- Jitter added by the shift registers in the psec order based on general data on shift registers
10s of psec RMS jitter at the resistor ladder is pretty darn good in my opinion.
Further details [link]
The details of my clocking/FIFO:
Ian’s FIFO use a fixed clock, and therefore use a large buffer to take up the difference between incoming and outgoing clock. That add a large delay, which doesn’t matter for simple audio applications but are undesirable in a number of applications, like home theater or live music.
I use a much shorter FIFO, selectable down to 1 mS, and instead adjust the outgoing clock to match the incoming clock frequency as needed, being I2S or SPDIF. The Si514 oscillator used is very low jitter and digitally programmable with a resolution of 0.026 ppb (parts per billion, not million…). It also have the feature that reprogramming inside +-1000 ppm is glitchless, ie the clock adjust very nicely to small changes.
ON-BOARD MICROPROCESSOR
The onboard microprocessor is the STM32F030 uC [link]. It is responsible for:
- Measure input clock and program the Si514 programmable clock as needed
- Initially, volume control by using a potentiometer
- More features later since this is a general purpose uC
The specific device is the 32 pin device of the family with 16 general I/O pins. I believe some of the I/O pins are available through J1
POWER SECTION
The following details have been shared about the power section of the DAC ([link], [link], [link])
- Designed to be powered by a single dual 7-8V, 5W transformer. Can also take an external +/- 7-15V DC supply. Filter capacitors are Nichicon 820uF 16V CL series
- “The LME output buffers are powered via an additional large RC filter after the main capacitors, no active regulators. With a typical PSRR of 125 db I didn’t worry much about 100/120 hz ripple, only worried about higher frequency noise on the power rails….”
- A DC-DC converter (switch mode) provides the 1.2V for the FPGA core. Every other supply is low noise linear [link]
- The most critical supply is the +/- 4V reference for the resistor ladder. This is generated by a “two step, first to +- 5V, then to +-4V by precision low noise medium current opamps”; “-4V reference is sent though an inverter with 0.01% resistors generating the +4 reference”. The references are further “filtered and buffered for each rail and channel”.
- Negative voltage is required for the output opamps and other parts of the circuit [link]
Here is a picture of the main supply section. The description is my best guess based on the information provided. I believe the digital section is powered by a DC-DC converter-regulator, except for the clock which has its own regulator.
CUSTOM FILTERS AND DIGITAL CROSSOVER
I think the ability for user-defined custom digital filters is a BIG feature for this DAC. In addition to the traditional DAC filters, one can load filters that implement crossover functions.
One of my frustrations with the ESS DAC is that I have not been able to take advantage of the custom filter facility. I am able to program everything else, except for the custom filters. Even though some claim that this feature works fine, I have not encountered any diy implementation and only one or two commercial implementations. Whether due to my own ignorance or to other factors (such as lacking documentation), fact is that there are no publicly disclosed diy successes of having implemented custom filters in the ESS DACs.
With crossover filters, there is finally a BIT PERFECT high quality DAC + digital crossover solution. More specifically, current digital crossovers if used with an external DAC of choice would add additional A/D or D/A conversions plus asynchronous sample rate conversion. Imagine a more “straight wire” implementation.
(Update [link]):
First firmware release will NOT support digital crossovers, although there will be 14 available biquads, already tested in order to support de-emphasis on SPDIF inputs. As somebody already noted, there is issue of syncronization…. I have a couple of ideas how to connect multiple boards together, but I don’t have time to implement and test before shipping the first batch. But as I already said, all firmware on the board is upgradable though a std PC serial port, I will implement it soon as my big speakers are already designed for electronic crossover use….
ES9018K2M Code Fully Tested
A new version of the code has been posted in the CODE tab [link].
This version has been fully tested with an Amanero USB interface [link] connected to the DIYINHK DAC board with an 80 MHz clock. Both PCM and DSD files of various sample rates were used together with foobar [link]
FEATURES
READ THE CODE CUSTOMIZATION SECTION
Make the proper adjustment for your specific implementation in the 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 *******************/
This code should also work with syllable’s DIY DAC [link] which is also described in this builders thread [link]
iBOX
Got an engineering sample of this new embedded board solution from iTead Studio. It is based on the Allwinner Technology A20 Dual Core SoC (The same processor as the Cubietruck board). iBox is being crowd-funded at indiegogo [link]. At $70 including power supply and case is an incredible deal.
The iBox is an example implementation of the modular approach that iTead is developing. A “system” can be configured with a “core board” and a “baseboard”. Thus iBox is a core board plus a baseboard and plus a case.
The case is made of gray-anodized aluminum with a plastic top and a steel bottom. (I added some rubber feet)
Here is compared to the size of a uSD card
Front side: uSD card reader, status LED and IR receiver
Side: Multi-function expansion connector
Back side: Peripheral connectors
The Core board
The A20 core board [link] is designed as a “computer on a module” and consists of
The core board is designed as a bare minimum computing module that breaks out most of the I/O pins and buses through two rows of pin headers. The approach also is to “standardize” the pin-header form-factor to allow mixing and matching with baseboards in order to suit different requirements. In addition, this approach provides an upgrade path to newer or different processors.
A20 SoC and DDR3 RAM (The GT chips, each 512MB). The 4 GB Flash should be in the back side of the board.
The Power Management Unit, AXP209
24MHz oscillator
Detail Connection to baseboard
iBox Baseboard
The baseboard in iBox is designed to provide peripheral interfaces and connect to a core board. The iBox baseboard is one of different baseboards that iTead is developing and as one of the first implementations, it aims at wide appeal by providing the most common I/O interfaces.
USB Hub: GL850G Hub
Ethernet Interface: Realtek RTL8201CP
The board has a 3 Amp switching regulator, the MP2307 set at 5V. The input range of the regulators is 4.75V to 23V.
uSD Card reader, IR receiver and LED indicator
Multi function expansion connector
USB and HDMI connectors
SPDIF Toslink optical connector, Ethernet and power connector. The bundle supply is rated a 9V, 2 Amp
Summary of iBox baseboard interfaces and connectors:
- Power connector
- 5V regulator (MP2307)
- Four 2.0 USB ports (Integrated GL850G Hub)
- HDMI port,
- Ethernet interface (Integrated Realtek RTL8201CP 100M transceiver)
- SPDIF optical (Digital Audio Output)
- U-boot button (Universal Bootloader. U-boot to embedded boards is like BIOS to PC motherboards)
- uSD care reader
- IR receiver (for remote control)
- Status LED indicators
- 32-pin multi-function expansion interface providing the most common interfaces
- Video output
- Serial Interface
- Debug interface
- I2C
- SPI
- SATA Interface
- Analog audio In
- Headphone Out
In fact there will be an expansion board [link] available with SATA connectors plus other connectors
AUDIO
Since this site is dedicated to audio, we will focus a bit on the audio capabilities of iBox
ANALOG AUDIO
According to the datasheet, The A20 has the following built-in audio features:
Analog Output
- DAC
- 16bit, 24-bit data
- 44.1KHz, 48KHz, 96KHz and 192KHz sample rate
- 100 db SNR
- Analog/Digital volume control (62 steps)
- Stereo headphone amplifier (capless). dedicated headphone output
Analog Input
- ADC: 24-bit, 8KHz to 48KHz, 96 db SNR
- Line-in Stereo or one differential
- Two Microphone input
- Stereo FM input
Here is the analog/headphone output diagram:
DIGITAL AUDIO
Spdif
The iBox has a built-in SPDIF/Toslink connector. According to these discussions [link], the SPDIF output supports:
- 16bit data
- Up to 192KHz sample rate
I2S
- Resolution: 16bit, 20bit and 24bit
- Sample rates: 8KHz to 192 KHz
- Format: I2S, Left Justified, Right Justified
- Frame (BLCK): 16bit, 20bit, 24bit and 32bit
I’ve previously described the I2S capabilities of the A20 processor here [link]. The A20 datasheet (p.20) [link] specifies that the chip supports up to 8 channels of I2S output (DO0 to DO3 represent the 4 stereo channels of I2S data).
I2S support in the core board
In the Itead A20 core board pin schematic [link] we can see that the I2S pins are available and connected to the pin headers (PB5 to PB11):
I2S support in the baseboard
Looking at the schematic of the iBox base board, pins PB5-PB11 are not connected to the expansion header. However, PB5-PB11 pins are available on the underside of the base board (they are just soldered without connecting to anything) and can be easily tapped.
SOFTWARE
I shall get familiar with the software environment and report shortly in the next post…
ALLWINNER TECHNOLOGY, THE COMPANY
The A20 SoC was announced about a year ago. I have to admit, I had never heard of this company. A bit of digging uncovered that this company is fast becoming a dominant player in the SoC market:
You may never have heard of Allwinner but they are huge and as of CES now have an 8-core tablet part on the market. With the release of the A80 SoC and the OptimusBoard that SemiAccurate used, the company is well positioned for the mainstream tablet market in 2014.
Allwinner rarely makes the headlines because they don’t make bleeding edge products that go in to high-end phones and tablets, instead they make mainstream SoCs that go in to high volume tablets. This mid-range market has decent margins, huge volumes, and since they don’t target phones directly there are no radio hassles and regulation to deal with. How big is Allwinner? Huge. Continue reading: [link]
The most interesting part of this company is their announcement to join Linaro’s newly formed Digital Home market segment group as a founding member together with media behemoth Comcast (and others). This means that there will be more video and audio applications coming our way.
Linaro Ltd, the not-for-profit engineering organization developing open source software for the ARM® architecture, today at Linaro Connect Asia 2014 (LCA14) in Macau announced* that …
Allwinner Technology is a founding member of a new market segment group being formed in Linaro to focus on the Digital Home market. This group will be the third Linaro segment group, following the formation of the Linaro Enterprise Group (LEG), focused on ARM servers, and the Linaro Networking Group (LNG) focused on the networking equipment market space.
OS SUPPORT
The list from iTead should work as is. Others are compatible with the A20 SoC, but may require additional work to support the peripheral components.
REFERENCE
- iTead Documentation and Download Repository [link]
- Audiophile bit-perfect with the A10 [link]
- CNX Software Blog. Developments on embedded computing, including news on Linaro [link]
- Review of A20 built-in DAC and headphone output [link]
CUBIEBOARD FOR AUDIO?
We’ll explore bit-perfect I2S output in the Cubieboards…
There are two current versions of the boards: Cubieboard2 ($65) and Cubietruck ($95) [link]. Both boards are based on the Allwinner A20 dual core processor.
A20 I2S SUPPORT
According to the A20 datasheet (p.20) [link] the chip supports up to 8 channels of I2S output: DO0 to DO3 represent the 4 stereo channels of I2S data.
The A20 User Manual describes the block diagram for I2S: The clocks for I2S are all based on “Audio_PLL” Master Clock.
Audio_PLL is the audio frequency clock derived from the 24MHz system clock. The PLL generates the 24.576 MHz and the 22.5792 MHz clocks. This means that the A20 is capable of bit-perfect playback for both the 44.1KHz and 48KHz family of sample rates.
The specification also lists the supported sample rates (44.1KHz to 192KHz) and the supported Fs
In Summary, the A20 processor has excellent support for I2S. All sample rates from 44.1Khz to 192Khz are supported. The processor generates the required Master Clock frequencies of 24.576 MHz and 22.5792 MHz through standard PLL processing.
CUBIEBOARD2 I2S PINS
According to the schematics [link] we find that the I2S pins are not connected to the expansion headers. PB5, PB6 and PB7 which are the Master Clock, Bit Clock and LR Clock are not connected.
Therefore, there is no support for I2S in the Cubieboard2
CUBIETRUCK I2S PINS
According to the schematics [link] we find that the I2S pins ARE connected to the expansion header C9. Notice that some jumper/resistors may need to be installed/removed.
In the lower part of the diagram (left side) shows the I2S signals corresponding to PB5-PB8 above. Shown also are the resistors/jumpers that are to be installed or removed in order to connect to the right side. Those connections corresponds to the CN9 header pins 18, 20, 22 and 24.
Notice that the default connection to pin 18, 20, 22 and 24 of header CN9 is to the TVIN signals (TVIN0 to TVIN3). In order to use the I2S signals, the jumpers need to be removed from the TVIN signals and installed in the I2S signals (I2S-MCLK, BT-PCM-CLK, BT-PCM-SYNC and BT-PCM-OUT)
Thus the I2S signals can be made available as follows:
- Pin 18 of CN9: Master Clock
- Pin 20 of CN9: Bit Clock
- Pin 22 of CN9: LRCK
- Pin 24 of CN9: Data Out
According to this post [link]. The modification to the resistors/jumpers are as follows:
remove R175 and set R174
remove R177 and set R176
remove R178 and set R179
remove R180 and set R181(Only need to modify these for stereo I2S)
remove R183 and set R182
remove R185 and set R184
remove R187 and set R186
remove R189 and set R188
R175 to R181 are for the left side of CN9. Those connectors are for multichannel I2S. So for Stereo I2S only modding R182 to R189 are required.
You can see the surface mount resistors that need to be modified in the following photo and diagram. Seem pretty easy to mod.
Another option is just to connect a wire to the appropriated resistor pad and leave the resistors in their original position.
One more observation: Cubieboards are developed by a team of young engineers…
SUMMARY
The A20 processor has excellent support for bit-perfect I2S digital audio. However, only the CubieTruck board allows access to the I2S pins.
REFERENCE
Audio discussion on Cubie Forum: [link]
Low Cost Audiophile Music Servers
DIY Audio is getting a huge boost from two recent developments in the form of RuneAudio and Volumio which run on low cost hardware such as the Rasberry Pi and the BeagleBone Black. This new breed of music “appliances” constitute a step forward for music reproduction because they operate on simpler single-board computers where the OS can be highly optimized for (only) music reproduction and stripped of all other unnecessary tasks.
Note: there are earlier implementation of multimedia software on these platforms -such as XBMC on Rasberry Pi-, but here we have audio-only implementations.
Both teams were working together and created the custom user interface, but due to some “chemistry mismatch” they split a while back. It is good to see however, that there is mutual respect and healthy competition between the teams resulting in better products ultimately benefiting the end user. You can read more here [link] and here [link].
As of this writing, the two projects share a common user interface (soon to diverge into their own versions), but use different UNIX flavor in their OS internals. Both use MPD [link] as the music server application. Currently, Volumio supports I2S output, whereas RuneAudio will have I2S output in the upcoming 0.3 release.
USB INTERFACE TO THE DAC
The more “mature” way to interface the music server to a DAC is through its USB interface. I say “mature” because these interfaces have been available for a while and there are many solutions where in order to support bit-perfect playback, the audio clocks (the 44.1KHz and family; the 48KHz and family of frequencies) are generated by dedicated on-board oscillators.
However, there is still the driver consideration. Theoretically these interfaces should be supported by the OS (which are all Linux derivatives) without installing device specific drivers; but in practice this may not be the case. Here are potential interfaces: [link]
I2S INTERFACE TO THE DAC
The second way to interfacing to the DAC is through I2S which is a very appealing option because it “does away with another component” resulting in an even simpler solution: just the single board computer and the DAC. There is no need to transfer the audio data through the USB interface. The main concern here is whether or not the platform is capable of bit-perfect playback. Lets explore these in more detail.
BeagleBone Black (BBB) I2S output
BBB audio is generated by the main processor, the AM335x 1GHz ARM® Cortex-A8. The Multichannel Audio Serial Port (McASP) subsystem is responsible for generating the audio using and external audio frequency oscillator. In this case it is a 24.576 MHz oscillator connected to the clock input pin of the processor’s audio subsystem (See page 75 of the BBB System Reference Manual [link])
6.10.6 Audio Interface
There is an I2S audio interface between the processor and the TDA19988. Stereo audio can be transported over the HDMI interface to an audio equipped display. In order to create the required clock frequencies, and external 24.576MHz oscillator is used.
…
In order to create the correct clock frequencies, we had to add an external 24.576MHZ oscillator. Unfortunately this had to be input into the processor using the pin previously used for GPIO3_21. In order to keep GPIO3_21 functionality, we provided a way to disable the oscillator if the need was there to use the pin on the expansion header.
Because there is only a 24.576MHz clock, only the 48KHz family of sample frequencies can be supported. Seems audio (or bit-perfect audio – or perhaps “legacy 44.1K audio”) was not a big concern for the designers of the BBB. HDMI, which defaults to 48KHz audio was the primary concern.
Notice that If playing high res music, it can support 96K, 192K and also 384K (24576000/64=384000Hz)
Fortunately, GPIO3_21 is an expansion pin accessible from the outside and the on-board oscillator can be disabled by s/w.
The solution for bit-perfect audio is to provide the clocks externally through an expansion “cape”, using one or two other I/O pins to select the appropriate clock frequency (and the s/w driver that would enable the use of the external clocks) More discussion here: [link].
Rasberry Pi I2S output
There are some hints that the RPi is capable of of 44.1K output in the I2S interface. I can’t find a definite reference of bit-perfect playback. If I had a RPi I would just hook it to one of my ESS DACs and observe the actual sample frequency. Several I2S DACs have already been developed that seamlessly plug into the RPi expansion headers [link].
But is the RP1 I2S bit perfect?
In the RPi, the audio is generated by the Broadcom BCM2835 [link] peripheral SoC chip. The audio frequencies are generated through an 0n-board 19.2 MHz oscillator. (Photo from here [link]).
If applying integer division to the clock, exactly 48KHz (and its family) can be supported. However, the highest sample rate that can be supported is
19200000/64=300KHz or effectively 192KHz.
According to the Datasheet, the Audio system is driven by a master clock “PCM_MCLK”. According to this thread [link], seems this master clock is generated internally by the clock generators. According to the Datasheet, the clock generators can use “fractional clock dividers”. The Datasheet indicates:
6.3 General Purpose GPIO Clocks
The General Purpose clocks can be output to GPIO pins. They run from the peripherals clock sources and use clock generators with noise-shaping MASH dividers. These allow the GPIO clocks to be used to drive audio devices.
The fractional divider operates by periodically dropping source clock pulses, therefore the output frequency will periodically switch between:
frequency source /DIVI & frequency source /DIVI+1
Jitter is therefore reduced by increasing the source clock frequency. In applications where jitter is a concern, the fastest available clock source should be used. The General Purpose clocks have MASH noise-shaping dividers which push this fractional divider jitter out of the audio band.
Thus, fractional dividers can be used to generate the 44.1K frequencies (or rather 44.1Kx64 for the bitclock) by using the above built-in method. Audiopurists would cringe at the “periodically dropping source clock pulses” part.
No master clock output in RPi
According to the Broadcom BCM2835 datasheet (pp. 119-120),
The PCM audio interface has 4 interface signals:
PCM_CLK – bit clock.
PCM_FS – frame sync signal.
PCM_DIN – serial data input.
PCM_DOUT – serial data output.…
In clock master mode (CLKM=0), the PCM_CLK is an output and is driven from the PCM_MCLK clock input.
In clock slave mode (CLKM=1), the PCM_CLK is an input, supplied by some external clock source.
This lack of master clock output can also be seen in the P5 header of the RP1 [link]:
And Also as indicated from the developers of RP1 DACs [link]
What about the SCLK (MCLK) signal on DAC chip?
The Raspberry Pi (RPi) does not provide such a signal, it outputs just the other I2S signals: LRCK, DATA and BCK, but not a system clock.
…
The PCM1794A works well if the SCLK (MCLK) signal is connected with the BCK signal which is done on the RPi-DAC board via a jumper (SCLK is BCK).
The PCM_MCLK is the master clock and it seems internally generated. There is no other reference to PCM_MCLK in the datasheet. The bit-clock (PCM_CLK) is the reference clock used for I2S.
RPi Jitter numbers?
According to this post [link], there is a single phase jitter data point of -54 dBc/Hz at 100 Hz (for a carrier frequency of 1.411 MHz, which is the sample rate for 44.1KHz/16bit). What does this mean?
Typically one would see phase jitter plots for clocks and typically at the source frequency (e.g. 24.576Mhz, etc). Here is a phase jitter value of the bit-clock. In the case of RPi, this clock is derived from the 19.2MHz and scaled by “fractional clock divider”
I was able to find a phase jitter plot from Audiophileo [link]. There the phase noise of the device is compared against the phase noise of the device with a “jitter simulator” turned on. The carrier frequency is 2.822 MHz, which is the frequency of 44.1KHz/32bit. This frequency corresponds to the bit-clock, so hopefully this is a fair comparison.
The plot below is the plot from Audiophile0 with the phase jitter value of -54 dBc/Hz at 100 Hz superimposed. I followed the same slope as the other curves and extrapolated to 1 Hz. Then I used a jitter calculator to find the RMS jitter [link]. The result is shown below. The jitter value for the RPi is the green dotted line. The pink line represents the added jitter to the Audiophileo native jitter which is shown in the blue line.
WHICH PLATFORM?
The two most popular (and lowest priced) boards are the Rasberry Pi (RPi) and the BeagleBone Black (BBB). Here is a nice comparison of the two boards [link].
Here is my comparison for audio (please comment if you see any inaccuracies).
Parameter | Rasberry Pi |
BeagleBone Black |
Comments |
Native support for 44.1K and family | Yes, through “fractional clock dividers” | No | It remains to be seen how much jitter is introduced by the “fractional clock division” of the RPi |
Native Support up to 384KHz | No. On-board clock is 19.2MHz | Yes. On-board clock is 25.576MHz | RPi can support up to 192K material |
Support for USB DAC | Yes (LAN9512 chip [link]) | Yes (Built-in in the main processor) | USB in the RPi goes through a buil-in HUB and it is shared with the LAN controller within the USB/LAN chip. USB in the BBB is natively supported by the main processor and LAN by a separate chip |
External Clock capability | ?; likely not | Yes | The master clock in BBB can be provided externally by disabling the on-board audio-freq clock. The Master clock in the RPi seems internally generated |
Built-in rechargeable battery operation | No | Yes [link] | Rechargeable Batt operation in BBB would disable the 5V supply to the USB. Thus for USB operation, where the USB adapter takes the power from USB, it must be powered with 5V DC |
SUMMARY
I’d say that the current best option for audio is through a USB-I2S device until the clock issues are better understood. The current best option for a computing board is the BBB primarily because it can support (or more likely to support) and external clock board. If you already have RPi/I2S-DAC and are happy with it, that’s what really matter…
Latest Comments