• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Mr White's "Opus", designing a simple balanced DAC

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Cannot detect the Opus as an i2c slave device on BBB with i2c-tools

Hi there,

For weeks I've been trying to control the Opus via i2c-tools on BBB with Botic5 kernel with no success. My purpose is quite simple. I just want to change MODESEL from 00 (for PCM) to 01 (for Direct DSD), that can not be controlled by the current DIP switches.

Physical connection between BBB and Opus includes SDA, SCL, and GND lines and I believe the 3.3V supply for SDA and SCL on the Opus side is sourced from VDD of the board (set for 7.5V for now).

The DIP switches on the Opus are set to the software control mode: I2S (device address) to 0, MODE to Z and DIFFHW to 0 with the rest to Z.

On BBB with Botic5, I think i2c-1 (P9_17 and P9_18) and i2c-2(P9_19 and P9_20) are both enabled and avaialble as shown below:

Code:
ls -l /sys/bus/i2c/devices/i2c-* 
lrwxrwxrwx 1 root root 0 Oct 28 23:04 /sys/bus/i2c/devices/i2c-0 -> ../../../devices/platform/ocp/44e0b000.i2c/i2c-0 
lrwxrwxrwx 1 root root 0 Oct 28 23:04 /sys/bus/i2c/devices/i2c-1 -> ../../../devices/platform/ocp/4802a000.i2c/i2c-1 
lrwxrwxrwx 1 root root 0 Oct 28 23:04 /sys/bus/i2c/devices/i2c-2 -> ../../../devices/platform/ocp/4819c000.i2c/i2c-2
Also, I confirmed each i2c bus is well working with an i2c sensor device (TMP102). But with the same SCL/SDA connection, the Opus can not be detected as a slave device as shown in the example below:

Code:
root@botic:~# i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
The WM8741 manual suggests the MUTE as internal pull-up, but I've been in failure to utilize this function so far. It appears I'm still missing something fundamental. Any advices will be appreciated.

TIA
 
Sorry , I will ask a stupid question , is it possible for this board to have 2 xtals ? One for 44.1Khz family and second for 48K and family..
Not a stupid question. Yes, the board can deal with both of 44.1K and 48K families but the maximum frequencies allowed for MCLK are up to 33.8688/36.864MHz. Practically this means a set of 22.5792MHz and 24.576MHz XOs will suffice this condition.

TPA is now offering a board called Cronus for this purpose and there are currently two options for I2S setup with the Opus: a Hermes-BBB board which should be used with Beaglebone Black under a linux kernel called Botic or a Hermes-Amanero board which can be used as USB-DDC using an Amanero Combo384 board for I2S connection.
 
You just need to configure the opus for I2C input (leave "mode" switch in open/middle position). You may need to add pull-ups to SDA/SCL.

I always set the board to software control mode for 2-wire control mode as you suggested but this simple setup did not work.

For pull-ups, there is no 3.3V available on the Opus board. So I've been just wondering whether I can use the VDD of the board for pull-ups, which I'm now setting up to 7.5V. Also, I'm not sure about the appropriate resistor value, maybe 10K to 20K?
 
Okay, thank you. I'll give it a try later tonight.
to get
As recommended, I shorted J2 and J3 and confirmed the I2C isolator powered by 3.3V from the Cronus. Then I connected SCL and SDA cables from the Opus to the Hermes with 2K pull-ups but again failed to identify the Opus as an I2C slave. The results were the same even with 1K and 10K pull-ups.

For months, I've repeated this failure so many times and now it may be the time to give up.
 
What version is the opus?

The version is 2.1, probably the latest.

So far, I've assembled two Opus DACs: One is stereo and the other is dual-mono. Volumite works fine with each DAC but it can not be used as a switch between DSD (direct DSD operation) and PCM even with software control mode. Manual switching between DSD and PCM with hardware control mode is possible but is not practical for daily listening.

As implied in the WM8741 manual (page 28) changing the register address (07h) bit from 00 to 01 or vice versa by I2C with Hermes-BBB/Cronus using i2c-tools commands appears the most practical way for this purpose but it looks like the Opus is refusing this connection :sigh:.

BTW it's curious that the manual never uses the word I2C but always attribute this connection to a two-wire serial control while it explicitly uses the word SPI. So there may be something different in the WM8741 in terms of ordinary I2C setting.
 
How do i change my Opus from Balanced to Unbalanced?

I recently decided to downsize my system. In the process I dusted off the old OPUS I built in an old HP computer case. I built it with 2 opus in balanced dual differential output configuration. This was a long time ago. I no longer have a balanced system. I have completely forgotten everything I learned about this while building it.

I need to convert the connections to unbalanced RCA. Should I merely get unbalanced male to rca adapters?
Or how do I rewire everything to use rca panel connectors?
Or do I just use one Opus board?

Thank you
 
I notice some people are running an Opus with a WaveIO USB to i2s receiver. Are you able to play all sampling rates?

I've tried two boards now, and a variety of debugging, but cannot seem to get the two devices to co-operate at any sampling frequency - all I can hear is clicks and noise. Used a scope to check the lines and there is quite a bit of ringing. Much more so than the DDDAC 1543 MK II i2S outputs. Can't seem to work out what the issue is.

I have not tried removing the screw terminal blocks from the Opus to see if that improves matters. Cabling is as short as it can be to stack the boards, so should not be an issue.

Any comments appreciated!
 
Last edited:
I notice some people are running an Opus with a WaveIO USB to i2s receiver. Are you able to play all sampling rates?

Absolutely. I use not isolated output with short cable (~50mm) of equal length. Different length cables caused some problems to my setup in the past (distortion and clicks).
 

Attachments

  • WaveIO+Opus I2S.jpg
    WaveIO+Opus I2S.jpg
    657.8 KB · Views: 647
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.