Мини-компьютер как сетевой музыкальный проигрыватель

Обновлено февраль 2018 года

Hа даный момент актуальными переходниками являются BOTOX, MAXX и Lite II.

У BOTOX полностью изменена структура переходника, для обеспечения более качественного формирования Spdif сигнала и введения реклока для I2S выхода. Для этого генераторы вынесены за гальваноразвязку и введен регистр пересинхронизации всех сигналов в том числе и SPDIF. Так как генераторы в BOTOX находятся за гальваноразвязкой их можно использовать для тактирования ЦАПов, которым необходим сигнал MCLK. Кроме этого введен DC/DC преобразователь для питания гальванически изолированой части переходника, в случае использования одного источника питания для всего устройства. Блок схема, фото и описание разьемов ниже:

MAXX еще более навороченный переходник, причиной его возникновения послужили ЦАПы которым для корректной работы недостаточно сигналов переключения сетки частот мастерклока 44,1х/48х Некоторым цифровым фильтрам необходимо указывать кроме этого частоту дискретизации входящего потока. Для вычисления частот, так как из BBB получить их нет возможности используется микросхема програмируемой логики, в которой так-же формируется сигнал сброса для ЦАПа и опционально преобразование формата I2S шины

Lite II не отличается в своей основе от предыдущей версии описанной ниже за исключением немного иного способа управления полярностьюю сигнала MUTE и DSD, вместо перемычек пины замыкаются каплей припоя как на картинка ниже, так-же на обратной стороне можно установить генераторы на случай если ЦАП не имеет своих на борту и ему необходим сигнал MCLK

В программной части произошли изменения в лучшую сторону, официальный VOLUMIO стал поддерживать BeagleBone black с драйвером I2S который работает с указанными переходниками, поэтому запуск сетевого проигрывателя стал максимально простым и удобным. Достаточно записать образ системы на MicroSD флеш карту и изменить указанные ниже строчки в файле uenv.txt

volumio

uenv.txt find

Сам файл будет доступен после записи образа системы на MicroSD флеш карту и его можно редактировать.

Настройки в uEnv.txt для работы переходников с i2s:
#Docs for Botic: http://bbb.ieero.com/
optargs=snd_soc_botic.ext_masterclk=7 snd_soc_botic.dsd_format_switch=3 snd_soc_botic.serconfig=--MM snd_soc_botic.pinconfig=compat
Настройки в uEnv.txt для работы переходника BOTOX с SPDIF:
#Docs for Botic: http://bbb.ieero.com/
optargs=snd_soc_botic.ext_masterclk=7 snd_soc_botic.dsd_format_switch=3 snd_soc_botic.serconfig=--S- snd_soc_botic.pinconfig=compat
Настройки в uEnv.txt для работы переходника MAXX и старых версий с SPDIF:
#Docs for Botic: http://bbb.ieero.com/
optargs=snd_soc_botic.ext_masterclk=7 snd_soc_botic.dsd_format_switch=3 snd_soc_botic.serconfig=-S-- snd_soc_botic.pinconfig=compat

После этого доступен функционал переходников и оболочки VOLUMIO. Кроме веб интерфейса управление воспроизведением остается доступным с использованием различных MPD клиентов, например под andriod - MPDroid, а под Windows 10 - Chimney

описание неактуальных весрий и принципа работы

BeagleBone black - I2S SPDIF TOSLINK

Однажды я натолкнулся на очень интересное обсуждение на DIYAudio.com, в котором предлагалось в качестве транспорта испольовать другой очень популярный мини-компьютер - BeagleBone Black. Решение на этом компьютере на требовало сложного переходника, который в случае с Cubie Truck должен был формировать все сигналы шины I2S кроме DATA, а также не требовалось вмешательства в саму плату компьютера. И тогда мной был разработан переходник для BeagleBone Black. За основу кторого взята конструкция из обсуждения на diyAudio Support for Botic Linux driver драйвера предложенного Miero BeagleBone Black with I2S, DSD and SPDIF interface получилась компактная плата устанавливаемая сверху на разьем GPIO

что в результате получится зависит от желаний и настроек. Cамый простой вариант - сетевой проигрыватель в том числе с поддержкой UPnP DLNA подключив накопитель (флешка, HDD etc) - получим "простой" проигрыватель. Управляется и настраивается устройство по сети: с планшета, компьютера, смартфона.

пример использования

NET PLAYER EXAMPLE

Удобство устройства еще и в том, что нет необходимости держать контент рядом с проигрывателем, музыку можно хранить как на домашнем сервере, NAS, локальном кломпьютере, а цифро-аналоговый преобразователь (ЦАП) вместе с транспортом, благодаря его небольшим размерам, можно разместить в наиболее удобном месте для прослушивания. предлагаемый переходник обеспечивает:

Переходник предназначен для сопряжения и гальванической развязки по шине i2s BBB и ЦАП, а так-же вывода SPDIF сигнала на RCA и TOSLINK. В случае использования i2s шины кроме самого интерфейса выведены 3 сервисных сигнала:

В связи с тем, что полярности сигналов с целью нормальной работы внутренней логики переходника должны жестко задаваться в конфигурации драйвера, введен переключатель S1 которым можно инвертировать каждый из этих сигналов, который идет на внешние устройства, в зависимости от того как они могут использоваться в ЦАП. Например: в ЦАП сигнал '1' включает генератор сетки 44,1х, а '0' включает 48х, а с BBB этот сигнал идет как '1' для 48х и '0' для 44,1х, в таком случае можно его инвертировать переключив движок S1.3. Выходы сервисных сигналов являют собой оптопары с открытым коллектором, и для нормальной работы на стороне ЦАП им требуется подтяжка резистором 5-10ком на шину питания.

