Arduino controlled dual mono AK4490 DAC - diyAudio
Go Back   Home > Forums > Source & Line > Digital Line Level
Home Forums Rules Articles diyAudio Store Gallery Wiki Blogs Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 5th June 2017, 01:56 PM   #1
Dimdim is offline Dimdim  Greece
diyAudio Member
 
Join Date: Sep 2008
Location: Athens
Default Arduino controlled dual mono AK4490 DAC

A few months back me and a couple of friends decided to try our luck at a dual mono AK4490 design.

We chose to go with the AK4490 instead of the AK4497 because the latter was relatively difficult to find and frankly too expensive for a "learning project" of a DAC.

It was decided that it would be a modular design, with the DAC board separate from the analog stage and the receiver.

Since I was to do most of the design work on the DAC board I decided to try a number of "innovations".

I decided to use a programmable clock for a MCLK, since I wanted to experiment with the audible effect that different MCLKs would have (or not have). This would allow me to use the best possible MCLK for each supported sample rate. I chose to go with the well known Si570 part.

I also decided to do reclocking on all of the I2S signals a few millimeters before the signals would enter the DAC chips. I chose the 74AUP1G79 d-type flip-flops, as parts that were well regarded.

So I ended up with this 4-layer design:

Click the image to open in full size.

I went with LT3042s as local regulators.

I would control it with an Arduino via I2C.

The boards were ordered and about a month later were delivered so I built a prototype:

Click the image to open in full size.

..and tested with an RPi as an I2S source:

Click the image to open in full size.

Everything seemed to be working fine.

Meanwhile, I had also designed an AK4118 based s/pdif receiver with an on-board AK4137 SRC and a second selectable I2S source input (Arduino controlled of course..) and that had come along quite nicely. One of my friends had designed a class-A discreet analog stage for which I had designed a PCB and that too was working fine.

Click the image to open in full size.

So we had come to the stage of the full system tests.

We then realized that there was a problem with the digital input of the DAC board. It seems that the signal "unlocks" every few seconds. This is not audible when playing music - that is why we hadn't noticed it until then. But when measuring by doing FFTs the noise floor would "jump up" every few seconds.

By doing several tests we concluded that our AK4490s don't like the reclocking of the I2S lines.

For the reclocking I have done this on my design:

Click the image to open in full size.

but we are also getting the same results when bypassing my "questionable flip-flop design" and using Acko's well known reclocker.

The effect is the same no matter what we use as I2S source. The frequency of the "unlocks" depends on the sample frequency of the signal. Higher SRs result in more frequent "clicks". These "unlocks" are audible in relatively high frequency test tones (like for example at 10KHz) as "clicks". They are not audible during listening.

My good friend and accomplice Manolis (lemon) will post more info later today.

Has anyone else noticed this on their AK4490/4495/4497 DACs?

Any ideas why it may be happening?

Btw, as soon as we figure out what is going on with this issue, we will open up the project to anyone interested in building it. It already sounds pretty excellent as-is.
Attached Images
File Type: png Dual-AK4490-v1.47-topo.png (112.7 KB, 397 views)
File Type: jpg Dual-AK4490-v1.46-build-2.jpg (278.4 KB, 394 views)
File Type: jpg Dual-AK4490-v1.46-build-3.jpg (255.8 KB, 396 views)
File Type: jpg Dual-AK4490-v1.46-build-4.jpg (266.1 KB, 394 views)
File Type: png Dual-AK4490-v1.47-sch_part..png (46.4 KB, 389 views)
__________________
http://www.dimdim.gr
  Reply With Quote
Old 5th June 2017, 04:09 PM   #2
lemon is offline lemon  Greece
diyAudio Member
 
Join Date: Apr 2009
Dimitris described the problem very well, I couldn't to describe it better because my english is like the old man running!

I used the same AK4490 dual board, but with bypass the 74AUP1G79 d-type flip-flops due the Acko S03 reclocker that I have.

An Amanero board joined at the Acko S03 and the output of AckoS03 board going to u.fl of AK4490 board.
The output of the AK4490's analogue stage (I used a transformer output) captured by an EMU-0404 with ARTA FFT Analyser.

The same issue, the noise floor of signal jumps periodically (seems like signals unlocks for an instant) with no any particullary time. Every two seconds, every 6-10seconds, every 21 seconds, something like lotary! But, there is no any problem to any acoustic listening, no click, pop, scratch e.t.c.

This reclocker uses the Potato 74AUC1G74 chips d-type flip-flops.
If I remove the Acko reclocker and put the amanero alone, everything is OK!

With carefully, I examined the i2s signal by oscilloscope and compared the amanero output via reclocker output, but the signal was better on reclocker side, the data eye pattern was improved, the only strange point was a ghost signal with 20ns delay on reclocker bit clock ouput (look the next video).



The next video is the FFT issue with the noise floor pull-up every 10 seconds.


Last edited by lemon; 5th June 2017 at 04:24 PM.
  Reply With Quote
