Для моих проектов мне требовался USB транспорт для вывода звука и еще один канал для управления устройством. Например, для управления DSP.
В прошлый раз я решил эту задачу с использованием USB хаба и USB to Serial конвертера. Таким образом, из 3 чипов собирался нужный мне интерфейс:
https://forum.vegalab.ru/showthread.php?t=87081
Попытка объединить все в одном чипе была с проектом от maxssau на XMOS. Тоже рабочее решение, но большая проблема с доступностью чипов, особенно в нужном корпусе.
Таким образом вариант развития транспорта на pic32mz показался мне самым логичным. Первый прототип модуля был основан на проекте Алексея: по схемотехнике он практически полностью повторял оригинальный проект и был рассчитан на вывод двухканального аудио, плюс последовательный интерфейс. В процессе тестирования прошивки на основе оригинального исходного кода было выявлено несколько проблем при работе в разных ОС. Также не был до конца реализован последовательный порт.
Свою версию прошивки с исправлениями я выкладывал в оригинальной теме и на гитхаб: https://github.com/eclipsevl/york_pic32mz_uac2_osfw/
https://forum.vegalab.ru/showthread....=1#post3173229
После этого продолжил работу над нужными мне функциями. И понеслось Были реализованы:
1. Бутлоадер. Необходим для обновления прошивки по USB, без программатора.
2. Гибкая конфигурация устройства с помощью утилиты для ПК (она же используется для обновления прошивки)
3. HID интерфейс для передачи служебной информации и конфигурации устройства. Изначально я планировал использовать последовательный порт, но HID подходит куда лучше.
4. Последовательный интефейс, может быть включен опционально.
5. Различные дополнительные варианты вывода аудио: s/pdif, 8 канальный tdm, двойной i2s (для использования некоторых ЦАП поканально в моно режиме)
6. Различные варианты тактирования: генераторы модуля, внешний клок (слейв режим), тактирование от внутренней PLL.
7. I2C порт и библиотека для интеграции с SigmaStudio: для одновременного ввода/вывода аудио и программирования DSP ADAU.
Последнее на данный момент является уникальной комбинацией и удачно вписывается в проекты DSP: https://www.diyaudio.com/community/t...6#post-7522832
Утилита для конфигурации и обновлентя прошивки выглядит так:
Настройка имени устройства и PID/VID
Аудио интерфейс:
Возможности на данный момент:
1. Ввод до 2 каналов PCM, до 192кГц (384кГц при внешнем тактировании 1024fs)
2. Вывод 2 каналов PCM, до 192кГц
(384кГц при внешнем тактировании)
3. Вывод 8 каналов в режиме TDM8 (до 96кГц, при тактировании от PLL)
4. Вывод 2 каналов S/PDIF, до 192кГц при тактировании от PLL
Ну и конечно в самом простом варианте этот модуль может работать аналогично Аманеро, в слейв или мастер режиме.
DSD еще не тестировал.
Фото модуля, вторая версия.
Дополнительный 4 пиновый разъем может быть конфигурирован как i2c/uart/gpio, также используется для принудительного входа в бутлоадер (в случае неудачного обновления ПО).
Доступен в двух вариантах: USB-C и USB-B. Сам транспорт довольно компактен: уместится на площади около 2х2 см - некоторым важно для интеграции в другие устройства.
Сейчас партия едет с производства в РФ, как будут готовы - повешу объявление в толкучке. Ну и документацию тоже нужно написать
Эту тему создаю для обсуждения/обратной связи.
P.S. выражаю огромную благодарность:
1. Алексею Dortonyan за публикацию проекта. Его работа легла в основу и без нее этот проект никогда бы не состоялся
2. Всем бета-тестерам первой версии
Социальные закладки