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

Арбитр шины SPI для DSP KIT 4x3 UHD с аудио процессором ADAU1467

s0Va

Well-known member
Зачем сие потребно? Чтобы можно было одновременно использовать на одной и той же мат. плате DSP KIT 4x3 UHD (и, видимо, DSP KIT 4x3 HD тоже, хотя с ней не проверял)
  • и Reflex в качестве источника аудиопотока и властелина крутилок и кнопок,
  • и SigmaLink-USBi в качестве окна в SigmaStudio, где можно параллельно ковыряться в настройках всех изделий, которыми в это время управляет Reflex.
Наверняка такой финт можно было бы проделать и на программном уровне, но исходников прошивок Reflex и SigmaLink у меня нет, зато есть паяльник.

Что для этого нужно? Я использовал:
  • 4 элемента 2И-НЕ на микросхеме SN74LVC00APWR
  • 5 аналоговых переключателей на микросхемах RS2099XTSS16 и RS2103XH
  • макетные платы под микросхемы, пару конденсаторов для развязки и кучку проводков для связывания всего этого в единый клубок
Как это работает? Это простейшее устройство, переключающее доступ к 5 линиям шины SPI между Reflex и SigmaLink по принципу "кто первый встал, того и тапки": кто первый выставил низкий уровень на любой из двух своих линий CS, тот к шине и подключается и не отключается до тех пор, пока не отпустит CS, даже если сосед в это время тоже выставит свой сигнал CS. Если на шину никто не претендует, то к ней подключён Reflex.

Заодно здесь добавлена гребёнка для подключения SigmaLink к шине I2C, которая идёт на разъёмы HDMI.

Схема выглядит так:

Schematic.png


А вот как выглядит её колхозное исполнение в натуре на нижней стороне мат.платы:

MB_bottom.jpg

logic.jpg

switches.jpg


Помимо установки гребёнок нужно ещё перерезать дорожки на верхней стороне платы, ведущие от разъёмов Reflex к штатной гребёнке шины SPI на мат.плате, и сдуть R31, т.к. он оказывается висящим параллельно подтягивающему резистору на той линии CS1, которая подключена к линии CS_DSP через аналоговый переключатель:

MB_top.jpg


Без такого приспособления SigmaLink не может достучаться до ADAU1467, если Reflex не спит, а при его наличии я теперь могу практически одновременно дёргать одни и те же органы управления в проекте и мышкой на экране в SigmaStudio, и кнопками/резисторами на корпусе CDD-010. Понятно, что возможна ситуация, когда, например, Reflex закончил свою посылку в сторону ADAU1467 и отпустил шину, а в это время SigmaLink ещё не закончил свою, продолжает держать линию CS1, и тогда арбитр отдаст шину ему и в ADAU1467 прилетит нечто непотребное, поэтому желательно всё-таки избегать совсем уж одновременного общения с шиной сразу двух претендентов.

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