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

Notification

Icon
Error

Login


Options
View
Go to last post Go to first unread
nightanole  
#1 Posted : Sunday, February 13, 2011 10:13:29 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

I think i have to change a few things to get the volumite to work with an opus with a WM8741, and a metronome (or other source) set to 24-bit 96Khz. Something about you have to tell it what the input freq is before the volumite will start working or something.
rhester19  
#2 Posted : Sunday, February 13, 2011 8:48:55 PM(UTC)
rhester19

Rank: Member

Groups: Member
Joined: 2/13/2011(UTC)
Posts: 3
Location: Rome,GA

What changes do you have to make? I have never been able to get it to work.

Max

glt  
#3 Posted : Sunday, February 13, 2011 10:00:53 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

I don't have a volumite, so this is just theory.
The volumite must assume a value for the oversampling setting (the OSR value). If set for "low rate", that means only 44.1 adn 48KHz material can be used. If you input 96K or 192K, you will not get any sound. If set for "high rate", that means any sample rate can be fed.
More info here: http://hifiduino.blogspo...1/osr-bit-in-wm8741.html and here: http://hifiduino.blogspo...8741-filter-setting.html
Russ White  
#4 Posted : Monday, February 14, 2011 4:19:11 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
here is how it is implemented. The first case is the default (both pins pulled up).

#define FIRSEL_LOWA 6,2,0,0b001
#define FIRSEL_LOWB 6,2,0,0b011
#define FIRSEL 6,2,0,0b000
#define OSR_LOW 7,6,5,0
#define OSR_MED 7,6,5,1
#define OSR_HIGH 7,6,5,2

if (bit_is_set(PINB,PIN3) && bit_is_set(PINB,PIN1)) {
setRegBits(FIRSEL_LOWA);
setRegBits(OSR_LOW);
}
if (bit_is_set(PINB,PIN3) && bit_is_clear(PINB,PIN1)) {
setRegBits(FIRSEL_LOWB);
setRegBits(OSR_LOW);
}
if (bit_is_clear(PINB,PIN3) && bit_is_set(PINB,PIN1)) {
setRegBits(FIRSEL);
setRegBits(OSR_MED);
}
if (bit_is_clear(PINB,PIN3) && bit_is_clear(PINB,PIN1)) {
setRegBits(FIRSEL);
setRegBits(OSR_HIGH);
}

Edited by user Monday, February 14, 2011 4:24:39 PM(UTC)  | Reason: Not specified

rhester19  
#5 Posted : Tuesday, February 15, 2011 7:09:40 PM(UTC)
rhester19

Rank: Member

Groups: Member
Joined: 2/13/2011(UTC)
Posts: 3
Location: Rome,GA

So this mean that I2S needs to be set to (-) and OSR to "high" rate if we are upsamling from the metronome (as mentioned somewhere else)?
And PB1 and PB3 need to be tied into GN3? I assume power gnd?

Russ White  
#6 Posted : Tuesday, February 15, 2011 8:00:57 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
Depends on the sample rate out of the metronome.
rhester19  
#7 Posted : Wednesday, February 16, 2011 8:46:34 PM(UTC)
rhester19

Rank: Member

Groups: Member
Joined: 2/13/2011(UTC)
Posts: 3
Location: Rome,GA

my post above would be true if I have 192K coming out of meronome?

nightanole  
#8 Posted : Saturday, February 19, 2011 6:44:10 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

Well i just got my volumite in the mail. From looking at a non programmer point of view; i have 4 possible combos from pb3/pb1, the first 2 are not use due to setting the bit rate low. So its either pb3 is grounded and pb1 is high, or pb3 is grounded and pb1 is grounded? PS: what is pulled high? does that mean if i dont connect it, it is high, or do i have to put 3.3v or 5v on the pin?


Now i just have to figure out the rest of switches and where to even connect the thing and im done. I hope i didnt buy a $30 paper weight, or worse yet brick my dac.
nightanole  
#9 Posted : Saturday, February 19, 2011 7:07:53 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

This is alittle less cryptic post from headfi

Opus Switches:
DIFFHW = 0
MODE = Z (open not high or low)
SADDR = 0 = LEFT Channel 1 = RIGHT

If I remember correctly the rest you can leave open.

I2C wiring:
GND -> GND
SDA->SDIN
SCL->SCK

Jumpers for PB3 and PB1 on Volumite:
V+, V+ (default with resistors installed) - Low sample rate Filter mode 2.
V+, GND - Low sample rate Filter mode 4.
GND, V+ - Medium sample rate (96khz) Filter mode 1.
GND, GND - High sample rate (192khz) Filter mode 1.
nightanole  
#10 Posted : Wednesday, February 23, 2011 9:34:15 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

Ok really dumb question. So to get 96khz, i install r1/r2, leave PB3 nc, and ground PB1?
nightanole  
#11 Posted : Friday, February 25, 2011 9:54:27 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

Ok ive all be given up. Latest settings

i2s=float
mode= float
diffhw=ground

No matter what i do, when i unground MODE, all i get is high pitched modem noise. This is with the volumite connected or disconnected.

The unit works perfectly in hardware mode.


glt  
#12 Posted : Friday, February 25, 2011 10:32:04 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

