Go Back   Home > Forums > Source & Line > Digital Line Level

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 21st November 2012, 09:30 PM   #1541
diyAudio Member
 
Join Date: Nov 2006
Thanks, Qusp. That is good news.
  Reply With Quote
Old 22nd November 2012, 01:59 PM   #1542
diyAudio Member
 
Join Date: Feb 2009
Location: Brisbane, Australia
Quote:
Originally Posted by hochopeper View Post
Thanks for the protocol definition Ian, I will start my own DAC controller design shortly and this info will be invaluable. I want my controller to be network accessible so I've decided to start fresh with mine. For additional integration, I might end up using my network facing controller as the playback device and integrate the playback software with the control software. More details will become evident as I start working on it I'll hopefully get started on that in the next week or two, in readiness for GBIII

One issue that has only just dawned on me is that in the Dual XO manual you refer to J12 on the FIFO board being available to be used for mute signal. You really have thought of everything already! Is anyone using this already? I haven't seen anyone asking or discussing it. However, the FIFO manual that I have saved here doesn't describe the behaviour of this output port. Maybe I'm looking at the wrong manual? What is the behaviour of this pin? Is it active high or active low, does it need an external pull up? Can this be run through isolator if i2c is not used to the dac? I was going to implement a similar mute function in my controller but if you've already done the hard work, this really might be better implemented by the FIFO directly for lower latency.


Chris
I wrote the first code for the ARM v7 + linux/python DAC/si570 controller tonight. Only ~40 lines so far, this should be fun! As a result, Ian, I wanted to cofirm something since I haven't worked with serial a great deal previously. In your protocol are you actually sending the commas? Or are you just using them to denote the separation of each hex character?


Regardless here's what I had in mind as for the custom freq definition part of the code:

Code:
#user configurable lookup, dict indices per fs ie freqmap[3] will return the index of xofreq that corresponds to desired mclk
#default to 45/49MHz mclk for my ES9023
freqmap =  {0: 4, 1: 5, 2: 4, 3: 5, 4: 5, 5: 4, 6: 4, 7: 5, 8: 4, 9: 5}

fs = {0: '22kHz' 1: '24kHz', 2: '44.1kHz', 3: '48kHz', 4: '88kHz', 5: '96kHz', 6: '174kHz', 7: '192kHz', 8: '352kHz', 9: '384kHz'}

xofreq = {0: '11.2896MHz' 1: '12.2880MHz', 2: '22.5792MHz', 3: '24.5760MHz', 4: '45.1584MHz', 5: '49.1520MHz', 6: '90.3168MHz', 7: '98.3040MHz'}

def customfreq(data):
  string = '0xA5,OxC8,' + freqmap[data] + ',0x5A'
  Serial2.write(string)

NB, python code so syntax is different to C, those are comments following the '#'

Simple to use the data included with the 0xC1 command to index a frequency mapping dict that will store mclk for each fs. Code above doesn't need critique or feedback, just showing as a snapshot of what I had in mind for that part, it'll change I am sure before long.

I might start on a Web UI soon, I have time on my side with GBIII and prototypes before needing to use this.

Chris
  Reply With Quote
Old 22nd November 2012, 05:20 PM   #1543
AR2 is offline AR2  United States
Master Burner
 
AR2's Avatar
 
Join Date: Dec 2002
Location: San Francisco, California
Quote:
Originally Posted by slartibartfasst View Post
Hello, I'm not sure if this is the right thread for this question, but it seemed like the best so...

Does the backdoor I2S input on the SPDIF board pass the data stream directly to the I2S output or does it route the signal through the DIX9211?

I ask because the Tx on the DIX9211 appears to be limited to 216Khz whereas the USB-I2S interface I'm planning on using (Amanero) is capable of passing data in excess of that figure.

By the way, having slowly started to integrate these boards into a DAC, the SPDIF input board is a fantastic piece of equipment on its own, independent of the FIFO. The improvement over a PCM2707 (as a receiver - USB or optical SPDIF) solution previously used is immediately apparent (even using the PCM2707 as an optical transmitter). It seems the DIX9211 is in another league from the PCM2707, even with the DAC's (ESS9018) DPLL in place (as opposed to synchronous clocking).

Along with a digital volume control, having a switchable input turned my implementation into a minimalist digital pre-amp without using any uControllers; the box just boots up and is ready to go. Very convenient.

Thanks for the beautifully conceived, designed and executed SPDIF interface; I look forward to integrating the rest of your boards.
Quote:
Originally Posted by qusp View Post
agreed, I dont know why more people dont grab it, its an incredible value and combined with fifo hard to really justify anything more for most occasions

