• Внешний USB-ЦАП-Аудиопроцессор CDD-010 можно купить

ES9038Q2M аудио ЦАП

Vitalii

Well-known member
У меня упорно не работает SPDF. Может нужно забросить эту затею.
 

Евгений

Administrator
Команда форума
Так вот на i2c шину которая dsp посадил два цапа но с разными адресами, тишина, звука нет. Если активирую шину i2c GPIO и подключаю к ней цап, то рефлекс вообще перестает запускаться, индикатор не светиться вообще на рефлексе, причем если даже просто одну ее активировать и только к ней 1 цап подключить.
Посмотрим.
 

Vet

Well-known member
Может кому пригодиться))) проект для цапа и модуля управления 0051в2. Цап работает в асинхронном режиме. В проекте управление громкостью с помощью энкодера типа KY-040 и ему подобных, кнопка енкодера это селектор входов, их три, I2S, coaxial и toslink оптика. Индикация светодиодом на выбранный вход.
 

Вложения

Ytim

Member
Всем привет! Дошли руки заменить в активном кроссовере цапы на купленные месяц назад ES9038Q2M. Кроссовер 3х полосный на базе CDD-010. Все в принципе получилось, ЦАПЫ работают, громкость регулируется, mute работает. Но один ЦАП играет существенно тише остальных и с искажениями. ЦАП отправил назад, но чую что это надолго. Как на зло в наличии нет и так понимаю будет не скоро. Может есть у кого лишний? Готов приобрести по цене выше магазина.
 

Vitalii

Well-known member
Всем привет! Дошли руки заменить в активном кроссовере цапы на купленные месяц назад ES9038Q2M. Кроссовер 3х полосный на базе CDD-010. Все в принципе получилось, ЦАПЫ работают, громкость регулируется, mute работает. Но один ЦАП играет существенно тише остальных и с искажениями. ЦАП отправил назад, но чую что это надолго. Как на зло в наличии нет и так понимаю будет не скоро. Может есть у кого лишний? Готов приобрести по цене выше магазина.
Приветствую. Нужно визуально посмотреть места непропая радио элементов на плате.
 
Последнее редактирование:

Vet

Well-known member
Всем привет! Дошли руки заменить в активном кроссовере цапы на купленные месяц назад ES9038Q2M. Кроссовер 3х полосный на базе CDD-010. Все в принципе получилось, ЦАПЫ работают, громкость регулируется, mute работает. Но один ЦАП играет существенно тише остальных и с искажениями. ЦАП отправил назад, но чую что это надолго. Как на зло в наличии нет и так понимаю будет не скоро. Может есть у кого лишний? Готов приобрести по цене выше магазина.
Надо пропаять дроссель на плате цапа который стоит в преобразователе напряжения +-5 вольт, зря отправили, там делов на 3 секунды
 

Vet

Well-known member
Для тех кто купил цап, но не имеет рефлекса или модуля управления, но имеет ардуино, предлагаю скетч. Цап в асинхронном режиме с кварцем на 100мгц или модулем DSPO 49.125мгц . Опробовал на ардуино уно, но и с нано и мини тоже работать будет.

Внимание!!!! Ардуино плата должна быть с питанием +3.3 вольта!!!! Можно использовать ардуино с питанием 5 вольт, подключить вместо 5 вольт 3.3 вольта и она будет работать, НО!!!!!! нельзя ее програмировать когда она подключенна по шине I2C к плате цапа, то есть, подключили ардуинку к компу, запрограмировали, отключили от компа и вот после этого можно подключать к цапу!!!



#define Vol_pot A0
#include <Wire.h>
// Данные для инициализации //
byte AutoSelect = 0xC0;
byte AutomuteTime = 0x12;
byte DoPenable = 0x4A;
byte GpioConf = 0x88;
byte SpdifSel1 = 0x30;
byte SpdifSel2 = 0x40;
byte LockSpeedMax = 0x00;
byte VolumeL = 0xFF;
byte VolumeR = 0xFF;
byte SoftStart = 0x8A;
// Адрес ЦАПА //
#define ES90381 0x48
//#define ES90381 0x49
// Регистры для инициализации //
#define Mad_AutoSelect 0x01
#define Mad_AutomuteTime 0x04
#define Mad_DoPenable 0x06
#define Mad_GpioConf 0x08
#define Mad_SpdifSel1 0x0B
#define Mad_SpdifSel2 0x0B
#define Mad_LockSpeedMax 0x0A
#define Mad_VolumeL 0x0F
#define Mad_VolumeR 0x10
#define Mad_SoftStart 0x0E

