Страница 66 из 94 Первая ... 56646566676876 ... Последняя
Показано с 1,301 по 1,320 из 1878

Тема: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

  1. #1 Показать/скрыть первое сообщение.
    Старый знакомый
    Автор темы
    Аватар для Serg138
    Регистрация
    22.09.2006
    Адрес
    Гомель, Беларусь
    Возраст
    47
    Сообщений
    805

    По умолчанию Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Задумал построить цап с софтверным апсемплингом для болгарского USB-транспорта на хмос. Благо этот транспорт может "рулить" напрямую старыми мультибитами. Целью ставилось выяснить насколько хуже (и хуже ли вообще) работа софтового ресемплера по сравнению с "железным" ЦФ. Решил не изобретать велосипед, поэтому за основу была взята хорошо известная и проверенная временем конструкция от Сергиот. В первую очередь это было сделано для совместимости со стандартными выхлопами для DAC6. Была удалена вся цифровая часть, остался "огрызок" с PCM63 и питанием к ним. И вот что из этого вышло.

    Плата транспорта вставляется непосредственно в плату цапа. Для чего 6 штырьков разъема транспорта были перепаяны на нижнюю сторону платы. Единственное, что с самого начала не продумал, это не совместил крепежные отверстия обеих плат, выровнял только проекции края плат. Посчитал что плата транспорта будет крепиться своими стойками к корпусу. Возможно в следующей версии плат переделаю, если такая необходимость возникнет.

    ---------- Сообщение добавлено 09:29 ---------- Предыдущее сообщение было 09:20 ----------

    Была проведена небольшая лабораторная работа по исследованию работы апсемплера. В названиях файлов указана частота дискретизации. Осц цеплялся на выход выхлопа. На экране часть увеличенной синусоиды, масштаб на всех трех фото одинаков. Как видно, уже при 4-х кратной передискретизации вид синусоиды становится более-менее приемлимым.

    Сделана плата и под PCM58.
    Схема цапа на AD1862 https://drive.google.com/open?id=1a9...bDcOGFfmpUVQcj

    Нажмите на изображение для увеличения. 

Название:	DAC PCM58Lite.JPG 
Просмотров:	10854 
Размер:	577.2 Кб 
ID:	277892

    Нажмите на изображение для увеличения. 

Название:	DSC00290_.jpg 
Просмотров:	4929 
Размер:	602.3 Кб 
ID:	305536
    Схема полной версии цапа (с ЦФ).
    Нажмите на изображение для увеличения. 

Название:	7V63.GIF 
Просмотров:	7543 
Размер:	201.4 Кб 
ID:	298333 Нажмите на изображение для увеличения. 

Название:	7V63_1.GIF 
Просмотров:	5425 
Размер:	130.5 Кб 
ID:	298334
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	DACPCM63L.GIF 
Просмотров:	5379 
Размер:	179.5 Кб 
ID:	288852   Нажмите на изображение для увеличения. 

Название:	DAC PCM58Lite REV3.GIF 
Просмотров:	5985 
Размер:	273.6 Кб 
ID:	304607   Нажмите на изображение для увеличения. 

Название:	44,1.jpg 
Просмотров:	3139 
Размер:	506.2 Кб 
ID:	273676   Нажмите на изображение для увеличения. 

Название:	88,2.jpg 
Просмотров:	2641 
Размер:	507.4 Кб 
ID:	273677  

    Нажмите на изображение для увеличения. 

Название:	DSC00062_.jpg 
Просмотров:	4914 
Размер:	741.1 Кб 
ID:	273674   Нажмите на изображение для увеличения. 

Название:	176,4.jpg 
Просмотров:	3007 
Размер:	515.9 Кб 
ID:	273678   Нажмите на изображение для увеличения. 

Название:	DSC00180_.jpg 
Просмотров:	3441 
Размер:	728.9 Кб 
ID:	304608   Нажмите на изображение для увеличения. 

Название:	DSC00350_.jpg 
Просмотров:	2386 
Размер:	677.3 Кб 
ID:	320000  

    Нажмите на изображение для увеличения. 