(I haven't read the whole thread in detail, so this may be repeat, but...)

This is what I used for s/w mode: http://hifiduino.blogspot.com/2009/04/success.html

Now, according to Russ, this is the code in the volumite:


#define FIRSEL_LOWA 6,2,0,0b001
#define FIRSEL_LOWB 6,2,0,0b011
#define FIRSEL 6,2,0,0b000
#define OSR_LOW 7,6,5,0
#define OSR_MED 7,6,5,1
#define OSR_HIGH 7,6,5,2

if (bit_is_set(PINB,PIN3) && bit_is_set(PINB,PIN1)) {
setRegBits(FIRSEL_LOWA);
setRegBits(OSR_LOW);
}
if (bit_is_set(PINB,PIN3) && bit_is_clear(PINB,PIN1)) {
setRegBits(FIRSEL_LOWB);
setRegBits(OSR_LOW);
}
if (bit_is_clear(PINB,PIN3) && bit_is_set(PINB,PIN1)) {
setRegBits(FIRSEL);
setRegBits(OSR_MED);
}
if (bit_is_clear(PINB,PIN3) && bit_is_clear(PINB,PIN1)) {
setRegBits(FIRSEL);
setRegBits(OSR_HIGH);
}


For 96K you want the registers set for OSR_MED

which is the following statement:

if (bit_is_clear(PINB,PIN3) && bit_is_set(PINB,PIN1)) {
setRegBits(FIRSEL);
setRegBits(OSR_MED);

This means:
- PIN3 is pulled down
- PIN1 is pulled up

Just to be complete

PIN1 PIN3 OSR
---- ---- ---
LOW LOW HIGH
LOW HIGH LOW
HIGH LOW MED
HIGH HIGH LOW

Edited by user Friday, February 25, 2011 10:35:52 AM(UTC)  | Reason: Not specified

nightanole  
#13 Posted : Friday, February 25, 2011 11:38:01 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

i2s=z
dsd=z
deemph=z
mode=z
iwo=1
diffhw=0
fsel=z
mute=z
osr=z

When ever i flip mode to z all i get is noise.

Looks like i could mess with iwo and i2s.
nightanole  
#14 Posted : Friday, February 25, 2011 11:44:49 AM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

Nope setting it up just like the link didnt change a thing. I dont know what im missing, but reguardless of other settings or if the volumite is installed, if i put mode to Z all i get is modem noise.
glt  
#15 Posted : Friday, February 25, 2011 12:22:28 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

Here is some info from the WM8741 datasheet (page 5):

I2S: in 2-wire s/w mode (using volumite), this sets the address of the device. I would assume setting it low gives one address and setting it high gives the other address

DIFFHW: 0= normal; 1= MONO

With DIFFHW=0, then MODE=Z for 2-wire control (volumite)

OSR is unused
IWO is an output, so set to Z

DSD and DEEMPH must be set to Z because these become the control wires to the volumite in s/w mode

MUTE: 0= Mute active; 1= Normal operation (you can try setting MUTE to 1)

FSEL: Unused.

So in summary:

I2S: try 0 or 1
DSD: Z
DEEPH: Z
MODE: Z
IWO: Z
DIFFHW: 0 (stereo mode)
FSEL: Z (unused)
MUTE: try 1
OSR: Z (unused)

So the only switches to try are I2S and MUTE

Also make sure Metronome is set for 24bit I2S output.
nightanole  
#16 Posted : Friday, February 25, 2011 1:04:22 PM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

Everything is float but mute=1

still modem noise

modem noise with i2s set to ground or 3.3v

If the volumite was misconfigured then i should get no noise, or possibly full volume.

I wish i knew how it should behave in software mode with no volumite. The volumite has no effect if its plugged in or not. and the chip is getting 3.3v (Feeding the reg 5v).

Ugh this is frustrating. Everything works. usb to met set to 24bit 96khz to upus to balisi lite. Its this volumite thats the only problem. If i cant get it to work, then im out 30 bucks, and i have to get a pot and a buffer to make this a preamp...
glt  
#17 Posted : Friday, February 25, 2011 1:31:10 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

DIFF has to be=0 for stereo

Try setting PB1 and PB3 to 0 (pull to gnd). This tells the chip not to do any oversampling so any sample rate should work.

Here is additional info on the device addresses:

The WM8741 can have one of two addresses:

0011010 (I2S switch=0)
0011011 (I2S switch=1)

I would guess that volumite will use the first address for stereo operation...

Edited by user Friday, February 25, 2011 1:58:00 PM(UTC)  | Reason: Not specified

nightanole  
#18 Posted : Friday, February 25, 2011 2:25:03 PM(UTC)
nightanole

Rank: Member

Groups: Member
Joined: 11/18/2010(UTC)
Posts: 13
Location: ohio

With both pb3/1 grounded, still modem noise with i2s on 3.3v or grounded. ya diff has been grounded the whole time.
glt  
#19 Posted : Saturday, February 26, 2011 10:53:16 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

nightanole wrote:
Everything is float but mute=1

...
I wish i knew how it should behave in software mode with no volumite. The volumite has no effect if its plugged in or not. and the chip is getting 3.3v (Feeding the reg 5v).
......


You can download the datasheet and read the part about the registers. All the registers have a default startup condition (volume, sample rate, data format, etc). Then you can use a compatible input and that is the default s/w mode. You can set the chip for s/w and turn it on without the volumite.
Rss Feed  Atom Feed
Users browsing this topic
GuestUser
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.