шина i2s имеет 4 изолированных линии:

При воспроизведении DSD контента выход LRCK используется как 2-й канал DSD, переключение производится ключем от сигнала с BBB на время воспроизведения DSD контента. Мастерклок всегда заводится на переходник извне и так как от него тактируется аудиоподсистема BBB соответсвенно должен быть настроен и драйвер. Имеющиется генераторы на борту переходника используются в служебных целях при воспроизведении по SPDIF или при использовании ЦАПа не требующего MCLK и включаются при отсутсвии питания внешней части изолятора развязки i2s шины. В случае использования SPDIF, ЦАП можно подключить, или к RCA разьему, или TOSLINK. Поскольку BBB в силу апаратных ограничений не может одновременно выводить и SPDIF и i2s, необходимо менять настройку драйвера. этот режим удобен при использовании уже имеющихся ЦАП со SPDIF входом, или при построении высококачественных ЦАП с буферизированными SPDIF приемниками как например Foxtrot, Dr. JKILL, или Charleston. На мой взгляд использование SPDIF самый оптимальный вариант, позволяет вынести потенциальный источник помех куда подальше, без потери качества звука, но это справедливо только в случае применения приемника SPDIF с буферизацией даных.

Подключение

Перед подключением переходника, надо сконфигурировать BeagleBone Black, это несложно. Надо внести соответсвующие правки в uEnv.txt, которые настроят драйвер и переназначат линии ввода вывода звуковой подсистемы процессора.

Настройки в uEnv.txt для работы переходника с i2s:
##Disable usage of external Botic clocks
optargs=coherent_pool=1M snd_soc_botic.ext_masterclk=7 snd_soc_botic.dsd_format_switch=3 snd_soc_botic.serconfig=--MM snd_soc_botic.pinconfig=compat
Настройки в uEnv.txt для работы переходника с SPDIF:
##Disable usage of external Botic clocks
optargs=coherent_pool=1M snd_soc_botic.ext_masterclk=7 snd_soc_botic.dsd_format_switch=3 snd_soc_botic.serconfig=-S-- snd_soc_botic.pinconfig=compat

в файле uEnv.txt необходмо найти строку, котора начинается с optargs и дописать в нее настройки как указано выше в одну длинную строку Править uEnv.txt можно прямо на флеш-карточке из виндоуз, он виден как обыкновенный файл в корневой директории. Внешние носители а так-же сетевые хранилища подключаются правкой fstab для примера, таким образом:

# windows share directory (cifs)
//IP_ADDRESS_OR_HOSTNAME/REMOTE_DIRECTORY   /data/remote    cifs    user=USER_NAME,pass=PASSWORD,cache=none,gid=audio

# networket file system (nfs)
IP_ADDRESS_OR_HOSTNAME:REMOTE_DIRECTORY     /data/remote    nfs     soft

где IP_ADDRESS_OR_HOSTNAME - это IP или имя компьютера, на котором находится музыка, а REMOTE_DIRECTORY - конкретная папка, которую надо подключить. Если подключать, как указано выше, перед внесением указанных правок в fstab надо создать в корневом каталоге папку /data/remote. Можно не создавать папки и подключить удаленный ресурс прямо к /data.

В прошивке botic V3 которую я выложил для скачивания тут - http://1drv.ms/1OZSqhV включен небольшой WEB-интерфейс - доступен по порту 88, с помощью которого можно править uEnv.txt и fstab не заходя терминалом и не ковыряя командную строку.

После программной настройки, можно подключить переходник. Его просто одеваем на разьем GPIO, как видно на фото. Питание для устройства можно подать: или через штатный штеккер, или через разьем USB mini, или питание можно подать на сам переходник. Я рекомендую питать через переходник, поскольку там встроена защита от переполюсовки, да и сами клеммы понадежнее штеккера.

Дальнейшие действия зависят от вариантов построения готового плейера. Самое простое - подключить к промышленному ЦАПу ресиверу и т.п. по SPDIF или по оптике (TOSLINK). В этом случае, остается только оформить устройство в красивую коробочку. Недостаток такого использования очевиден, передача синала по SPDIF интерфейсу может негативно повлиять на качество воспроизведения из-за большого джиттера обусловленного восстановленем несущей ФАПЧ приемника, так-же мы становимся зависимы от качества кабеля и прочих вещей, которые могуть изрядно попортить крови в поиске приемлемого звука. О влиянии джиттера, доступно и профессионально написано в статье "Биты и Время" Александра Торреса.

Другой вариант заметно сложнее, это обустройство на базе BBB полноценного плейера с выходом аналогового сигнала высого качества. Для этого к переходнику по шине I2S надо подключить плату Цифро-Аналогового преобразователя (ЦАП). А тут просто огромное поле для творчества, следует только учесть, что для работы переходника в режиме I2S, надо использовать ЦАП с генераторами матерклока на борту самой платы ЦАП. Возможно подключение простых ЦАП, которые не имеют генераторов мастерклока, но как правило качество звука таких цапов может уступать даже подключению по SPDIF.

Для подключения ЦАП по шине I2S, выпущена упрощенная плата переходника BBB-I2s Lite. От полной версии отличается меньшими размерами, также плата спроектирована развернутой в "сторону" от BBB для уменьшения возможных наводок от его источника питания и процессора, были убраны генераторы и блок формирования SPDIF. Так как генераторы мастерклока отсутствуют, ЦАП надо использовать обязательно с выходом мастерклока, или устанавливать плату генераторов отдельно. Конфигурирование полярности управляющих сигналов сделано в ввиде перемычек, а не переключателя. В целом все остальное соотвествует полной версии.