<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; CS8416 + WM8740]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=226&amp;type=atom" />
	<updated>2022-12-28T13:55:58Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=226</id>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7146#p7146" />
			<content type="html"><![CDATA[<p>Проще полностью разделить управление микросхемами, так они точно будут работать.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-28T13:55:58Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7146#p7146</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7145#p7145" />
			<content type="html"><![CDATA[<p>Большое вам спасибо! После беглого просмотра возник всего один вопрос: а разве выводы CLK и&nbsp; DATA у первой и второй WM8740 не равноценны и не стоит ли их объединить?</p>]]></content>
			<author>
				<name><![CDATA[vintick]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1938</uri>
			</author>
			<updated>2022-12-28T13:53:14Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7145#p7145</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7144#p7144" />
			<content type="html"><![CDATA[<p>Скетч для теста готов</p><p>Значения регистров изменены для работы в дифференциальном режиме:</p><p>&nbsp; // Write WM8740_1 SPI<br />&nbsp; wireWrite_1(0b000100000000);//reg0<br />&nbsp; wireWrite_1(0b001100000000);//reg1<br />&nbsp; wireWrite_1(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2<br />&nbsp; wireWrite_1(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3<br />&nbsp; wireWrite_1(0b110000010000);//reg4 [5:4] = 01 MONO LEFT</p><p>&nbsp; // Write WM8740_2 SPI<br />&nbsp; wireWrite_2(0b000100000000);//reg0<br />&nbsp; wireWrite_2(0b001100000000);//reg1<br />&nbsp; wireWrite_2(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2<br />&nbsp; wireWrite_2(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3<br />&nbsp; wireWrite_2(0b110000110000);//reg4 [5:4] = 11 MONO RIGHT</p><p>Пины для подключения второй WM8740 указаны</p><p>#define CS_2&nbsp; &nbsp;5&nbsp; // ML WM8740_2<br />#define CLK_2&nbsp; 6&nbsp; // MC WM8740_2<br />#define DATA_2 7&nbsp; // MD WM8740_2</p><p>Тестируйте, если возникнут вопросы, пишите.</p><div class="codebox"><pre><code>#define CS_1   2  // ML WM8740_1
#define CLK_1  3  // MC WM8740_1
#define DATA_1 4  // MD WM8740_1

#define CS_2   5  // ML WM8740_2
#define CLK_2  6  // MC WM8740_2
#define DATA_2 7  // MD WM8740_2
 
#include &lt;Wire.h&gt; 
#include &lt;EEPROM.h&gt;
#include &lt;Encoder.h&gt;  // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include &lt;MsTimer2.h&gt; // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include &lt;LiquidCrystal_I2C.h&gt; //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
 LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
 Encoder myEnc(9, 8);//CLK, DT
      byte v1[8] = {0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07};
      byte v2[8] = {0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00};      
      byte v3[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F};
      byte v4[8] = {0x1F,0x1F,0x00,0x00,0x00,0x00,0x1F,0x1F};
      byte v5[8] = {0x1C,0x1C,0x00,0x00,0x00,0x00,0x1C,0x1C};
      byte v6[8] = {0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C};
      byte v7[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07};
      byte v8[8] = {0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00};
      int a[3],vol,vol_d,menu,in,dem,form;
      byte i,d1,d2,d3,d4,d5,d6,e1,e2,e3;
      unsigned long times,times1,oldPosition  = -999,newPosition;
      bool w,w1,www=1,mute;
      byte rol,dac_i2s,dac_iw,dem_res,for_dac,for_res,err,err_old;
 
void setup(){
   Wire.begin();
   Serial.begin(9600);
   MsTimer2::set(1, to_Timer);MsTimer2::start();
   lcd.init();lcd.backlight();
   lcd.createChar(1, v1);lcd.createChar(2, v2);lcd.createChar(3, v3);lcd.createChar(4, v4);lcd.createChar(5, v5);lcd.createChar(6, v6);lcd.createChar(7, v7);lcd.createChar(8, v8);
   pinMode(10,INPUT);   // SW энкодер
   pinMode(11,INPUT_PULLUP); // кнопка MUTE      
   pinMode(CS_1,OUTPUT);  // ML WM8740_1
   pinMode(CLK_1,OUTPUT); // MC WM8740_1
   pinMode(DATA_1,OUTPUT);// MD WM8740_1
   pinMode(CS_2,OUTPUT);  // ML WM8740_2
   pinMode(CLK_2,OUTPUT); // MC WM8740_2
   pinMode(DATA_2,OUTPUT);// MD WM8740_2
  if(EEPROM.read(100)!=0){for(int i=0;i&lt;101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении 
  vol = EEPROM.read(0);in = EEPROM.read(1);dem_res = EEPROM.read(3);for_dac = EEPROM.read(4);for_res = EEPROM.read(5);
  dac_i2s = EEPROM.read(6);dac_iw = EEPROM.read(7);rol = EEPROM.read(8);
   lcd.setCursor(0,0);lcd.print(&quot; CS8416  WM8740 &quot;);
   lcd.setCursor(0,1);lcd.print(&quot; 24 bit  192kHz &quot;);
  // Write WM8740_1 SPI
  wireWrite_1(0b000100000000);//reg0
  wireWrite_1(0b001100000000);//reg1
  wireWrite_1(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2
  wireWrite_1(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  wireWrite_1(0b110000010000);//reg4 [5:4] = 01 MONO LEFT
  // Write WM8740_2 SPI
  wireWrite_2(0b000100000000);//reg0
  wireWrite_2(0b001100000000);//reg1
  wireWrite_2(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2
  wireWrite_2(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  wireWrite_2(0b110000110000);//reg4 [5:4] = 11 MONO RIGHT
// Write 8416 I2C
  Wire.beginTransmission(0x10);
  Wire.write (0x00);
  Wire.write (0b00000000);
  Wire.write (0b10000010);
  Wire.write (0b00000000 + (dem_res &lt;&lt; 4));
  Wire.write (0b00000000);
  Wire.write (0b10000000 + (in &lt;&lt; 3));
  Wire.write (0b10000000 + (for_res));
  Wire.write (0xFF);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.endTransmission();
  delay(2000);lcd.clear();
  // Write WM8740_1 SPI
  wireWrite_1(0b000100000000 + vol);//reg0
  wireWrite_1(0b001100000000 + vol);//reg1
  wireWrite_2(0b000100000000 + vol);//reg0
  wireWrite_2(0b001100000000 + vol);//reg1
  }
 
void loop(){ 
 /// MENU //////////////////////////////
  if(digitalRead(10)==LOW){menu++;if(menu&gt;4){menu=0;};delay(200);lcd.clear();times=millis();w=1;w1=1;www=1;}
 /// MUTE /////////////////////////////
 if(digitalRead(11)==LOW &amp;&amp; mute==0){mute=1; wireWrite_1(0b010000000001 + (dac_iw &lt;&lt; 3));wireWrite_2(0b010000000001 + (dac_iw &lt;&lt; 3));delay(300);www=1;} 
 if(digitalRead(11)==LOW &amp;&amp; mute==1){mute=0; wireWrite_1(0b010000000000 + (dac_iw &lt;&lt; 3));wireWrite_2(0b010000000000 + (dac_iw &lt;&lt; 3));delay(300);www=1;} 
 
   if(menu==0){
  if (newPosition != oldPosition){oldPosition = newPosition;www=0;
     vol=vol-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;
      if(vol&lt;155){vol=155;}if(vol&gt;255){vol=255;}
    wireWrite_1(0b000100000000 + vol);//reg0
    wireWrite_1(0b001100000000 + vol);//reg1
    wireWrite_2(0b000100000000 + vol);//reg0
    wireWrite_2(0b001100000000 + vol);//reg1
    Serial.println(vol);// vol = 155...255 step 0.5 dB
  }
  if(www==1||w==1){www=0;w=0;
      if(mute==1){         lcd.setCursor(0,0);lcd.print(&quot;MUTE    &quot;);}
      if(err==0&amp;&amp;mute==0){ lcd.setCursor(0,0);lcd.print(&quot;VOLUME  &quot;);}
      if(err==22&amp;&amp;mute==0){lcd.setCursor(0,0);lcd.print(&quot;ERROR   &quot;);}
      if(err==8&amp;&amp;mute==0){ lcd.setCursor(0,0);lcd.print(&quot;NO SOUND&quot;);}
 
      lcd.setCursor(0,1);lcd.print(&quot;COAX &quot;);lcd.print(in);
     vol_d=vol-156;a[0]=vol_d/10;a[1]=vol_d%10;
      for(i=0;i&lt;2;i++){
      switch(i){
        case 0: e1=9,e2=10,e3=11;break;
        case 1: e1=12,e2=13,e3=14;break;
        }
      switch(a[i]){
        case 0: d1=1,d2=8,d3=6,d4=1,d5=3,d6=6;break;
        case 1: d1=32,d2=2,d3=6,d4=32,d5=32,d6=6;break;
        case 2: d1=2,d2=8,d3=6,d4=1,d5=4,d6=5;break;
        case 3: d1=2,d2=4,d3=6,d4=7,d5=3,d6=6;break;
        case 4: d1=1,d2=3,d3=6,d4=32,d5=32,d6=6;break;
        case 5: d1=1,d2=4,d3=5,d4=7,d5=3,d6=6;break;
        case 6: d1=1,d2=4,d3=5,d4=1,d5=3,d6=6;break;
        case 7: d1=1,d2=8,d3=6,d4=32,d5=32,d6=6;break;
        case 8: d1=1,d2=4,d3=6,d4=1,d5=3,d6=6;break;
        case 9: d1=1,d2=4,d3=6,d4=7,d5=3,d6=6;break;
    }
      lcd.setCursor(e1,0);lcd.write((uint8_t)d1);lcd.setCursor(e2,0);lcd.write((uint8_t)d2);lcd.setCursor(e3,0);lcd.write((uint8_t)d3);
      lcd.setCursor(e1,1);lcd.write((uint8_t)d4);lcd.setCursor(e2,1);lcd.write((uint8_t)d5);lcd.setCursor(e3,1);lcd.write((uint8_t)d6);
 }}}
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 //////// INPUT ////////////////////////////////////  
  if(menu==1){
    if (newPosition != oldPosition){oldPosition = newPosition;
     in=in-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;
      if(in&lt;0){in=0;}if(in&gt;7){in=7;}
  Wire.beginTransmission(0x10);
  Wire.write (0x00);
  Wire.write (0b00000000);
  Wire.write (0b10000010);
  Wire.write (0b00000000 + (dem_res &lt;&lt; 4));
  Wire.write (0b00000000);
  Wire.write (0b10000000 + (in &lt;&lt; 3));
  Wire.write (0b10000000 + (for_res));
  Wire.write (0xFF);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.endTransmission();}
  delay(10);
  if(www==1||w==1){www=0;w=0;
  lcd.setCursor(0,0);lcd.print(&quot;INPUT SELECTOR&quot;);  
  lcd.setCursor(0,1);lcd.print(&quot;COAXIAL &quot;); lcd.print(in);lcd.print(&quot; &quot;);
  }}
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
   /// DE-EMPHASIS //////////////////////////////////
  if(menu==2){
    if (newPosition != oldPosition){oldPosition = newPosition;
     dem=dem-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;
      if(dem&lt;0){dem=0;}if(dem&gt;3){dem=3;}
 
  Wire.beginTransmission(0x10);
  Wire.write (0x00);
  Wire.write (0b00000000);
  Wire.write (0b10000010);
  Wire.write (0b00000000 + (dem_res &lt;&lt; 4));
  Wire.write (0b00000000);
  Wire.write (0b10000000 + (in &lt;&lt; 3));
  Wire.write (0b10000000 + (for_res));
  Wire.write (0xFF);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.endTransmission();
  delay(10);
  }
  if(www==1||w==1){www=0;w=0;
  lcd.setCursor(0,0);lcd.print(&quot;DE-EMPHASIS SEL&quot;);  
  lcd.setCursor(0,1);
  switch(dem){
  case 0: lcd.print(&quot;No De-emphasis&quot;);dem_res=0;break;
  case 1: lcd.print(&quot;44.1 kHz      &quot;);dem_res=2;break;
  case 2: lcd.print(&quot;48.0 kHz      &quot;);dem_res=3;break;
  case 3: lcd.print(&quot;32.0 kHz      &quot;);dem_res=1;break;
  }}}
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
   ///  FILTER ROLL-OFF //////////////////////////////////
  if(menu==3){
    if (newPosition != oldPosition){oldPosition = newPosition;
     rol=rol-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;
      if(rol&lt;0){rol=0;}if(rol&gt;1){rol=1;}
 
  wireWrite_1(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  wireWrite_2(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  delay(10);
  }
  if(www==1||w==1){www=0;w=0;
  lcd.setCursor(0,0);lcd.print(&quot;ROLL-OFF SELECT &quot;);  
  lcd.setCursor(0,1);
  switch(rol){
  case 0: lcd.print(&quot;Sharp&quot;);break;
  case 1: lcd.print(&quot;Slow &quot;);break;
  }}}
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
   /// Serial Format Select //////////////////////////////////
  if(menu==4){
    if (newPosition != oldPosition){oldPosition = newPosition;
     form=form-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;
     if(form&lt;0){form=0;}if(form&gt;2){form=2;}
 
  Wire.beginTransmission(0x10);
  Wire.write (0x00);
  Wire.write (0b00000000);
  Wire.write (0b10000010);
  Wire.write (0b00000000 + (dem_res &lt;&lt; 4));
  Wire.write (0b00000000);
  Wire.write (0b10000000 + (in &lt;&lt; 3));
  Wire.write (0b10000000 + (for_res));
  Wire.write (0xFF);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.write (0x00);
  Wire.endTransmission();
  delay(10);
  wireWrite_1(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2
  wireWrite_1(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  wireWrite_2(0b010111100000 + (dac_iw &lt;&lt; 3));//reg2
  wireWrite_2(0b011000000000 + dac_i2s + (rol &lt;&lt; 3));//reg3
  delay(10);
  }
  if(www==1||w==1){www=0;w=0;
  lcd.setCursor(0,0);lcd.print(&quot;FORMAT SELECT&quot;);  
  lcd.setCursor(0,1);
  switch(form){
  case 0: lcd.print(&quot;L-Just 24 bit&quot;);dac_i2s=0;dac_iw=3;for_res=0;break;
  case 1: lcd.print(&quot;I2S    24 bit&quot;);dac_i2s=1;dac_iw=1;for_res=5;break;
  case 2: lcd.print(&quot;R-Just 24 bit&quot;);dac_i2s=0;dac_iw=2;for_res=8;break;
  }}}
  ////////////////////////////////////////////////////////////////////////////////////////////////////////
 
  /// read registr error 
  if(millis()-times1&gt;1000){times1=millis();err = wireRead(0x10,0x0C);delay(10);}
  if(err!=err_old){err_old = err;www=1;}       
  /// EEPROM write
  if(millis()-times&gt;10000 &amp;&amp; w1==1){w1=0;EEPROM.update(0,vol);EEPROM.update(1,in);
  EEPROM.update(3,dem_res);EEPROM.update(4,for_dac);EEPROM.update(5,for_res);
  EEPROM.update(6,dac_i2s);EEPROM.update(7,dac_iw);EEPROM.update(8,rol);
  menu=0;www=1;if(menu!=0){lcd.clear();}}
  delay(100);
  }// loop  
 
void wireWrite_1(int data_1){        // SPI
  digitalWrite(CLK_1,HIGH);digitalWrite(CS_1,HIGH);delay(1);
     for(int i = 15; i &gt;= 0; i--){
        digitalWrite(CLK_1,LOW);
        digitalWrite(DATA_1, (data_1 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(CLK_1,HIGH);delay(1);}
  digitalWrite(CS_1,LOW);delay(1);digitalWrite(CS_1,HIGH);
  }
void wireWrite_2(int data_2){        // SPI
  digitalWrite(CLK_2,HIGH);digitalWrite(CS_2,HIGH);delay(1);
     for(int i = 15; i &gt;= 0; i--){
        digitalWrite(CLK_2,LOW);
        digitalWrite(DATA_2, (data_2 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(CLK_2,HIGH);delay(1);}
  digitalWrite(CS_2,LOW);delay(1);digitalWrite(CS_2,HIGH);
  }  
 
byte wireRead(int addr, int reg){ // I2C
  Wire.beginTransmission(addr);
  Wire.write (reg);
  Wire.endTransmission();
  delay(10);
  Wire.requestFrom(addr,1);
  while(Wire.available()&lt;1);
  byte value = Wire.read();
  return value;
  }  
 
void to_Timer(){newPosition = myEnc.read()/4;}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-28T12:02:49Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7144#p7144</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7143#p7143" />
			<content type="html"><![CDATA[<p>Заранее Вас благодарю!</p>]]></content>
			<author>
				<name><![CDATA[vintick]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1938</uri>
			</author>
			<updated>2022-12-28T11:48:11Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7143#p7143</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7142#p7142" />
			<content type="html"><![CDATA[<p>Хорошо, я подготовлю скетч и опубликую его на форуме.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-28T11:35:21Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7142#p7142</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7141#p7141" />
			<content type="html"><![CDATA[<p>Здравствуйте! Схемные изменения меня не пугают. Не первый год с паяльником.&nbsp; Разработать схему и плату, смогу (хоть и не по &quot;феншую&quot;). А вот с прошивкой - проблема! Сборкой смогу заняться только после праздников и соответственно протестировать прошивку (если вы её мне напишите). Все риски и проблемы я принимаю на себя. Соответственно о результатах отпишусь.</p>]]></content>
			<author>
				<name><![CDATA[vintick]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1938</uri>
			</author>
			<updated>2022-12-28T10:54:25Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7141#p7141</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7140#p7140" />
			<content type="html"><![CDATA[<p>В регистре 4 есть настройки режима работы:</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/12/e1e38dd34cdf74fd3fb6adcec733284b.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/12/e1e38dd34cdf74fd3fb6adcec733284b.png" /></span> </p><p>Можно подключить два WM8740, но управление должно быть разделено.</p><p>#define CS1&nbsp; &nbsp;2&nbsp; // ML WM8740<br />#define CLK1&nbsp; 3&nbsp; // MC WM8740<br />#define DATA1 4&nbsp; // MD WM8740</p><p>#define CS2&nbsp; &nbsp;5&nbsp; // ML WM8740<br />#define CLK2&nbsp; 6&nbsp; // MC WM8740<br />#define DATA2 7&nbsp; // MD WM8740</p><p>Но у меня нет возможности в железе собрать ЦАП с двумя WM8740 и протестировать скетч.</p><p>Так же в датащите указано что<br />To control the WM8740 in software differential mode register M4 must be written to. A ‘key’ register<br />write must be made to register M2 to allow access to register M4 which is ‘locked’ as default. Bits B5<br />to B8 of register M2 must be set to ‘1’ (0x01e0).<br />With register M4 ‘unlocked’, bits B4 and B5 may be used to set the required differential output mode;<br />normal stereo, reversed stereo, mono left or mono right, as shown in Table 18.</p><p>В регистр 2 биты с 5 по 8 должна быть установлена 1, для разрешения работы в указанном Вами режиме</p><p>Так же следует применить схему фильтра указанную в даташите для каждого WM8740</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/12/4a289c582d1f398354db0392e01b96d6.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/12/4a289c582d1f398354db0392e01b96d6.png" /></span> </p><br /><p>Я не уверен что этот режим мне удасться правильно запустить, не имея собранную схему</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-28T09:44:45Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7140#p7140</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7139#p7139" />
			<content type="html"><![CDATA[<p>Проект меня заинтересовал. В заначке имеется всё. Только хотелось-бы dual-mono. Я в написании программ профан и по этому , прошу вас переписать под этот вариант программу. Заранее благодарен вам!</p>]]></content>
			<author>
				<name><![CDATA[vintick]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1938</uri>
			</author>
			<updated>2022-12-28T09:18:29Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7139#p7139</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7107#p7107" />
			<content type="html"><![CDATA[<p>Уже час как работает без зависаний. Всё-таки увеличение ёмкости электролитов свою роль сыграло. Резистор на Reset поставил на всякий случай. Но и без него всё ОК.</p>]]></content>
			<author>
				<name><![CDATA[andr_us]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1707</uri>
			</author>
			<updated>2022-12-06T09:04:11Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7107#p7107</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7106#p7106" />
			<content type="html"><![CDATA[<p>Подтягивающие резисторы в норме.</p>]]></content>
			<author>
				<name><![CDATA[andr_us]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1707</uri>
			</author>
			<updated>2022-12-06T07:20:13Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7106#p7106</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7105#p7105" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>liman324 пишет:</cite><blockquote><p>на пин reset контроллера подано +5 В через 10 К?</p></blockquote></div><p>Нет, не подано. Но реализовать не проблема. Сделаю</p>]]></content>
			<author>
				<name><![CDATA[andr_us]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1707</uri>
			</author>
			<updated>2022-12-06T07:16:23Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7105#p7105</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7104#p7104" />
			<content type="html"><![CDATA[<p>Похоже на зависание шины i2c, проверьте подтягивающие резисторы. </p><p>Уменьшите частоту шины до 50000 кгц :<br />Wire.setClock(50000L); <br />вызываться после Wire.begin();</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-06T06:58:51Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7104#p7104</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7103#p7103" />
			<content type="html"><![CDATA[<p>на пин reset контроллера подано +5 В через 10 К?</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-12-06T06:50:25Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7103#p7103</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7102#p7102" />
			<content type="html"><![CDATA[<p>Здравствуйте! Не помогло. Выявилась еще одна странность. При лёгком прикосновении к корпусу 8416 регулировки также зависают. Все ножки пропаяны, так что проблема не в этом.</p>]]></content>
			<author>
				<name><![CDATA[andr_us]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1707</uri>
			</author>
			<updated>2022-12-06T06:43:16Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7102#p7102</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CS8416 + WM8740]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7101#p7101" />
			<content type="html"><![CDATA[<p>Хорошо, попробую. Завтра отпишусь по результату. Правда я не на &quot;Ардуино&quot; делал, а разработал свою плату и на ней распаял контроллер А328 с необходимой обвязкой.</p>]]></content>
			<author>
				<name><![CDATA[andr_us]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1707</uri>
			</author>
			<updated>2022-12-05T14:29:39Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7101#p7101</id>
		</entry>
</feed>
