Search
Search titles only
By:
Search titles only
By:
Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
Κανονισμός Λειτουργίας
Σωματείο AVClub
Log in
Register
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
WM8805 receiver
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="lemon" data-source="post: 1057777837" data-attributes="member: 16016"><p>Λοιπόν έχει περάσει τόσος καιρός και δεν αξιωθήκαμε να δώσουμε τον κώδικα για το 8805.</p><p></p><p>Δεν είμαι σίγουρος ότι έχω κάνει καλή δουλειά, γιατί για να μη μπλέξουμε πρέπει να δοθεί μόνο ο πηγαίος κώδικας δίχως εντολές για συγκεκριμένου τύπου οθόνη.</p><p>Επειδή έβγαλα αρκετό μέρος από τον κώδικα όπου αφορούσε την οθόνη αλλά και άλλες λειτουργίες εκτός του 8805, πιθανόν να έχουν μείνει κάποια "σκουπίδια"</p><p></p><p>Ο κώδικας περιλαμβάνει ρουτίνα τηλεχειριστηρίου για επιλογή εισόδων (4άρων), κάθε είσοδος έχει δική της μεταβλητή που αντιστοιχεί στον κώδικα που αντιστοιχεί σε συγκεκριμένο κουμπί του τηλεχειριστηρίου το οποίο και δηλώνεται στην αρχή (define) και έπειτα καλείται μέσα στη ρουτίνα switch (results.value) με τις συνθήκες της σε κάθε switch.</p><p>Δεν περιλαμβάνει encoder, γιατί είχε επιλεχθεί εξ' αρχής χρήση μόνο τηλεχειριστηρίου.</p><p></p><p><strong>Include & define</strong></p><p>[CODE]</p><p>#include <Wire.h></p><p>#include <IRremote.h></p><p></p><p>//--------WM8805 setup</p><p>uint8_t wm8805 = 58; // device wm8805, 58d = 0x3A = 0111010 (see datasheet pp. 17, table 11)</p><p>uint8_t toggle = 0;</p><p></p><p>#define IRCONTROL // Comment out when using the IR control functionality.</p><p>#define RECV_PIN 23 // IR Receiver input pin on atmega</p><p></p><p>// Write the IR Code of each button, then trasfer them to case function</p><p>#define POWER_CODE 0x77E1C034 // Code for display power on/off</p><p>//#define POWER_CODE 0x8322A15E // Code for display power on/off</p><p>#define SPDIF1_SOURCE1_CODE 0x77E15034 // Code for spdif source 1, Bnc</p><p>//#define SPDIF1_SOURCE1_CODE 0x8322A25D // Code for spdif source 1, Bnc</p><p>#define SPDIF2_SOURCE1_CODE 0x77E16034 // Code for spdif source 2, Coax</p><p>//#define SPDIF2_SOURCE1_CODE 0x8322A45B // Code for spdif source 2, Coax</p><p>#define SPDIF3_SOURCE1_CODE 0x77E13034 // Code for spdif source 3, Aes</p><p>//#define SPDIF3_SOURCE1_CODE 0x8322A35C // Code for spdif source 3, Aes</p><p>#define SPDIF4_SOURCE1_CODE 0x77E19034 // Code for spdif source 4, Toslink</p><p>//#define SPDIF4_SOURCE1_CODE 0x8322A55A // Code for spdif source 4, Toslink</p><p></p><p>#ifdef IRCONTROL</p><p>IRrecv irrecv(RECV_PIN);</p><p>decode_results results;</p><p>#endif IRCONTROL</p><p>[/CODE]</p><p></p><p></p><p><strong>Void setup</strong></p><p>[CODE]</p><p>void setup()</p><p>{</p><p> // WM8805 Reset pin</p><p> // Keep it in Reset state until we are ready to talk to it</p><p> pinMode(2, OUTPUT); digitalWrite(2, LOW);</p><p></p><p> // Initialize Serial and Hello!</p><p> Serial.begin(115200);</p><p> Serial.println("Hello!");</p><p> </p><p> // Initialize WM8805</p><p> digitalWrite(2, HIGH); // Start WM8805 </p><p> delay(100); // Wait for 100ms and then start talking to it </p><p> Wire.begin(); // for WM8805</p><p> Wire.beginTransmission(wm8805); // Check there is a WM8805</p><p> uint8_t error = Wire.endTransmission(); // on the I2C bus</p><p></p><p> if (error == 0) {</p><p> Serial.println("WM8805 found!");</p><p> } else if (error == 4) {</p><p> Serial.println("Unknown error at address 0x3A");</p><p> } else {</p><p> Serial.println("No response from WM8805!");</p><p> }</p><p></p><p> Serial.print("Device ID: ");</p><p> byte c = ReadRegister(wm8805, 1);</p><p> if (c < 10) Serial.print('0');</p><p> Serial.print(c, HEX);</p><p></p><p> c = ReadRegister(wm8805, 0);</p><p> if (c < 10) Serial.print('0');</p><p> Serial.print(c, HEX);</p><p></p><p> Serial.print(" Rev. ");</p><p> c = ReadRegister(wm8805, 2);</p><p> Serial.println(c, HEX);</p><p></p><p> DeviceInit(wm8805);</p><p> delay(500);</p><p> // Start the IR receiver -- LAST always LAST</p><p> irrecv.enableIRIn(); </p><p>}</p><p>int8_t input = 1;</p><p>[/CODE]</p><p></p><p><strong>Void Loop</strong></p><p>[CODE]</p><p>void loop() {</p><p> // This checks WM8805 status</p><p> if (input > 1) {</p><p> uint8_t INTSTAT = ReadRegister(wm8805, 11); // poll (and clear) interrupt register;</p><p> uint8_t SPDSTAT = ReadRegister(wm8805, 12);</p><p> uint8_t SampleRate = (SPDSTAT >> 4) & 0x07;</p><p> if (INTSTAT != 0 || SampleRate != SampleRateOld) {</p><p> // If something has changed do a screen refresh.</p><p> Serial.print("INTSTAT:");Serial.println(INTSTAT,HEX);</p><p> Serial.print("SPDSTAT:");Serial.println(SPDSTAT,HEX);</p><p> Serial.print("Sample rate:");</p><p> switch (SampleRate) {</p><p> case 0x03:</p><p> Serial.println("32 kHz"); </p><p> break;</p><p> case 0x02:</p><p> Serial.println("44 / 48 kHz"); </p><p> break;</p><p> case 0x01:</p><p> Serial.println("88 / 96 kHz"); </p><p> break;</p><p> case 0x00:</p><p> Serial.println("176/192 kHz"); </p><p> break;</p><p> default:</p><p> Serial.println("Unlocked"); </p><p> break;</p><p> }</p><p> SampleRateOld = SampleRate;</p><p> }</p><p> if (SampleRate & 0x04) {</p><p> // If this is unlocked then try and switch around normal and 192khz mode</p><p> // until it locks. That is kinda hackish but it seems to work.</p><p> if (toggle) {</p><p> Serial.println("trying 192 kHz mode...");</p><p> WriteRegister(wm8805, 6, 8); // set PLL_N to 8</p><p> WriteRegister(wm8805, 5, 12); // set PLL_K to 0C49BA (0C)</p><p> WriteRegister(wm8805, 4, 73); // set PLL_K to 0C49BA (49)</p><p> WriteRegister(wm8805, 3, 186); // set PLL_K to 0C49BA (BA)</p><p> //WriteRegister(wm8805, 29, 1); // This might not be needed set SPD_192K_EN to 1</p><p> toggle = 0;</p><p> } else {</p><p> Serial.println("trying normal mode...");</p><p> WriteRegister(wm8805, 6, 7); // set PLL_N to 7</p><p> WriteRegister(wm8805, 5, 54); // set PLL_K to 36FD21 (36)</p><p> WriteRegister(wm8805, 4, 253); // set PLL_K to 36FD21 (FD)</p><p> WriteRegister(wm8805, 3, 33); // set PLL_K to 36FD21 (21)</p><p> //WriteRegister(wm8805, 29, 0); // This might not be needed set SPD_192K_EN to 0</p><p> toggle = 1;</p><p> } // if toggle</p><p> delay(25); // Give some time for WM8805 to lock</p><p> }</p><p> }</p><p> // This is the IR remote checks</p><p> if (irrecv.decode(&results)) {</p><p> Serial.println(results.value, HEX);</p><p> switch (results.value) {</p><p> case 0x77E15034: //SPDIF1 BNC Input1</p><p> if (input == 2) break;</p><p> else input = 2;</p><p> WriteRegister(wm8805, 8, B00011000); // Select Input 1 </p><p> break;</p><p> case 0x77E16034: //SPDIF2 Coaxial Input2</p><p> if (input == 3) break;</p><p> else input = 3;</p><p> WriteRegister(wm8805, 8, B00011001); // Select Input 2 </p><p> break;</p><p> case 0x77E13034: //SPDIF3 AES Input3</p><p> if (input == 4) break;</p><p> else input = 4;</p><p> WriteRegister(wm8805, 8, B00011010); // Select Input 3 </p><p> break;</p><p> case 0x77E19034: //SPDIF4 Toslink Input4</p><p> if (input == 5) break;</p><p> else input = 5;</p><p> WriteRegister(wm8805, 8, B00011011); // Select RX3 </p><p> break;</p><p> case 0x77E1C034: //Display off</p><p> break;</p><p> }</p><p> irrecv.resume(); //Restart the receiver - Receive the next value</p><p> }</p><p>}</p><p></p><p>byte ReadRegister(int devaddr, int regaddr) { // Read a data register value</p><p> Wire.beginTransmission(devaddr);</p><p> Wire.write(regaddr);</p><p> Wire.endTransmission(false); // repeated start condition: don't send stop condition, keeping connection alive.</p><p> Wire.requestFrom(devaddr, 1); // only one byte</p><p> byte data = Wire.read();</p><p> Wire.endTransmission(true);</p><p> return data;</p><p>}</p><p></p><p>void WriteRegister(int devaddr, int regaddr, int dataval) { // Write a data register value</p><p> Wire.beginTransmission(devaddr); // device</p><p> Wire.write(regaddr); // register</p><p> Wire.write(dataval); // data</p><p> Wire.endTransmission(true);</p><p>}</p><p></p><p>void DeviceInit(int devaddr) { // resets, initializes and powers a wm8805</p><p> // reset device</p><p> WriteRegister(devaddr, 0, 0);</p><p></p><p> // REGISTER 7</p><p> // bit 7:6 - always 0</p><p> // bit 5:4 - CLKOUT divider select => 00 = 512 fs, 01 = 256 fs, 10 = 128 fs, 11 = 64 fs</p><p> // bit 3 - MCLKDIV select => 0</p><p> // bit 2 - FRACEN => 1</p><p> // bit 1:0 - FREQMODE (is written by S/PDIF receiver) => 00</p><p> WriteRegister(devaddr, 7, B00000100);</p><p></p><p> // REGISTER 8</p><p> // set clock outputs and turn off last data hold</p><p> // bit 7 - MCLK output source select is CLK2 => 0</p><p> // bit 6 - always valid => 0</p><p> // bit 5 - fill mode select => 1 (we need to see errors when they happen)</p><p> // bit 4 - CLKOUT pin disable => 1</p><p> // bit 3 - CLKOUT pin select is CLK1 => 0</p><p> // bit 2:0 - always 0</p><p> WriteRegister(devaddr, 8, B00110000);</p><p></p><p> // set masking for interrupts</p><p> WriteRegister(devaddr, 10, 126); // 1+2+3+4+5+6 => 0111 1110. We only care about unlock and rec_freq</p><p></p><p> // set the AIF TX</p><p> // bit 7:6 - always 0</p><p> // bit 5 - LRCLK polarity => 0</p><p> // bit 4 - BCLK invert => 0</p><p> // bit 3:2 - data word length => 10 (24b) or 00 (16b)</p><p> // bit 1:0 - format select: 11 (dsp), 10 (i2s), 01 (LJ), 00 (RJ)</p><p> WriteRegister(devaddr, 27, B00001010);</p><p></p><p> // set the AIF RX</p><p> // bit 7 - SYNC => 1</p><p> // bit 6 - master mode => 1</p><p> // bit 5 - LRCLK polarity => 0</p><p> // bit 4 - BCLK invert => 0</p><p> // bit 3:2 - data word length => 10 (24b) or 00 (16b)</p><p> // bit 1:0 - format select: 11 (dsp), 10 (i2s), 01 (LJ), 00 (RJ)</p><p> WriteRegister(devaddr, 28, B11001010);</p><p></p><p> // set PLL K and N factors</p><p> // this should be sample rate dependent, but makes hardly any difference</p><p> WriteRegister(devaddr, 6, 7); // set PLL_N to 7</p><p> WriteRegister(devaddr, 5, 0x36); // set PLL_K to 36FD21 (36)</p><p> WriteRegister(devaddr, 4, 0xFD); // set PLL_K to 36FD21 (FD)</p><p> WriteRegister(devaddr, 3, 0x21); // set PLL_K to 36FD21 (21)</p><p></p><p> // set all inputs for TTL</p><p> WriteRegister(devaddr, 9, 0);</p><p></p><p> // power up device</p><p> WriteRegister(devaddr, 30, 0);</p><p></p><p> // select input</p><p> // bit 7 - MCLK Output Source Select => 0 (CLK2)</p><p> // bit 6 - Always Valid Select => 0</p><p> // bit 5 - Fill Mode Select => 0</p><p> // bit 4 - CLKOUT Pin Disable => 1</p><p> // bit 3 - CLKOUT Pin Source Select => 1)</p><p> // bit 2:0 - S/PDIF Rx Input Select: 000 BNC RX0, 001 Coaxial RX1, 010 AES-ABU RX2, 011 Toshlinkβ RX3, 100 SPDIF-5 RX4, 101 SPDIF-6 RX5, 110 SPDIF-7 RX6, 111 SPDIF-8 RX7</p><p> //WriteRegister(devaddr, 8, B00011000); // Select Input 1 (Coax)</p><p>}</p><p>[/CODE]</p></blockquote><p></p>
[QUOTE="lemon, post: 1057777837, member: 16016"] Λοιπόν έχει περάσει τόσος καιρός και δεν αξιωθήκαμε να δώσουμε τον κώδικα για το 8805. Δεν είμαι σίγουρος ότι έχω κάνει καλή δουλειά, γιατί για να μη μπλέξουμε πρέπει να δοθεί μόνο ο πηγαίος κώδικας δίχως εντολές για συγκεκριμένου τύπου οθόνη. Επειδή έβγαλα αρκετό μέρος από τον κώδικα όπου αφορούσε την οθόνη αλλά και άλλες λειτουργίες εκτός του 8805, πιθανόν να έχουν μείνει κάποια "σκουπίδια" Ο κώδικας περιλαμβάνει ρουτίνα τηλεχειριστηρίου για επιλογή εισόδων (4άρων), κάθε είσοδος έχει δική της μεταβλητή που αντιστοιχεί στον κώδικα που αντιστοιχεί σε συγκεκριμένο κουμπί του τηλεχειριστηρίου το οποίο και δηλώνεται στην αρχή (define) και έπειτα καλείται μέσα στη ρουτίνα switch (results.value) με τις συνθήκες της σε κάθε switch. Δεν περιλαμβάνει encoder, γιατί είχε επιλεχθεί εξ' αρχής χρήση μόνο τηλεχειριστηρίου. [B]Include & define[/B] [CODE] #include <Wire.h> #include <IRremote.h> //--------WM8805 setup uint8_t wm8805 = 58; // device wm8805, 58d = 0x3A = 0111010 (see datasheet pp. 17, table 11) uint8_t toggle = 0; #define IRCONTROL // Comment out when using the IR control functionality. #define RECV_PIN 23 // IR Receiver input pin on atmega // Write the IR Code of each button, then trasfer them to case function #define POWER_CODE 0x77E1C034 // Code for display power on/off //#define POWER_CODE 0x8322A15E // Code for display power on/off #define SPDIF1_SOURCE1_CODE 0x77E15034 // Code for spdif source 1, Bnc //#define SPDIF1_SOURCE1_CODE 0x8322A25D // Code for spdif source 1, Bnc #define SPDIF2_SOURCE1_CODE 0x77E16034 // Code for spdif source 2, Coax //#define SPDIF2_SOURCE1_CODE 0x8322A45B // Code for spdif source 2, Coax #define SPDIF3_SOURCE1_CODE 0x77E13034 // Code for spdif source 3, Aes //#define SPDIF3_SOURCE1_CODE 0x8322A35C // Code for spdif source 3, Aes #define SPDIF4_SOURCE1_CODE 0x77E19034 // Code for spdif source 4, Toslink //#define SPDIF4_SOURCE1_CODE 0x8322A55A // Code for spdif source 4, Toslink #ifdef IRCONTROL IRrecv irrecv(RECV_PIN); decode_results results; #endif IRCONTROL [/CODE] [B]Void setup[/B] [CODE] void setup() { // WM8805 Reset pin // Keep it in Reset state until we are ready to talk to it pinMode(2, OUTPUT); digitalWrite(2, LOW); // Initialize Serial and Hello! Serial.begin(115200); Serial.println("Hello!"); // Initialize WM8805 digitalWrite(2, HIGH); // Start WM8805 delay(100); // Wait for 100ms and then start talking to it Wire.begin(); // for WM8805 Wire.beginTransmission(wm8805); // Check there is a WM8805 uint8_t error = Wire.endTransmission(); // on the I2C bus if (error == 0) { Serial.println("WM8805 found!"); } else if (error == 4) { Serial.println("Unknown error at address 0x3A"); } else { Serial.println("No response from WM8805!"); } Serial.print("Device ID: "); byte c = ReadRegister(wm8805, 1); if (c < 10) Serial.print('0'); Serial.print(c, HEX); c = ReadRegister(wm8805, 0); if (c < 10) Serial.print('0'); Serial.print(c, HEX); Serial.print(" Rev. "); c = ReadRegister(wm8805, 2); Serial.println(c, HEX); DeviceInit(wm8805); delay(500); // Start the IR receiver -- LAST always LAST irrecv.enableIRIn(); } int8_t input = 1; [/CODE] [B]Void Loop[/B] [CODE] void loop() { // This checks WM8805 status if (input > 1) { uint8_t INTSTAT = ReadRegister(wm8805, 11); // poll (and clear) interrupt register; uint8_t SPDSTAT = ReadRegister(wm8805, 12); uint8_t SampleRate = (SPDSTAT >> 4) & 0x07; if (INTSTAT != 0 || SampleRate != SampleRateOld) { // If something has changed do a screen refresh. Serial.print("INTSTAT:");Serial.println(INTSTAT,HEX); Serial.print("SPDSTAT:");Serial.println(SPDSTAT,HEX); Serial.print("Sample rate:"); switch (SampleRate) { case 0x03: Serial.println("32 kHz"); break; case 0x02: Serial.println("44 / 48 kHz"); break; case 0x01: Serial.println("88 / 96 kHz"); break; case 0x00: Serial.println("176/192 kHz"); break; default: Serial.println("Unlocked"); break; } SampleRateOld = SampleRate; } if (SampleRate & 0x04) { // If this is unlocked then try and switch around normal and 192khz mode // until it locks. That is kinda hackish but it seems to work. if (toggle) { Serial.println("trying 192 kHz mode..."); WriteRegister(wm8805, 6, 8); // set PLL_N to 8 WriteRegister(wm8805, 5, 12); // set PLL_K to 0C49BA (0C) WriteRegister(wm8805, 4, 73); // set PLL_K to 0C49BA (49) WriteRegister(wm8805, 3, 186); // set PLL_K to 0C49BA (BA) //WriteRegister(wm8805, 29, 1); // This might not be needed set SPD_192K_EN to 1 toggle = 0; } else { Serial.println("trying normal mode..."); WriteRegister(wm8805, 6, 7); // set PLL_N to 7 WriteRegister(wm8805, 5, 54); // set PLL_K to 36FD21 (36) WriteRegister(wm8805, 4, 253); // set PLL_K to 36FD21 (FD) WriteRegister(wm8805, 3, 33); // set PLL_K to 36FD21 (21) //WriteRegister(wm8805, 29, 0); // This might not be needed set SPD_192K_EN to 0 toggle = 1; } // if toggle delay(25); // Give some time for WM8805 to lock } } // This is the IR remote checks if (irrecv.decode(&results)) { Serial.println(results.value, HEX); switch (results.value) { case 0x77E15034: //SPDIF1 BNC Input1 if (input == 2) break; else input = 2; WriteRegister(wm8805, 8, B00011000); // Select Input 1 break; case 0x77E16034: //SPDIF2 Coaxial Input2 if (input == 3) break; else input = 3; WriteRegister(wm8805, 8, B00011001); // Select Input 2 break; case 0x77E13034: //SPDIF3 AES Input3 if (input == 4) break; else input = 4; WriteRegister(wm8805, 8, B00011010); // Select Input 3 break; case 0x77E19034: //SPDIF4 Toslink Input4 if (input == 5) break; else input = 5; WriteRegister(wm8805, 8, B00011011); // Select RX3 break; case 0x77E1C034: //Display off break; } irrecv.resume(); //Restart the receiver - Receive the next value } } byte ReadRegister(int devaddr, int regaddr) { // Read a data register value Wire.beginTransmission(devaddr); Wire.write(regaddr); Wire.endTransmission(false); // repeated start condition: don't send stop condition, keeping connection alive. Wire.requestFrom(devaddr, 1); // only one byte byte data = Wire.read(); Wire.endTransmission(true); return data; } void WriteRegister(int devaddr, int regaddr, int dataval) { // Write a data register value Wire.beginTransmission(devaddr); // device Wire.write(regaddr); // register Wire.write(dataval); // data Wire.endTransmission(true); } void DeviceInit(int devaddr) { // resets, initializes and powers a wm8805 // reset device WriteRegister(devaddr, 0, 0); // REGISTER 7 // bit 7:6 - always 0 // bit 5:4 - CLKOUT divider select => 00 = 512 fs, 01 = 256 fs, 10 = 128 fs, 11 = 64 fs // bit 3 - MCLKDIV select => 0 // bit 2 - FRACEN => 1 // bit 1:0 - FREQMODE (is written by S/PDIF receiver) => 00 WriteRegister(devaddr, 7, B00000100); // REGISTER 8 // set clock outputs and turn off last data hold // bit 7 - MCLK output source select is CLK2 => 0 // bit 6 - always valid => 0 // bit 5 - fill mode select => 1 (we need to see errors when they happen) // bit 4 - CLKOUT pin disable => 1 // bit 3 - CLKOUT pin select is CLK1 => 0 // bit 2:0 - always 0 WriteRegister(devaddr, 8, B00110000); // set masking for interrupts WriteRegister(devaddr, 10, 126); // 1+2+3+4+5+6 => 0111 1110. We only care about unlock and rec_freq // set the AIF TX // bit 7:6 - always 0 // bit 5 - LRCLK polarity => 0 // bit 4 - BCLK invert => 0 // bit 3:2 - data word length => 10 (24b) or 00 (16b) // bit 1:0 - format select: 11 (dsp), 10 (i2s), 01 (LJ), 00 (RJ) WriteRegister(devaddr, 27, B00001010); // set the AIF RX // bit 7 - SYNC => 1 // bit 6 - master mode => 1 // bit 5 - LRCLK polarity => 0 // bit 4 - BCLK invert => 0 // bit 3:2 - data word length => 10 (24b) or 00 (16b) // bit 1:0 - format select: 11 (dsp), 10 (i2s), 01 (LJ), 00 (RJ) WriteRegister(devaddr, 28, B11001010); // set PLL K and N factors // this should be sample rate dependent, but makes hardly any difference WriteRegister(devaddr, 6, 7); // set PLL_N to 7 WriteRegister(devaddr, 5, 0x36); // set PLL_K to 36FD21 (36) WriteRegister(devaddr, 4, 0xFD); // set PLL_K to 36FD21 (FD) WriteRegister(devaddr, 3, 0x21); // set PLL_K to 36FD21 (21) // set all inputs for TTL WriteRegister(devaddr, 9, 0); // power up device WriteRegister(devaddr, 30, 0); // select input // bit 7 - MCLK Output Source Select => 0 (CLK2) // bit 6 - Always Valid Select => 0 // bit 5 - Fill Mode Select => 0 // bit 4 - CLKOUT Pin Disable => 1 // bit 3 - CLKOUT Pin Source Select => 1) // bit 2:0 - S/PDIF Rx Input Select: 000 BNC RX0, 001 Coaxial RX1, 010 AES-ABU RX2, 011 Toshlinkβ RX3, 100 SPDIF-5 RX4, 101 SPDIF-6 RX5, 110 SPDIF-7 RX6, 111 SPDIF-8 RX7 //WriteRegister(devaddr, 8, B00011000); // Select Input 1 (Coax) } [/CODE] [/QUOTE]
Verification
Post reply
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
WM8805 receiver
Top
Bottom
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…