Old 6th June 2017, 01:45 AM   #3
diyAudio Member
 
Join Date: Mar 2007
Location: Bandung
Have you try without programable mclk ? Can your board work in HW mode ?
Just making sure it hardware error not coding error
__________________
Didiet
Usb I2S + AK4490 / WM8805+ESS9023 / SDHC Card I2S audio player + AD1860
  Reply With Quote
Old 6th June 2017, 02:01 AM   #4
diyAudio Member
 
Join Date: Feb 2015
Dimdim, lemon,

great work. Subscribed and following along.
  Reply With Quote
Old 6th June 2017, 07:13 AM   #5
diyAudio Member
 
Bassivus's Avatar
 
Join Date: Aug 2004
Location: Novi Sad, Vojvodina
Great project guys! Wish you luck on debugging
I'm tuned in
__________________
...is I disappear. There is ONLY the music.
  Reply With Quote
Old 6th June 2017, 08:08 AM   #6
diyAudio Member
 
Join Date: Feb 2015
Dimdim,

Does the unlock occur even on the lowest SR? Is there a debug register or pin from the DAC reporting something? Is the I2S clock jitter too high?
  Reply With Quote
Old 6th June 2017, 08:38 AM   #7
Dimdim is offline Dimdim  Greece
diyAudio Member
 
Join Date: Sep 2008
Location: Athens
Quote:
Originally Posted by didiet78 View Post
Have you try without programable mclk ? Can your board work in HW mode ?
Just making sure it hardware error not coding error
Manolis is running his board with MCLK coming from the Acko reclocker so no programmable clock. He is getting the same behaviour.

We haven't tried HW mode but the 4490 is a pretty "dumb" chip programming-wise. There is not much to mess up. I've tried running it in both Auto and Manual modes, it doesn't make a difference. What makes a difference is removing the reclocking stage - that fixes everything. So it's most likely a hardware problem.

But just to be on the safe side, I'll try to turn to HW mode a "practice" PCB that I have built. I'll have to check how feasible that might be, since it was designed to only run in SW mode.
__________________
http://www.dimdim.gr
  Reply With Quote
Old 6th June 2017, 08:39 AM   #8
Dimdim is offline Dimdim  Greece
diyAudio Member
 
Join Date: Sep 2008
Location: Athens
Quote:
Originally Posted by diyaudnut View Post
Dimdim, lemon,

great work. Subscribed and following along.
Quote:
Originally Posted by Bassivus View Post
Great project guys! Wish you luck on debugging
I'm tuned in
Thanks guys.
__________________
http://www.dimdim.gr
  Reply With Quote
Old 6th June 2017, 08:45 AM   #9
Dimdim is offline Dimdim  Greece
diyAudio Member
 
Join Date: Sep 2008
Location: Athens
Quote:
Originally Posted by diyaudnut View Post
Dimdim,

Does the unlock occur even on the lowest SR? Is there a debug register or pin from the DAC reporting something? Is the I2S clock jitter too high?
The "unlock" (more like a "loss of sync"?) occurs regardless of SR. Its frequency of occurence depends on the SR - the higher the SR, the more frequent the "unlocks".

I considered that the MCLK might be "losing sync" with the rest of the signals so I tried varying the MCLK's frequency slightly (from a few Hz to a few hundred Hz). That made no change in the frequency of the "unlocks".

The 4490 offer no debugging registers.. they offer very little feedback as a matter of fact, not even a SR indication. I'd call them fairly "dumb", compared to their ESS competition.

The measured (audio) jitter is very low in all of our tests and the funny thing is that it improves further when the reclockers are in the chain, even though we are getting the "glitches"..
__________________
http://www.dimdim.gr
  Reply With Quote
Old 6th June 2017, 09:25 AM   #10
diyAudio Member
 
Join Date: Dec 2004
Location: gran sasso
Did You try to invert the clock edge which is going to the reclock flip fllop?
Very probably You have a logic hazard situation, and You should introduce a delay (into the data path) But inverting the clock could be fortunate, and bring forward the moment of latching..
Problem is that with changing data rate You should continously control this situation..
Anyway, wanted to note that something similar happens also in other configurations, just released publicly, would not worry too much..

Ciao, George
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dual Mono DAC AK4490/AK4497 cal1sto Digital Line Level 329 6th June 2017 08:22 AM
PGA2311 controlled by an Arduino nano Alexvez Analog Line Level 8 10th May 2017 10:29 PM
Simple remote volume control (controlled through arduino) 00940 Analog Line Level 22 7th December 2016 11:22 PM
CD-Pro2M/LF controlled by Arduino Bergrans Digital Source 2 10th December 2013 08:45 PM
THAT 5171 Controlled By Arduino? brandondrury Analog Line Level 0 10th September 2013 04:47 PM


New To Site? Need Help?

All times are GMT. The time now is 11:47 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
Copyright 1999-2017 diyAudio

Content Relevant URLs by vBSEO 3.3.2
Wiki