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

RDC2-0059 ( SSM3582 )

Realmer

Member
И что он будет делать? :)
А то же что и все драйверы, что он ещё может делать? :) В микшере громкость да прочие крутилки/вертелки, в sysfs регистры с возможностью читать/писать...
Код:
root@inet-radio:/home/realmer# ls -l /sys/bus/i2c/devices/1-0010/
total 0
-rw-r--r-- 1 root root 4096 авг 21 10:46 amp_dac_ctrl
-rw-r--r-- 1 root root 4096 авг 21 10:46 dac_ctl
-r--r--r-- 1 root root 4096 авг 21 10:46 device_id
lrwxrwxrwx 1 root root    0 авг 21 10:46 driver -> ../../../../../../bus/i2c/drivers/ssm3582a
-rw-r--r-- 1 root root 4096 авг 21 10:46 fault_ctrl1
-rw-r--r-- 1 root root 4096 авг 21 10:46 fault_ctrl2
-r--r--r-- 1 root root 4096 авг 20 02:49 modalias
-r--r--r-- 1 root root 4096 авг 20 02:41 name
lrwxrwxrwx 1 root root    0 авг 20 02:49 of_node -> ../../../../../../firmware/devicetree/base/soc/i2c@7e804000/ssm3582@10
drwxr-xr-x 2 root root    0 авг 20 02:49 power
-rw-r--r-- 1 root root 4096 авг 21 10:46 power_ctl
-r--r--r-- 1 root root 4096 авг 21 10:46 revision
-rw-r--r-- 1 root root 4096 авг 21 10:46 sai_ctrl1
-rw-r--r-- 1 root root 4096 авг 21 10:46 sai_ctrl2
-rw-r--r-- 1 root root 4096 авг 21 10:46 slot_left_ctrl
-rw-r--r-- 1 root root 4096 авг 21 10:46 slot_right_ctrl
-r--r--r-- 1 root root 4096 авг 21 10:46 status1
-r--r--r-- 1 root root 4096 авг 21 10:46 status2
lrwxrwxrwx 1 root root    0 авг 20 02:41 subsystem -> ../../../../../../bus/i2c
-r--r--r-- 1 root root 4096 авг 21 10:46 temp
-rw-r--r-- 1 root root 4096 авг 20 02:41 uevent
-r--r--r-- 1 root root 4096 авг 21 10:46 vbat
-r--r--r-- 1 root root 4096 авг 21 10:46 vendor_id
 

Realmer

Member
Через SigmaLink всё читается посредством I2C. Там надо сначала сбросить "Temperature sensor powerdown", а потом читать можно. vbat выдаёт довольно близкое значение к напряжению питания, а temp - температуру чипа, похожую на правду.
Да вот в том-то и дело:
Код с оформлением (BB-коды):
root@inet-radio:/home/realmer# i2cdump -y 1 0x10
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 41 35 82 03 00 8a 02 40 40 11 07 00 01 00 a0 51    A5??.??@@??.?.?Q
10: 22 a8 51 22 ff ff 00 30 00 00 00 00 00 00 00 00    "?Q"...0........
 

Realmer

Member
О как...
Он на шине I2S виден как что? ЦАП, аудиокарта? Надо же ещё и потоком управлять.
Код:
root@inet-radio:/home/realmer# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
hw:CARD=RDC20059SoundCa,DEV=0
    RDC2-0059-Sound-Card, bcm2835-i2s-ssm3582-hifi ssm3582-hifi-0
    Direct hardware device without any conversions
plughw:CARD=RDC20059SoundCa,DEV=0
    RDC2-0059-Sound-Card, bcm2835-i2s-ssm3582-hifi ssm3582-hifi-0
    Hardware device with all software conversions
default:CARD=RDC20059SoundCa
    RDC2-0059-Sound-Card, bcm2835-i2s-ssm3582-hifi ssm3582-hifi-0
    Default Audio Device
sysdefault:CARD=RDC20059SoundCa
    RDC2-0059-Sound-Card, bcm2835-i2s-ssm3582-hifi ssm3582-hifi-0
    Default Audio Device
dmix:CARD=RDC20059SoundCa,DEV=0
    RDC2-0059-Sound-Card, bcm2835-i2s-ssm3582-hifi ssm3582-hifi-0
    Direct sample mixing device
Как-то так.
Попробовать можно взять на гитхабе

Драйверу alsa сообщает параметры потока, он их выставляет чипу. Пока не понял, почему оно периодически пытается затолкать неподдерживаемые форматы (типа с плавающей точкой).
 

Lazy_66

Well-known member

Realmer

Member
Ну...Не совсем для меня актуально - усилители только усиливают, а вся обработка идёт в DSP.
А так да, очень интересная работа, спасиб.

А почему не пульсом?
Пульс, он поверх альсы. Он совсем другие задачи решает. В ядре и рядом - альса.
Меня тут, просто, привычка к "перпендикулярности" подловила :) Зачем статика с левыми извращениями и чужими драйверами или наверсной MCU для того, что должно быть сделано правильно. Вот и сделал.
ALSA позволяет соединять драйверы в длинные цепочки в соответствии с физическим соединением, только надо иметь драйверы под всё. Всё описывается в случае SOC через device tree
 

Realmer

Member
Так о том и речь. ALSA гонит сырой поток, а пульс уже его приводит к 192/24, максимум для этих усилителей.
Не совсем так, альса возвращает приложению список доступных форматов из драйвера, где он описан примерно так:
Код:
static struct snd_soc_dai_driver ssm3582_dai[] = {{
    .name = "ssm3582-hifi",
    .playback =
        {
            .channels_min = 1,
            .channels_max = 2,
            .rates = SNDRV_PCM_RATE_8000_192000,
            .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE),
        },
В некоторых случаях можно сконфигурить перекодировку в card driver, но я не разбирался как. Лупить 24/192 во всех случаях - не разумно, апскейлинг какого-нить 16/44 только жрёт проц, зачастую ухудшая звучание.
 

Andrey Olegovich

Well-known member
Добрый день. Подскажите пожалуйста как сохранить изменения, которые вносишь в настройки усилителя в сигма студио? Пример: подключил питание, подключил сигмалинк, допустим первел в режим моно. Нажал кнопку write all. Статус поменялся. но при отключении питания и подачи его заново, усилок сбрасывается к каким-то заводским настройкам и при чтении из него он снова показывает, что усилитель работает в режиме стерео.
 

Евгений

Administrator
Команда форума
Подскажите пожалуйста как сохранить изменения...
Изменения, вносимые через SigmaStudio сохранить невозможно, т.к. микросхема не имеет памяти для хранения настроек.
Есть возможность аппаратно выбрать определенные режимы работы, это описано на странице модуля https://www.chipdip.ru/product/rdc2-0059
 

Andrey Olegovich

Well-known member
К сожалению я в этом деле впервые поэтому ничего и не понятно мне. Но за ответ спаибо. буду пробовать различные вариации.
 

viladata

New member
Попробовать можно взять на гитхабе
Не удалось запустить. Нужны советы.
Raspberry 3b + Moode Player
Код:
pi@moode7pcm1522:~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
btaplay_dmix
plug_btaplay_dmix
_audioout
_audioout__
alsaequal
plug_alsaequal
btstream
camilladsp
crossfeed
plug_bs2b
eqfa12p
plug_eqfa12p
invpolarity
trx_send
pi@moode7pcm1522:~ $ ls -l /sys/bus/i2c/devices/1-0010/
total 0
-r--r--r-- 1 root root 4096 Aug 23 07:04 modalias
-r--r--r-- 1 root root 4096 Aug 23 07:04 name
lrwxrwxrwx 1 root root    0 Aug 23 07:04 of_node -> ../../../../../../firmware/devicetree/base/soc/i2c@7e804000/ssm3582@10
drwxr-xr-x 2 root root    0 Aug 23 07:04 power
lrwxrwxrwx 1 root root    0 Aug 23 07:04 subsystem -> ../../../../../../bus/i2c
-rw-r--r-- 1 root root 4096 Aug 23 06:56 uevent
 

Дюжбан

Well-known member
Добрый день. Подскажите как всё-таки верно: нужно запараллелить выходы.
Открыл кикад в проекте +--+ это правильно или нет. А то все скрутил, а тишина. Спасибо.
Хотел использовать без контроллеров в авто. Идея такая берем модуль в режиме 48к стерео, параллелим выходы на винтовых клеммах, а на вход по i2s на оба канала подаем либо правый либо левый. Но вот что-то оно кряхтит. Можно ли так делать? Или нужно настраивать в моно?
Как правильно запараллелить модуль в 192к моно? Спасибо.
 
Последнее редактирование:

Влад

Well-known member
Добрый день. Подскажите как всё-таки верно: нужно запараллелить выходы.
Открыл кикад в проекте +--+ это правильно или нет. А то все скрутил, а тишина. Спасибо.
Хотел использовать без контроллеров в авто. Идея такая берем модуль в режиме 48к стерео, параллелим выходы на винтовых клеммах, а на вход по i2s на оба канала подаем либо правый либо левый. Но вот что-то оно кряхтит. Можно ли так делать? Или нужно настраивать в моно?
Как правильно запараллелить модуль в 192к моно? Спасибо.
"+" к "+" и "-" к "-" правильно. В режиме стандалоне моно особенность - требуется подавать одинаковый сигнал на левый и правый канал ssm-ки, иначе будет реветь. Причина в том, что каналы соединяются как в моно, но при этом правый канал остаётся подключенным. Если на правом канале не будет сигнала, то он будет воспроизводить шум. А, как включить режим 192к моно см. таблицу на странице модуля.
 

Realmer

Member
Не удалось запустить. Нужны советы.
Raspberry 3b + Moode Player
Код:
pi@moode7pcm1522:~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
btaplay_dmix
plug_btaplay_dmix
_audioout
_audioout__
alsaequal
plug_alsaequal
btstream
camilladsp
crossfeed
plug_bs2b
eqfa12p
plug_eqfa12p
invpolarity
trx_send
pi@moode7pcm1522:~ $ ls -l /sys/bus/i2c/devices/1-0010/
total 0
-r--r--r-- 1 root root 4096 Aug 23 07:04 modalias
-r--r--r-- 1 root root 4096 Aug 23 07:04 name
lrwxrwxrwx 1 root root    0 Aug 23 07:04 of_node -> ../../../../../../firmware/devicetree/base/soc/i2c@7e804000/ssm3582@10
drwxr-xr-x 2 root root    0 Aug 23 07:04 power
lrwxrwxrwx 1 root root    0 Aug 23 07:04 subsystem -> ../../../../../../bus/i2c
-rw-r--r-- 1 root root 4096 Aug 23 06:56 uevent
Какую плату используете?
Как стоят джамперы?
Как подключена по i2c?
sudo dmesg | grep ssm
sudo dmesg | grep snd-card
что в /boot/config.txt про i2s
Как грузили модуль?

Какой-то aplay -L у вас богатый...
 
Последнее редактирование:

Дюжбан

Well-known member
"+" к "+" и "-" к "-" правильно. В режиме стандалоне моно особенность - требуется подавать одинаковый сигнал на левый и правый канал ssm-ки, иначе будет реветь. Причина в том, что каналы соединяются как в моно, но при этом правый канал остаётся подключенным. Если на правом канале не будет сигнала, то он будет воспроизводить шум. А, как включить режим 192к моно см. таблицу на странице модуля.
Спасибо. Примерно разобрался. Выходы нужно параллелить не на клеммнике, а до дросселей. В стерео-режиме походу так делать нельзя. По входу завожу в оба канала левый или правый, (ну либо в один 0, а в другой сигнал). Для 192 моно нет в авто.
На вход моно подавал, а вторй канал параллелишь и крехтит сразу.
Разберемся, у меня дсп как часы сейчас, осталось оконечники победить.
Попутно линукс ругаю. Алсу.)
 

Lazy_66

Well-known member
По входу завожу в оба канала левый или правый, (ну либо в один 0, а в другой сигнал)
Коллеги, у этих усилителей вход I2S. ОДИН вход! Вы с DSP по I2S в моно режиме как простите подаёте раздельно левый и правый? Может я что то не понимаю и делаю не так?
 

Vitalii

Well-known member
Коллеги, у этих усилителей вход I2S. ОДИН вход! Вы с DSP по I2S в моно режиме как простите подаёте раздельно левый и правый? Может я что то не понимаю и делаю не так?
Вот бы по подробнее про эти усилители рассказали. Если честно то запустил только один усилитель, другие пока молчат. Связка Reflex 2.0, джамперы 7,8. А работает только один усилитель. Если рабочий усилитель подключить к другому выходу Reflex 2.0, то усилитель работает. А если включить 4 сразу то не работает.
 
Верх