|
|||||||
| Home | Forums | Rules | Articles | Store | Gallery | Blogs | Register | Donations | FAQ | Calendar | Search | Today's Posts | Mark Forums Read | Search |
| 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 |
|
|
|
Thread Tools | Search this Thread |
|
|
#1561 | |
|
diyAudio Member
|
Quote:
Power supply will be buried at the bottom of the case and will be separated from the modules as well to reduce EMI with 1/8 thick copper. As far as the back panel, i will have another one made to the exact dimensions as the one that came plus the holes required for the connectors. I just have to figure how to machine out the front panel for the controls and mounting of the LCD display. |
|
|
|
|
#1562 |
|
is choosing a less facetious title...
diyAudio Member
|
I would not expect such thin copper to provide any meaningful shielding against EMI, in fact thick copper would not do much good either; it is simply not dense enough to provide an effective shield. I could be wrong of course, but that certainly has been my experience
|
|
|
|
#1563 | |
|
diyAudio Member
Join Date: Aug 2008
|
Quote:
0. Your Sabre chip is ES9018. 1. You are using sampling rate 48 kHz and data length 16 bit inputs from both your DVD-player and PC interface and does your Denon DSP module output fs=48 kHz and BIT CLOCK = 64 * fs ( 64= 32 * 2 ) for the both DVD-player and PC interface cases? 2. Are those waveforms of BIT CLOCKs and WORD CLOCKs for the both cases almost identical? How are the timings between BIT CLOCK and WORD CLOCK? Are they almost identical either? I don't think you use BIT CLOCK = 32 * fs ( 32 = 16 * 2) for the PC interface case. However, I just remember that ES9018 only supports BIT CLOCK = 64 * fs. |
|
|
|
|
#1564 |
|
diyAudio Member
Join Date: Jul 2005
Location: Devon
|
Hi, Bunpei,
I'm using the ES9008 ("24-bit" version). All digital audio signals are passed through the DSP board. The sources are standard S/PDIF, so should be 64fs (32-bits per Left / Right, but only 16, 18, 20, or 24 bits actually used for audio). The thing is, it's working fine when using coax from the PC instead of optical? The signal format from coax and optical should be identical (apart from slight bias / jitter differences etc.) I've been too busy to try changing the resistors on the I2S lines to match the impedances etc. I'm sure this is the main problem, so I'll fix it soon. I can always use coax for the time being, it's just that my on-board sound card (coax) sounds dreadful. I'm not sure that this amp will ever get finished. It basically just needs a cheap 8-channel I/V stage and a 7-channel speaker protection relay board to finish it off.I also have a very nice FriendlyArm board and 3'5" LCD which I'm planning to fit to the front of the amp chassis to do basic control and possibly generate some test signals. It's way overkill though, and difficult enough just to get simple I2C working and deciding on an OS to use. Thanks for everyone's help though, I think I'll put the optical / coax thing to rest for now. ![]() OzOnE. |
|
|
|
#1565 |
|
diyAudio Member
|
I'm still waiting a response on the 8Ch DAC ...
Anyone ?? |
|
|
|
#1566 |
|
diyAudio Member
Join Date: Jun 2009
|
Lots of information here about it but I don't know where you buy it from.
Test hearing of Evaluation boad of ES9008S ESS Technology |
|
|
|
#1567 |
|
diyAudio Member
Join Date: Jun 2007
|
I'm having trouble with 2 of my terminal blocks on the buf32s mobo. I either have to physically move them or tighten the set screws. Has anybody had this issue and if so what can I do to fix?
|
|
|
|
#1568 |
|
diyAudio Member
Join Date: Aug 2005
|
just started playing with my arduino Duemilanove (I’m newbie with it).
sadly I cannot get the volume control via I2c running with my buffalo 1. I known that is not a arduino list, but maybe I'm making here a stupid fundamental error. I'm using the wire lib. A few questions: about wiring from arduino to buffalo: pin 4 to sda pin 5 to scl connect grounds. Is it needed to connect Vdd on the buffalo too -- and do we need pull up resistors (I don't think so as the pull up res are in the buffalo 1 already ) ? after that I tried the following test program to attenuate the vol. but nothing happens — but the ‘build in LED’ from the arduino is flashing. from the data sheet I2C addr. is 0x90 (addr pin is open). but what are the register addr starting from 1 to 8 ? (see page 9). (what means (default = 8’d0 - is that 8bit digital 0 ??). it was strange that the datasheet was not on the ess website. google gives 202 results of the pdf... thanks. #include <Wire.h> void setup() { Wire.begin(); // join i2c bus (address optional for master) } byte vol=0; int ledPin = 13; // led on the arduino void loop() { // Do stuff repeatedly digitalWrite(ledPin, LOW); delay(100); Wire.beginTransmission(0x90); // Address of DAC is hex 90 Wire.send(0x01); // Address of register 1 is hex 1 Wire.send(vol); // Value into register vol Wire.send(0x02); // Address of register 2 is hex 2 Wire.send(vol); // Value into register vol Wire.send(0x03); // Address of register 3 is hex 3 Wire.send(vol); // Value into register vol Wire.send(0x04); // Address of register 4 is hex4 Wire.send(vol); // Value into register vol Wire.send(0x05); // Address of register 5 is hex 5 Wire.send(vol); // Value into register vol Wire.send(0x06); // Address of register 6 is hex 6 Wire.send(vol); // Value into register vol Wire.send(0x07); // Address of register 7 is hex 3 Wire.send(vol); // Value into register vol Wire.send(0x08); // Address of register 8 is hex4 Wire.send(vol); // Value into register vol Wire.endTransmission(); digitalWrite(ledPin, HIGH); delay(100); vol=vol+8; // steps to 0.5db each. max attenuation=-127db if(vol == 255) // if reached 256th position (max) { vol = 0; // start over from 0db } }
__________________
gebi |
|
|
|
#1569 | |
|
diyAudio Member
Join Date: Sep 2007
Location: Multiple...
|
Quote:
#define SABRE_ADR 0x48 // I2C Hex address of the Sabre DAC I have defined the following as references for my programming: #define DEFAULTVOL 0x28 // -20 dB #define MINVOL 0xc6 // -99dB - Dac adjustment is 0.5 db #define MAXVOL 0x00 // -0 dB #define DIMVOL 0xb4 // -90dB The volume level when dimming the volume Then the code for increasing the volume by 0.5 dB are as follows (As I stores all settings in EEPROM and reads back the stored values at powerup you can disregard the EEPROM programming): // The following for volume up case KEYVOLUP: switch(volDimSTAT){ case 0: if (currVol > MAXVOL) // Check if already at max numerical Volume { currVol=currVol-1; // Increase 0.5 dB EEPROM.write(currVolAddr, currVol); // Write currVol value to EEPROM address I2C_write(SABRE_ADR, 0x00, currVol); // Write new volume data (Register 0) I2C_write(SABRE_ADR, 0x01, currVol); // Write new volume data (Register 1) I2C_write(SABRE_ADR, 0x02, currVol); // Write new volume data (Register 2) I2C_write(SABRE_ADR, 0x03, currVol); // Write new volume data (Register 3) I2C_write(SABRE_ADR, 0x04, currVol); // Write new volume data (Register 4) I2C_write(SABRE_ADR, 0x05, currVol); // Write new volume data (Register 5) I2C_write(SABRE_ADR, 0x06, currVol); // Write new volume data (Register 6) I2C_write(SABRE_ADR, 0x07, currVol); // Write new volume data (Register 7) // setupSabre (); delay(IRCdelay); break; } break; case 1: break; } The code for decreasing the volume are as follows: // The following for volume down case KEYVOLDOWN: switch(volDimSTAT){ case 0: if (currVol < MINVOL) // Check if already at min Volume { currVol=currVol+1; // Decrease 0.5 dB EEPROM.write(currVolAddr, currVol); // Write currVo value to EEPROM address I2C_write(SABRE_ADR, 0x00, currVol); // Write new volume data (Register 0) I2C_write(SABRE_ADR, 0x01, currVol); // Write new volume data (Register 1) I2C_write(SABRE_ADR, 0x02, currVol); // Write new volume data (Register 2) I2C_write(SABRE_ADR, 0x03, currVol); // Write new volume data (Register 3) I2C_write(SABRE_ADR, 0x04, currVol); // Write new volume data (Register 4) I2C_write(SABRE_ADR, 0x05, currVol); // Write new volume data (Register 5) I2C_write(SABRE_ADR, 0x06, currVol); // Write new volume data (Register 6) I2C_write(SABRE_ADR, 0x07, currVol); // Write new volume data (Register 7) // setupSabre (); delay(IRCdelay); break; } break; case 1: break; } Last edited by RayCtech; 15th September 2010 at 09:45 AM. |
|
|
|
|
#1570 |
|
diyAudio Member
Join Date: Oct 2004
|
Good to see you using Arduino
If I remember correctly, the I2C address is put in 7 bits so rather than 0x90 it is 0x48 (as indicated by RayCTech above). The rest seems to be fine. You also need to share the ground with Buffalo. And I think the Buffalo is 5V tolerant (When I programmed the OPUS, I used a 5V to 3.3V level converter because the Wolfson parts are not 5V tolerant) You can see an implementation of the code here: MY PROJECTS You can see more Arduino programming for TPA boards here: H I F I D U I N O
__________________
www.hifiduino.wordpress.com |
|
| Thread Tools | Search this Thread |
|
|
| New To Site? | Need Help? |