Название:	DSC00403.jpg 
Просмотров:	2504 
Размер:	1.07 Мб 
ID:	322716   Нажмите на изображение для увеличения. 

Название:	DSC00445_.jpg 
Просмотров:	2265 
Размер:	1.35 Мб 
ID:	325208   Нажмите на изображение для увеличения. 

Название:	DSC00190_.jpg 
Просмотров:	2345 
Размер:	550.2 Кб 
ID:	325209  
    Вложения Вложения
    Последний раз редактировалось Serg138; 02.08.2018 в 17:20. Причина: Добавил схему DAC1862
    Сергей

  2. #1301
    Завсегдатай Аватар для pyos
    Регистрация
    15.07.2006
    Возраст
    64
    Сообщений
    4,353

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB


    Offтопик:
    Цитата Сообщение от Furious_Dima Посмотреть сообщение
    андройды?
    Нет, просто люди со здоровым слухой и психикой Ну и без умственной отсталости, конечно


    ---------- Сообщение добавлено 08:44 ---------- Предыдущее сообщение было 08:41 ----------

    Цитата Сообщение от vitsomeo Посмотреть сообщение
    Ну так я могу выложить почти стерильный, как выяснилось, графичег встроенных цапов макбуков про
    Выкладывай, а там и поговорим
    (точнее, существенно более чистый).
    Чем на твоей поделке германиевой? Так дырка в макбуке и звучит лучше
    "Я не знаю на чем Вы там слушаете", и главное, что Вы там слушаете, и даже точно не хочу знать, но скажите, что, правда, в 2018 году кто-то всё ещё не понимает, что графички с заборами и качество воспроизведения музыки коррелированы очень условно, с огромными оговорками?
    Это всё верно только если заборы на графичках ниже где-то -110дБ, тогда корреляция уже кончилась, но когда там искажения уровня советского магнитофона второго класса лохматых годов - ни о каком качестве и речи быть не может.
    Потому что получать удовольствие от музыки с этим уопичщчем под названьем макбук (точнее, причиной там - реалтек), при всех его красивых графичках, может, честно, только меломан-инвалид.
    Ммм, опять истеришь

  3. #1302
    Частый гость Аватар для vitsomeo
    Регистрация
    08.02.2010
    Сообщений
    164

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Чем на твоей поделке германиевой? Так дырка в макбуке и звучит лучше
    Во-первых, не тыкайте.
    Во-вторых, совсем уж херню писать не надо, засмеют же
    В третьих, почему -110? Откуда, с какого потолка?

  4. #1303
    Завсегдатай Аватар для pyos
    Регистрация
    15.07.2006
    Возраст
    64
    Сообщений
    4,353

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от vitsomeo Посмотреть сообщение
    Во-первых, не тыкайте.
    А то чё будет?
    Во-вторых, совсем уж херню писать не надо, засмеют же
    Ну так и не пиши Или ты сознательно посмешищем себя выставляешь?
    То, что дырка от макбука звучит лучше германиевой поделки безграмотного шизопортальщика - факт. Она, конечно, не предел мечтаний, но макбук по крайней мере грамотные инженеры проектировали, пускай они зачастую сознательно жертвуют надёжностью (особенно механики )
    Offтопик:
    ну и нездоровый ажиотаж вокруг эппловской техники явно не соответствует её качеству.

    В третьих, почему -110? Откуда, с какого потолка?
    С потолка это твои заявления об отсутствии корреляции, а примерная граница в -110дБ - это из опыта.

  5. #1304
    Джем Аватар для Djemshut
    Регистрация
    10.08.2008
    Адрес
    Харьков
    Возраст
    61
    Сообщений
    2,195

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Потолок обыкновенный, нужно учитывать что система состоит не из одного цапа. Если взять сумму искажений например трёх компонентов тракта, каждый по - 100 дБ , то суммарно получим уже прмерно - 95. И т. д.
    И днем и ночью ток ученый все ходит по цепи кругом

  6. #1305
    Новичок Аватар для tihan444
    Регистрация
    27.10.2013
    Возраст
    57
    Сообщений
    28

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Мущины,не засирайте ветку ..плс.

  7. #1306
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    4,380

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Условно цап пцм58, 18 бит. Имеем контент 192/24. В плеере из192 делаем соксом 384, это максимум что пцм58 переварит, а вот что делать с 24 битами? Отбросить младшие 6 бит имхо не правильно, надо как то пересчитывать, очевидно что младший 18 бит может меняться при правильном округлении оставшихся 6.
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  8. #1307
    Новичок Аватар для Agilent
    Регистрация
    16.03.2006
    Адрес
    РБ Минск
    Возраст
    67
    Сообщений
    96

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Забейте на состояние 18 бита. В этом цапе это ни на что не влияет. Смело отрезайте младшие биты и вперёд.

  9. #1308
    Завсегдатай Аватар для Elms
    Регистрация
    21.12.2008
    Адрес
    Москва
    Возраст
    56
    Сообщений
    3,352

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Ахренеть! Да неужели?!

  10. #1309
    Новичок Аватар для Agilent
    Регистрация
    16.03.2006
    Адрес
    РБ Минск
    Возраст
    67
    Сообщений
    96

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Внимательно читаем даташит.

  11. #1310
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от Delta213 Посмотреть сообщение
    Условно цап пцм58, 18 бит.
    Агаблинщас!
    16.2 бита там, и то для 58Р-К, а для простого - 15.2
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  12. #1311
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    4,380

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    И все же, просто отрезаем и забиваем на оставшиеся? Ну хорошо, пусть так, как софтово дизеринг сделать? Хочу 18_й бит делать случайным на лету, есть софт?
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  13. #1312
    iN GOD We TRUSt Аватар для EDDiE
    Регистрация
    13.02.2006
    Сообщений
    13,136

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от Alex Посмотреть сообщение
    Агаблинщас!
    16.2 бита там, и то для 58Р-К, а для простого - 15.2
    вобщем, старье лучше на помойку.

  14. #1313
    Новичок Аватар для Agilent
    Регистрация
    16.03.2006
    Адрес
    РБ Минск
    Возраст
    67
    Сообщений
    96

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Ваш 18 бит на аналоговый выход данного цапа никак не повлияет. Что хотите туда пишите. "Понятна мысль моя неглубокая?"

    ---------- Сообщение добавлено 11:52 ---------- Предыдущее сообщение было 11:51 ----------

    Ну почему же на помойку....Вполне себе цап для музыки. Вряд ли вы отличите 16 реальных бит от 14. На слух.

  15. #1314
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    4,380

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Это легко проверить, понизьте редактором битовую глубину до 14 и послушайте.
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  16. #1315
    Новичок Аватар для Agilent
    Регистрация
    16.03.2006
    Адрес
    РБ Минск
    Возраст
    67
    Сообщений
    96

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    http://www.audio-perfection.com/foru...ad.php?tid=423
    Например, вот тут народ во всю развлекался. Было смешно.

  17. #1316
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от Delta213 Посмотреть сообщение
    битовую глубину
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  18. #1317
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,197

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от Delta213 Посмотреть сообщение
    И все же, просто отрезаем и забиваем на оставшиеся? Ну хорошо, пусть так, как софтово дизеринг сделать? Хочу 18_й бит делать случайным на лету, есть софт?
    На плисине такое делается несложно.
    Гуглите LFSR, или по нашему РСЛОС - регистр сдвига с линейной ОС. С помощью такого регистра делается генератор ПСП. Сдвиг регистра осуществляется на каждом такте Ц-А преобразования.
    А далее берете любые 7 бит от этого регистра (в виде 7-разрядного слова) и суммируете с младшими 7-ю битами 24-х битных данных. Получаете 8-ми битный результат. Старший бит этого результата подсовываете вместо младшего бита 18 разрядных данных.
    Соб-но на этом все. Получаете дизеринг с равномерным распределением.
    Если вместо одного РСЛОС использовать сумму двух разных РСЛОС, т.е. брать с каждого 6 бит и суммируя получать нужные 7 бит, то получится дизеринг с треугольным распределением. Ну а если кол-во РСЛОС увеличить до дестяка, получится Гауссово распределение шума.
    Но субъективно все это скорее всего будет неотличимо от простого отбрасывания бит. На 16 разрядах еще есть шанс услышать разницу, на 18 она уже исчезающе мала.

  19. #1318
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    4,380

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Да зачем еще плисину сюда впутывать, вся обработка должна софтово происходить. Уж коли цап без ЦФ, все делаем в компе и гоним в цап уже сформированные данные. Соответственно у кого какой цап 16, 18, 20, или 24 бита. И по желанию младший бит дизерим.

    Цитата Сообщение от Alex Посмотреть сообщение
    и кандыцатор в проход
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  20. #1319
    Завсегдатай Аватар для BesPav
    Регистрация
    01.06.2011
    Адрес
    Москва
    Возраст
    42
    Сообщений
    2,720

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB

    Цитата Сообщение от Delta213 Посмотреть сообщение
    все делаем в компе
    Делайте:

    /* Dithering */
    static struct dither_data dither_data[2] IBSS_ATTR; /* 0=left, 1=right */
    static long dither_mask IBSS_ATTR;
    static long dither_bias IBSS_ATTR;
    ______________________________________________


    /**
    * The "dither" code to convert the 24-bit samples produced by libmad was
    * taken from the coolplayer project - coolplayer.sourceforge.net
    *
    * This function handles mono and stereo outputs.
    */
    static void sample_output_dithered(int count, struct dsp_data *data,
    const int32_t *src[], int16_t *dst)
    {
    const int32_t mask = dither_mask;
    const int32_t bias = dither_bias;
    const int scale = data->output_scale;
    const int32_t min = data->clip_min;
    const int32_t max = data->clip_max;
    const int32_t range = max - min;
    int ch;
    int16_t *d;


    for (ch = 0; ch < data->num_channels; ch++)
    {
    struct dither_data * const dither = &dither_data[ch];
    const int32_t *s = src[ch];
    int i;


    for (i = 0, d = &dst[ch]; i < count; i++, s++, d += 2)
    {
    int32_t output, sample;
    int32_t random;


    /* Noise shape and bias (for correct rounding later) */
    sample = *s;
    sample += dither->error[0] - dither->error[1] + dither->error[2];
    dither->error[2] = dither->error[1];
    dither->error[1] = dither->error[0]/2;


    output = sample + bias;


    /* Dither, highpass triangle PDF */
    random = dither->random*0x0019660dL + 0x3c6ef35fL;
    output += (random & mask) - (dither->random & mask);
    dither->random = random;


    /* Round sample to output range */
    output &= ~mask;


    /* Error feedback */
    dither->error[0] = sample - output;


    /* Clip */
    if ((uint32_t)(output - min) > (uint32_t)range)
    {
    int32_t c = min;
    if (output > min)
    c += range;
    output = c;
    }


    /* Quantize and store */
    *d = output >> scale;
    }
    }


    if (data->num_channels == 2)
    return;
    __________________________________________________
    static void dither_init(struct dsp_config *dsp)
    {
    memset(dither_data, 0, sizeof (dither_data));
    dither_bias = (1L << (dsp->frac_bits - NATIVE_DEPTH));
    dither_mask = (1L << (dsp->frac_bits + 1 - NATIVE_DEPTH)) - 1;
    }


    void dsp_dither_enable(bool enable)
    {
    struct dsp_config *dsp = &AUDIO_DSP;
    dither_enabled = enable;
    sample_output_new_format(dsp);

  21. #1320
    Частый гость Аватар для Kabal_MSU
    Регистрация
    22.09.2009
    Адрес
    Германия
    Сообщений
    346

    По умолчанию Re: Простой ЦАП на PCM63(PCM58) для I2SoverUSB


    Offтопик:
    Цитата Сообщение от BesPav Посмотреть сообщение
    Делайте:
    Валидацию входных параметров Пушкин будет делать?.. Куча указателей, 0 проверок. Это чревато, в общем случае.

Страница 66 из 94 Первая ... 56646566676876 ... Последняя

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •