Вывод звука через порт S/PDIF




Здравствуйте, уважаемые читатели! Сегодня будут подробно рассмотрены вопросы вывода звука через порт S/PDIF!

Микрокомпьютер обладает богатым набором периферийных интерфейсов, область применения которых до недавнего времени была ограничена одними лишь портами ввода-вывода. Однако область работы с периферией не ограничена портами ввода-вывода - в качестве прикладной задачи рассмотрим вывод звука через порт S/PDIF, как самый простой для подключения внешних устройств.

За вывод звука в операционных системах семейства Linux отвечает звуковая подсистема ALSA. ALSA представляет собой набор драйверов и программный микшер. Именно ALSA выполняет задачу передачи звуковых данных от прикладных программ до физических устройств, например, от проигрывателя до цифро-аналогового преобразователя.

Для начала нужно установить стандартный набор инструментов ALSA:

root@shade:~# apt-get install alsa-utils

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libasound2 libasound2-data libsamplerate0
Предлагаемые пакеты:
  libasound2-plugins
НОВЫЕ пакеты, которые будут установлены:
  alsa-utils libasound2 libasound2-data libsamplerate0
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 73 пакетов не обновлено.
Необходимо скачать 2 280 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 4 649 kB.
Хотите продолжить? [Д/н] y
Получено:1 http://archive.raspbian.org/raspbian/ jessie/main libasound2-data all 1.0.28-1 [64,8 kB]
Получено:2 http://archive.raspbian.org/raspbian/ jessie/main libasound2 armhf 1.0.28-1 [316 kB]
Получено:3 http://archive.raspbian.org/raspbian/ jessie/main libsamplerate0 armhf 0.1.8-8 [939 kB]
Получено:4 http://archive.raspbian.org/raspbian/ jessie/main alsa-utils armhf 1.0.28-1 [960 kB]
Получено 2 280 kБ за 4с (553 kБ/c)
Выбор ранее не выбранного пакета libasound2-data.
(Чтение базы данных … на данный момент установлен 21191 файл и каталог.)
Подготовка к распаковке …/libasound2-data_1.0.28-1_all.deb …
Распаковывается libasound2-data (1.0.28-1) …
Выбор ранее не выбранного пакета libasound2:armhf.
Подготовка к распаковке …/libasound2_1.0.28-1_armhf.deb …
Распаковывается libasound2:armhf (1.0.28-1) …
Выбор ранее не выбранного пакета libsamplerate0:armhf.
Подготовка к распаковке …/libsamplerate0_0.1.8-8_armhf.deb …
Распаковывается libsamplerate0:armhf (0.1.8-8) …
Выбор ранее не выбранного пакета alsa-utils.
Подготовка к распаковке …/alsa-utils_1.0.28-1_armhf.deb …
Распаковывается alsa-utils (1.0.28-1) …
Обрабатываются триггеры для systemd (215-17+deb8u7) …
Настраивается пакет libasound2-data (1.0.28-1) …
Настраивается пакет libasound2:armhf (1.0.28-1) …
Настраивается пакет libsamplerate0:armhf (0.1.8-8) …
Настраивается пакет alsa-utils (1.0.28-1) …
Обрабатываются триггеры для libc-bin (2.19-18+deb8u10) …
Обрабатываются триггеры для systemd (215-17+deb8u7) …

Свернуть

После установки ALSA, дополнительно установим простейший проигрыватель mpg123, который понадобится как источник звуковых данных:

root@shade:~# apt-get install mpg123

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libltdl7 libmpg123-0
Предлагаемые пакеты:
  jackd nas oss-compat oss4-base pulseaudio
НОВЫЕ пакеты, которые будут установлены:
  libltdl7 libmpg123-0 mpg123
обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 73 пакетов не обновлено.
Необходимо скачать 311 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 660 kB.
Хотите продолжить? [Д/н] y
Получено:1 http://archive.raspbian.org/raspbian/ jessie/main libltdl7 armhf 2.4.2-1.11 [42,5 kB]
Получено:2 http://archive.raspbian.org/raspbian/ jessie/main libmpg123-0 armhf 1.20.1-2+deb8u1 [115 kB]
Получено:3 http://archive.raspbian.org/raspbian/ jessie/main mpg123 armhf 1.20.1-2+deb8u1 [153 kB]
Получено 311 kБ за 1с (270 kБ/c)
Выбор ранее не выбранного пакета libltdl7:armhf.
(Чтение базы данных … на данный момент установлено 21422 файла и каталога.)
Подготовка к распаковке …/libltdl7_2.4.2-1.11_armhf.deb …
Распаковывается libltdl7:armhf (2.4.2-1.11) …
Выбор ранее не выбранного пакета libmpg123-0:armhf.
Подготовка к распаковке …/libmpg123-0_1.20.1-2+deb8u1_armhf.deb …
Распаковывается libmpg123-0:armhf (1.20.1-2+deb8u1) …
Выбор ранее не выбранного пакета mpg123.
Подготовка к распаковке …/mpg123_1.20.1-2+deb8u1_armhf.deb …
Распаковывается mpg123 (1.20.1-2+deb8u1) …
Обрабатываются триггеры для mime-support (3.58) …
Настраивается пакет libltdl7:armhf (2.4.2-1.11) …
Настраивается пакет libmpg123-0:armhf (1.20.1-2+deb8u1) …
Настраивается пакет mpg123 (1.20.1-2+deb8u1) …
update-alternatives: используется /usr/bin/mpg123.bin для предоставления /usr/bin/mpg123 (mpg123) в автоматическом режиме
update-alternatives: используется /usr/bin/mpg123.bin для предоставления /usr/bin/mp3-decoder (mp3-decoder) в автоматическом режиме
Обрабатываются триггеры для libc-bin (2.19-18+deb8u10) …

Свернуть

Наконец, подключим к порту S/PDIF микрокомпьютера ЦАП и усилитель. Сигнал порта S/PDIF возьмём с контактов 38 и 39 порта расширения Х9, а питание ЦАП возьмём от USB порта микрокомпьютера:

ЦАП я использовал недорогой 24-х битный, поддерживащий частоты дискретизции до 192 кГц. Все соединения следует выполнить экранированными проводами.

Для проверки работоспособности порта S/PDIF нужно разместить файлы *.mp3 в рабочем каталоге и запустить проигрыватель с параметрами:

mpg123 -C -a hw:0,1 *.mp3

Параметр -C указывает проигрывателю управление от клавиатуры. Самый важный параметр - -a hw:0,1, с его помощью выбирается аудиоустройство номер ноль и канал вывода номер один. Нулевое аудиоустройство включает в себя вывод звука через HDMI (канал 0) и S/PDIF (канал 1). По умолчанию звук выводится через HDMI и проигрывателю нужно явно указывать необходимость вывода звука через S/PDIF!

Возможности порта S/PDIF и ЦАП позволяют выводить звуковой сигнал 24-х битного разрешения и 96-ти кГц частотой дискретизации - при использовании звуковых файлов со сжатием без потерь можно слушать хоть оцифрованный винил через ламповый усилитель!


Благодарю за внимание, доброго здоровья!



Сайт работает на микрокомпьютере