i2s backdoor is direct i2s out
+1
S/PDIF board is exactly that, an exceptional value, a real digital switching preamp. If I may add, my wish / suggestion for Ian will be in next board generation to add U/FL connectors for external I2S source. Other than that, one could hardly ask for more than is already there. While I am waiting for my I2S source to implement, I am listening to optical source that never sounded as good.
__________________
www.burningamp.com
  Reply With Quote
Old 22nd November 2012, 11:00 PM   #1544
diyAudio Member
 
Join Date: Feb 2009
Location: Brisbane, Australia
Quote:
Originally Posted by hochopeper View Post
One issue that has only just dawned on me is that in the Dual XO manual you refer to J12 on the FIFO board being available to be used for mute signal. You really have thought of everything already! Is anyone using this already? I haven't seen anyone asking or discussing it. However, the FIFO manual that I have saved here doesn't describe the behaviour of this output port. Maybe I'm looking at the wrong manual? What is the behaviour of this pin? Is it active high or active low, does it need an external pull up? Can this be run through isolator if i2c is not used to the dac? I was going to implement a similar mute function in my controller but if you've already done the hard work, this really might be better implemented by the FIFO directly for lower latency.
I've found what was confusing me there. There is a codependency in the manuals. The DualXO manual refers J12 on page 7, this looks like a typo or missed being updated after a design revision Ian, after reviewing the FIFO manual again it should refer to J13 port that provides indication of XFS and silence. My DAC (ES9023) needs active low input for mute, so I just need a TTL inverter and run this signal through the isolator board. I don't have i2c comms to my DAC so I will have spare pins on the general purpose isolator. The isolator also lets me convert the logic voltage to less than my DAC's AVCC.
  Reply With Quote
Old 23rd November 2012, 12:00 AM   #1545
diyAudio Member
 
iancanada's Avatar
 
Join Date: Dec 2009
Location: Toronto
Quote:
Originally Posted by hochopeper View Post
I wrote the first code for the ARM v7 + linux/python DAC/si570 controller tonight. Only ~40 lines so far, this should be fun! As a result, Ian, I wanted to cofirm something since I haven't worked with serial a great deal previously. In your protocol are you actually sending the commas? Or are you just using them to denote the separation of each hex character?


Regardless here's what I had in mind as for the custom freq definition part of the code:

Code:
#user configurable lookup, dict indices per fs ie freqmap[3] will return the index of xofreq that corresponds to desired mclk
#default to 45/49MHz mclk for my ES9023
freqmap =  {0: 4, 1: 5, 2: 4, 3: 5, 4: 5, 5: 4, 6: 4, 7: 5, 8: 4, 9: 5}

fs = {0: '22kHz' 1: '24kHz', 2: '44.1kHz', 3: '48kHz', 4: '88kHz', 5: '96kHz', 6: '174kHz', 7: '192kHz', 8: '352kHz', 9: '384kHz'}

xofreq = {0: '11.2896MHz' 1: '12.2880MHz', 2: '22.5792MHz', 3: '24.5760MHz', 4: '45.1584MHz', 5: '49.1520MHz', 6: '90.3168MHz', 7: '98.3040MHz'}

def customfreq(data):
  string = '0xA5,OxC8,' + freqmap[data] + ',0x5A'
  Serial2.write(string)

NB, python code so syntax is different to C, those are comments following the '#'

Simple to use the data included with the 0xC1 command to index a frequency mapping dict that will store mclk for each fs. Code above doesn't need critique or feedback, just showing as a snapshot of what I had in mind for that part, it'll change I am sure before long.

I might start on a Web UI soon, I have time on my side with GBIII and prototypes before needing to use this.

Chris
Chris, code looks great.

Si570 driver really send all of the commands listed in my .h file . So, to display the FIFO and clock board status, there is no any problem. But, the window time is only 100ms with 9600bps. So to control the Fs MCLK switching, I'm highly recommending using setting up USRT interrupt service to handle the communication .

Ian
__________________
Ian GBV - I2S to PCM converter board & FIFO KIT
http://www.diyaudio.com/forums/group...ml#post3662743
  Reply With Quote
Old 23rd November 2012, 12:03 AM   #1546
diyAudio Member
 
iancanada's Avatar
 
