Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Login


Options
View
Go to last post Go to first unread
mnore  
#1 Posted : Thursday, July 12, 2012 11:31:46 AM(UTC)
mnore

Rank: Member

Groups: Member
Joined: 7/11/2012(UTC)
Posts: 5
Location: Oslo

Thanks: 1 times
I did try to read through the forums, but If I missed some obvious posts answering my question, please don´t shoot me, OK? :)

I´m considering using the new nanoDigi board from Minidsp along with external dac boards for my integrated 6 channel Hypex-based amp. The end goal is to build the Linkwitz Orion speakers, but for now I will use it to run mains speakers + subs until it all works. Need to have one project at a time :-)

I will be using an Arduino for receiving IR commands, monitoring a rotary encoder for volume control, and one front panel button. The Arduino will also control an LCD display showing the source selected and the volume. The Arduino should then set the volume accordingly on the DACs.

Questions:
The nanoDigi will output "regular" SPDIF signals (RCA connectors) in a 2x4 config. I suppose this is what you will call consumer level SPDIF.

1. Will the Opus DAC be able to understand these signals?
If not, is there an easy way to convert them?

I am waiting for a response from Minidsp on whether I can tap in to I2S data for each channel.

2. If I can - then I understand I can feed each of these the Opus DACs?

3. Will three separate Opus DACs have issues with timing between channels? Is there a syncing methanism in the SPDIF or I2S protocol that keeps them syncronized time-wise, or will any delay be so small that its unnoticeable?

I can set the volume for each channel through the crossover/EQ settings on the nanoDigi, so the Arduino only needs to set a master volume at the DAC level.

4. Is there an easy way to set the volume level for three Opus DACs at the same time? Do I need the volumite, or can I program my Arduino to do the same thing, enabling using my rotary encoder and LCD display of the selected volume and remote control?

5. With four SMPS power supplies and 6 hypex UCD modules in a standard steel amp chassis (heatsinked though), will the Opus DACs be resilient to what EMI there might be? The UCD modules are supposed to be "quiet" in that sense, and I also believe the SMPSs are.

All the best,

Martin





Tostaki  
#2 Posted : Saturday, July 21, 2012 8:39:31 PM(UTC)
Tostaki

Rank: Member

Groups: Member
Joined: 7/18/2012(UTC)
Posts: 26

Thanks: 1 times
Was thanked: 3 time(s) in 2 post(s)
About setting the volume on the 3 dacs at the same time with Arduino

1/ Supposing you are using the I2C channel

Code:
void opuswritereg(uint8_t i2caddr,uint8_t regaddr,uint8_t regval)
{
  Wire.beginTransmission(i2caddr);
  Wire.send(regaddr);
  Wire.send(regval);
  Wire.endTransmission();
}

      currVol=currVol-8;                // Decrease attenuation 1 dB
      reg0val=(((byte)currVol) & 0x1F); // Calculate value for reg0
      opuswritereg(dac1,REG0,reg0val);       // Write to reg0 on dac 1
      opuswritereg(dac2,REG0,reg0val);
      opuswritereg(dac3,REG0,reg0val);
      reg1val=((currVol>>5)| 0x20);     // Calculate value for reg1
      opuswritereg(dac1,REG1,reg1val);       // Write to reg1 on dac 1
      opuswritereg(dac2,REG1,reg1val);
      opuswritereg(dac3,REG1,reg1val);


Code from hifiduino
thanks 1 user thanked Tostaki for this useful post.
mnore on 8/19/2012(UTC)
mnore  
#3 Posted : Sunday, August 19, 2012 8:26:57 PM(UTC)
mnore

Rank: Member

Groups: Member
Joined: 7/11/2012(UTC)
Posts: 5
Location: Oslo

Thanks: 1 times
Thanks Tostaki,

I have used Hifiduino for inspiration, but ended up with an SPI solution using the SPI library in Arduino.
There is a bug in the SPI library that doesnt allow you to choose all the clock speeds, but can be fixed (i just made a copy and edited a line based on info found elsewhere - if you ever need it let me know and i´ll find it)

I first tried with voltage dividers to get the 5V logic down to 3.3V. That worked -- as long as I had only one Opus connected. I dont own an oscilloscope, but I can imagine that the voltage dividers did a lot of bad things to the waveforms. Even if I tried to bitbang commands to the three opus-es, the results were unstable.

However, I just bought a few 4-channel logic level converters from Adafruit, and they did the trick. Adafruit says they dont work at high frequencies (no info on what they mean by high though), but everything works great at the highest clock speed the Arduino Uno can use for SPI (around 4mhz).

The only issue I face with the SPI-controlled Opus-es, is that I cant figure out how to keep them absolutely quiet during reset. The Arduino will send the commands very quickly, but there will still be about 1/10 seconds of white noise after the DAC has been reset until I can issue the command to set the DAC to 96khz. Tried both digital and analogue mute in register 4.

I understand that the MUTE input on Opus board can only be used if the dac is running in DSD mode, so it doesnt seem that Im able to force the dac to be quiet until the startup sequence is completed.

I aim to have the amps in standby while waiting to set all the registers, but it would be nice to know I can keep them quiet before they are all ready.

Any hints on how to achieve this?

Martin
Rss Feed  Atom Feed
Users browsing this topic
GuestUser (2)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.