Цитата Сообщение от DядяВова Посмотреть сообщение
Риторический вопрос - можно ли в ГУ, у которого нет цифрового выхода в природе вживить плату с оптическим выходом - с целью подключения внешнего процессора для полноценного разруливания 7 каналов (3-х полоска + саб).
Пожалуй продолжу тему, если не против.

Основная задача это подключить ГУ к устройству с оптическим входом TOSLINK (т.е. DSP процессору имеющему на борту цифру).
Само ГУ не имеет оптического выхода, по этому решил посвятить несколько вечеров на изучение данной темы и разработке собственной схемы и печатной плате к ней, чем делюсь с вами друзья.
Для "вытаскивания" цифры из множества головных устройств нужно несколько вещей:
1.Схема ГУ (yadi.sk/i/zSrxlCJv3GBRNH)
2.Углубившись в схемотехнику находим основную связку CPU (центральный процессор) Transport и микруху DAC (цифро-аналоговый преобразователь). В моём случае это R5S726B0D216FP и PM9013A соответственно.
Сразу о подводных камнях — производители порой интегрируют DAC в основной процессор(контроллер), на этом история с выводом оптики может закончится). В моём случае (да и в 90% остальных всё должно пройти гладко и без запинок.
(вырежу кусок для наглядности)

Теперь отложим схемотехнику и углубимся в сам цифровой сигнал I²S, тот самый на котором общаются различные аудио микросхемы по ВНУТРЕННЕЙ шине данных устройства. Для работы DAC нужны 4е сигнала.
MCLC — мастер клок (тактируемый кварцевым резонатором сигнал на котором работает вся система, на подобии метронома)
LRCLK — сигнал о том какой канал нужно обработать DAC-у в данный момент времени (1 — лев, 0 — прав.)
BLCK — сигнал семплирования данных (получается делением сигнала MCLC на кратные числа 64,128,256,512…и.д в итоге приобретает значение 44100кГц, 48000кГц, 96000кГц.итд.)
DATA — ну и наконец сигнал музыкальных данных (в цифре конечно)

сигналы шины I²S

(предварительно "потыкал" осцилом на соответствующих выводах)

к сожалению сигнал данных выв.22(присутствовал) не захотел синхронизироваться из за древности осцила

С сигналами разобрались! Теперь нужно упаковать MCLC, LRCLK, BLCK, DATA в один S/PDIF и передать по оптике в DSP процессор.

Для этого нужно преобразовать один вид цифрового интерфейса в другой с помощью микросхем Digital Audio Interface Receiver — сокращённо DIR

В интернете есть подобное схемотехническое решение на микросхеме DIT4096, с которыми вы можете ознакомится:
Это многоуважаемый Михаил Послыхалин: halin-kvd.blogspot.ru/201…-257-kmm-157-kmm-357.html

Что собственно и натолкнуло на мысль разработать свою схему и печатную плату к ней, но не на DIT4096, а на микросхеме WM8804 от Cirrus Logic, Inc.

Приручить сына волка (Wolfson) оказалось не так просто. Datasheet на микросхему заставляет забыть о какой либо лаконичности, чего стоит одна только таблица конфигураций I/O выводов.



Потратив несколько дней на доскональное изучение возможностей микросхемы и даташита, накидал для себя на листке бумаги базовые функции WM8804.


Основной плюс Wolfson это огромное множество режимов и конфигураций входов-выходов. т.е. микруху можно заставить "проглатывать" оптику и "выплёвывать" I²S, либо "жрать" S/PDIF и его же выдавать, при чём без какого либо внешнего буфера данных! Можно перевести в режим software control mode и делать с ней что пожелаете (с остальными режимами можно ознакомиться в DataSheet)

Т.к мои познания в программировании заканчиваются на перешивании спутниковых ресиверов, воспользовался hardware control mode т.е. аппаратный режим работы.
Для перевода hardware control mode достаточно подать логический 0 на 3выв. микросхемы. В таком режиме нужно назначить ее MASTER либо SLAVE (подачей соответствующих уровней на выв.1)
В режиме мастера, DIR (wm8804) сама тактирует Transport (источник сигнала). — ведущая WM8804
В режиме слейв, DIR (wm8804) тактируется самим источником т.е. Transport-ом. — ведомая WM8804

Воспользовался режимом SLAVE, скормив все данные сыну волка (Wolfson).

О данных:
Пакет I²S может быт нескольких типов разновидностей. p-h-langer.livejournal.com/123797.html
Сконфигурть WM8804 под тот или иной тип можно подачей соответствующих уровней на соответствующие вывода микросхемы. (рис. ниже)



(кстати, изначально определившись с типом входного сигнала I²S в 16bit RJ у меня выдало конфуз в виде белого шума уже декодированного сигнала приёмника) переназначил в 16bit_I²S.
Пару слов трассировке печатной платы:
прорабатывал несколько вариантов, вплоть до установки резисторов МЛТ_0.125, то после распечатывания на принтере отмёл)
Итоговый ниже:


раскинув на листе бумаги компоненты прикинул хрен к носу…



далее ЛУТ и вытравливание


Но самое сложное меня ожидало впереди приручить сына волка (Wolfson) к печатной плате, с ее межвыводным интервалом в 0.3мм!


для наглядности спичечная головка

Закончив с канифолью и оловом на плате контролера SPDIF, "прикрутил" его параллельно родному DAC (PM9013A) пионера.
Выводы:
(PM9013A) 19 — MCLK --------------------- (WM8804) 16
(PM9013A) 20 — LRCLK -------------------- (WM8804) 15
(PM9013A) 21 — BCLK ----------------------- (WM8804) 14
(PM9013A) 22 — DIN (DATA IN) ------------ (WM8804) 13

вот что получилось навесным монтажом



Далее проверка:



И окончательная сборка.




остальное тут: yadi.sk/d/gxPhAZ-s3GBins