Join Date: Dec 2009
Location: Toronto
Quote:
Originally Posted by AR2 View Post
+1
S/PDIF board is exactly that, an exceptional value, a real digital switching preamp. If I may add, my wish / suggestion for Ian will be in next board generation to add U/FL connectors for external I2S source. Other than that, one could hardly ask for more than is already there. While I am waiting for my I2S source to implement, I am listening to optical source that never sounded as good.
That's a good idea.

Ian
__________________
Ian GBV - I2S to PCM converter board & FIFO KIT
http://www.diyaudio.com/forums/group...ml#post3662743
  Reply With Quote
Old 23rd November 2012, 01:06 AM   #1547
diyAudio Member
 
Join Date: Jan 2011
Location: sitting down
Si570 interest list:

1. bigpandahk
2. tagheuer
3. hochopeper
4. qusp (of course)
5. AR2 - definitely!
6. wktk_smile
7. hirez69
8. CeeVee - you bet!
9. number9
10. analog_sa - GB maniac
11. edbk
12. atom6422
13. misterrogers - Of Course!
14. NicMac - as usual!
15. Zoran 16. PET-240
17. Coolhead
18. Slartibartfasst
19. SYklab
20. Regland
21. Neb001
22. SPWONG
23. Greg Stewart (also of course!)
24. Vitalica
25. spm
26. Fridrik
27. ccliu
28. makumba1966
29. lindamar
30. Finaxe
31. Odysseas x2
32. palmito
33. crazikid
34. deanoUK
35. Julf
36. DUC985
37.rsotirov
38.kvl
39.bkdog
40.necplusultra

Click the image to open in full size.
  Reply With Quote
Old 23rd November 2012, 01:57 AM   #1548
diyAudio Member
 
Join Date: Feb 2009
Location: Brisbane, Australia
Ian,


Thanks for the suggestion, I think initially I will have to just run a input loop and check for data on the serial port very quickly, python serial implementation that I am using at the moment doesn't provide interrupts or anything similar. As you've said, this will be the challenge for any undertaking to control the Si570 remotely.

Another question, are the outputs on J13 on the FIFO 5V or 3.3V logic?


Thanks,
Chris

Last edited by hochopeper; 23rd November 2012 at 01:59 AM.
  Reply With Quote
Old 23rd November 2012, 03:10 AM   #1549
diyAudio Member
 
iancanada's Avatar
 
Join Date: Dec 2009
Location: Toronto
Quote:
Originally Posted by hochopeper View Post
Ian,


Thanks for the suggestion, I think initially I will have to just run a input loop and check for data on the serial port very quickly, python serial implementation that I am using at the moment doesn't provide interrupts or anything similar. As you've said, this will be the challenge for any undertaking to control the Si570 remotely.

Another question, are the outputs on J13 on the FIFO 5V or 3.3V logic?


Thanks,
Chris
J13 is a 3.3V LVTTL logic. Most 5V TTL logic will tolerance with this signal.

The mute is an output, only go active(high) during Fs un-locking and frequency switching. If you have additional mute logic, your can have an 'or' logic with it .

Please see P6 of the FIFO pdf file for more details.

Ian
__________________
Ian GBV - I2S to PCM converter board & FIFO KIT
http://www.diyaudio.com/forums/group...ml#post3662743

Last edited by iancanada; 23rd November 2012 at 03:25 AM.
  Reply With Quote
Old 23rd November 2012, 03:13 AM   #1550
diyAudio Member
 
Join Date: Feb 2009
Location: Brisbane, Australia
Quote:
Originally Posted by iancanada View Post
J13 is a 3.3V LVTTL logic. Most 5V TTL logic will tolerance with this signal.

Ian
Thanks Ian!

I was worried for the opposite reason, I have 3.3V tolerant serial port on the ARM processor that I want to interface through the isolator, so I need the 'dirty' side to run on 3.3V as 5V on these pins will damage the ARM processor.

Does the serial on the Si570 run at 3.3V also?


Chris
  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
XMOS-based Asynchronous USB to I2S interface Lorien Digital Source 2040 Yesterday 11:24 PM
exaU2I - Multi-Channel Asynchronous USB to I2S Interface exa065 exaDevices 1357 3rd March 2014 08:51 PM
DAC chip selection + I2S jitter questions drwho9437 Digital Line Level 2 26th July 2010 12:50 PM
Simple FIFO to I2S CPLD, for MCU players / reclocking KOON3876 Digital Line Level 21 19th September 2008 04:00 PM
asynchronous reclocking and low jitter clocks ash_dac Digital Source 3 8th February 2005 09:22 AM


New To Site? Need Help?

All times are GMT. The time now is 10:31 AM.


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

Content Relevant URLs by vBSEO 3.3.2