// Настройки //
void setup() {

pinMode(Vol_pot, INPUT);
Serial.begin(9600);
Wire.begin();
delay(1000);
Wire.beginTransmission(ES90381);
Wire.write(Mad_AutoSelect);
Wire.write(AutoSelect);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_AutomuteTime);
Wire.write(AutomuteTime);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_DoPenable);
Wire.write(DoPenable);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_GpioConf );
Wire.write(GpioConf);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_SpdifSel1);
Wire.write(SpdifSel1);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_SpdifSel2);
Wire.write(SpdifSel2);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_LockSpeedMax);
Wire.write(LockSpeedMax);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_VolumeL);
Wire.write(VolumeL);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_VolumeR);
Wire.write(VolumeR);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_SoftStart);
Wire.write(SoftStart);
Wire.endTransmission();

}
void loop() {
// Регулировка громкости потенциометром //
int rotat, VolumeALL;
rotat = analogRead(Vol_pot);
VolumeALL = rotat / 2;
Wire.beginTransmission(ES90381);
Wire.write(Mad_VolumeL);
Wire.write(VolumeALL);
Wire.endTransmission();
Wire.beginTransmission(ES90381);
Wire.write(Mad_VolumeR);
Wire.write(VolumeALL);
Wire.endTransmission();

}



В скетче используется стандартная библиотека Wire. Собственно примитив, но работает без нареканий. Вход А0 регулировка громкости, к нему подключается потенциометр 10-50ком. Вход аудиопотока I2S.
 

Vet

Well-known member
Евгений, у меня как всегда вопрос))) В асинхронном режиме цап отлично работает, а вот с синхронным не все так гладко. Если например использовать фубар и настроить его на вывод аудио потока как есть, то при смене частоты наблюдаются артефакты, или же цап постоит включенный без сигнала например пол часика, потрескивания и писк, оно не долго длится, примерно пол секунды, но это зверски громко получается если усилитель мощный и без пассивного регулятора громкости. Я как ни старался, долго изучал доки на этот чип, но так и не нашел как это победить. Может чего подскажете. Меня по сути устраивает и асинхронный режим, более чем устраивает, но есть человеки которым надо чтоб вот как записано так и воспризводилось. Заранее спасибо)))
 

Евгений

Administrator
Команда форума
В асинхронном режиме цап отлично работает, а вот с синхронным не все так гладко. Если например использовать фубар и настроить его на вывод аудио потока как есть, то при смене частоты наблюдаются артефакты, или же цап постоит включенный без сигнала например пол часика, потрескивания и писк, оно не долго длится, примерно пол секунды, но это зверски громко получается если усилитель мощный и без пассивного регулятора громкости. Я как ни старался, долго изучал доки на этот чип, но так и не нашел как это победить.
Возможно, управление mute на стороне усилителя сгладит искажения.
 

Vet

Well-known member
Возможно, управление mute на стороне усилителя сгладит искажения.
Да, возможно. Но есть одно но, это действие надо к чему то привязать, и это действие должно происходить первым, а потом все остальное, и оно должно быть активным до самого конца + еще небольшая задержка. То есть при смене частоты на рефлексе, должно перед самой сменой потока сработать мьют, а потом уже отработать сама смена частоты, после смены частоты, мьют продолжает держать еще некоторое время, пока переходные процессы идут. И вот я не вижу такого условия для реализации этого. Мьют на рефлексе 2.0 отрабатывает когда громкость на компе на 0 установлена? или же при смене частот тоже происходит обработка?
 

Vet

Well-known member
Да, однозначно было бы неплохо, если бы на рефлекск2.0 появились два GPIO (желательно раздельные), один это DoP, то есть когда рефлекс транслирует DoP этот GPIO менял бы свое состояние, так же надо GPIO которые бы разрешал DSD, типа DSD Enable, ибо есть цапы на которые надо подавать единичку или нолик для активации этих режимов. Ну и мьют неплохо было бы чтоб срабатывал до изменения частотной сетки, потом держал некоторое время, и отпускал бы (а если бы он еще и настраивался в чип студии, это вообще было бы супер), это решило бы кучу проблем при переходных процессах.
 

Евгений

Administrator
Команда форума
Мьют на рефлексе 2.0 отрабатывает когда громкость на компе на 0 установлена? или же при смене частот тоже происходит обработка?
Когда "громкость на компе на 0 установлена" активируется мьют данных, т.е. на всех каналах данных передаются нулевые значения.

Ну и мьют неплохо было бы чтоб срабатывал до изменения частотной сетки, потом держал некоторое время, и отпускал бы (а если бы он еще и настраивался в чип студии, это вообще было бы супер), это решило бы кучу проблем при переходных процессах.
При смене частоты активируется физическая линия мьют, насколько помню на 300 мс, активное состояние 0 - на Reflex 2.0 это GPIO51.
Посмотрим, что еще можно сделать.
 
Верх