XMOS + AK4493 с нуля для ради удовольствия и науки
#1

Добрый день коллеги и любители хорошего звука. Появилось желание послушать музыку на чем - то приличном и научиться чему - то новому. По этому решил прикрутить XMOS к AK4493 раскрыв по максимуму все функциональные возможности.
Хотелось бы создать асинхронный USB интерфейс на минимальном процессоре XU208 128 QF48 или TQ64. С этой целью я предварительно изучил тонкости написания кода и создания прошивки в их среде программирования.
А так же реализовать полный функционал по форматам (native/DOP DSD, ну и PCM до 192 к). Задействовать встроенный в AK4493 регулятор громкости с возможностью программного отключения, а так же сделать переключатель режимов работы ЦФ. Ну и в конце нарисовать несложную плату. К сожалению раньше ЦАПами не занимался, в теме недавно. С чего бы начать?



    .
Ответ
#2

Если Вы ЦАП никогда не занимались, то логично начинать с чего нибудь простого. Например, сделать тот-же назаровский FIRDAC в своей интерпретации. Надо начинать с малого, а потом постепенно с опытом и до AK4493 можно дойти.
Я, например, сейчас как-раз проектирую на основе UDA1334 ЦАП для IEM наушников. Устройство простое, но все равно есть сложности с трассировкой ПП, за 3 дня не получилось сделать.
Ответ
#3

Цитата: С чего бы начать?

Наверное, с покупки XTag-a :)

А вообще - тяжело резать задачу, в которой слишком много неизвестных.
Может для начала располовинить задачу?
Например:
1) Делать ЦАП, а ЮСБ-приемник взять на али готовый (иксмос, аманеру, симедию, комтру, еще ксинг там какой-то еще был).
2) Делать ЮСБ-применик на иксмосе, а ЦАП взять готовый, хоть простенький на али.
Ответ
#4

Что - то не могу понять как цитировать отдельные строчки на этом форуме. Добавил тег вручную...

Цитата:Например:
1) Делать АП, а ЮСБ-приемник взять на али готовый (иксмос, аманеру, симедию, комтру, еще ксинг там какой-то еще был).
2) Делать ЮСБ-применик на иксмосе, а ЦАП взять готовый, хоть простенький на али.

Я скажу свои соображения по этому поводу:

Мне не хотелось бы сразу связываться с али и делать изначально хлам, который по себестоимости будет стоить дороже минимальной конфигурации проц+(развязка)+цап+ вых фильтр по даташиту или не сложная модификация если оправданно. Кроме того, меня пугают неоднозначные прошивки китайцев и подлинность  тех же AK4493. Я понимаю, что есть риск получить на выходе тишину, по этому всё по минимуму т.к это первый ЦАП

Мой план примерно таков:

1 - определиться с управлением ЦАП (GPIO/i2c)? 
2 - определиться с портами, управлением режимами ЦФ, решить что со встроенным в ЦАП РГ (делать или забить?)
3 - Нарисовать схему, решить нужно ли задействовать SPDIF или ну его, схема управления генераторами, питание, разъем для xtag

Если в схеме нет косяков в принципе недорого заказать в Китае PCВ Prototyping, спаять и начать пробовать это прошивать.

Не знаю можно ли открыто обсуждать вопросы связанные написанием программы? (у ХМОСА открытый сурс код, но всё равно лучше спрошу). Создавать и компилировать приложения я пробовал, есть референсные образцы, которые можно перестроить под себя. С прошивкой надеюсь справлюсь сам, если что, у них есть суппорт
Ответ
#5

Сорс код там не весь открыт, по крайней мере XUD закрыт.
А "саппорт" там весьма оригинальный, на их форуме.
Ответ
#6

(11-16-2023, 11:16 AM)ActiveStalker Написал:  Мой план примерно таков:

1 - определиться с управлением ЦАП (GPIO/i2c)? 
2 - определиться с портами, управлением режимами ЦФ, решить что со встроенным в ЦАП РГ (делать или забить?)
3 - Нарисовать схему, решить нужно ли задействовать SPDIF или ну его, схема управления генераторами, питание, разъем для xtag

Подозреваю, что надо начинать с конца (схемотехники и расчета выходного фильтра)
Ответ
#7

Ну я бы в данном случае начал как раз не с с выхлопа, а со"вхлопа" - с иксмоса.
А на выход прицепил бы чисто для проверки что-то простое, и не требующее программирования, типа РСМ5102.

P.S. Собственно, в свое время я так и сделал, и даже оно дошло до мелкой серии - ATDAC-7 и первый вариант ATDAC-8 были на иксмос+5102, именно для отработки ЮСБ. (8 это была та-же от 7, только с увеличенной по ширине платой, для установки в готовую экструзию). А модель 8А уже пошла на АК4490 с программированием и с ДСД.
Ответ
#8

(11-17-2023, 03:51 PM)Black_Jack Написал:  Подозреваю, что надо начинать с конца (схемотехники и расчета выходного фильтра)
Вот не могу понять почему? Я бы просто поверил японцам и ничего не выдумывал для первого раза

(11-18-2023, 01:20 AM)Altor Audio Написал:  Ну я бы в данном случае начал как раз не с с выхлопа, а со"вхлопа" - с иксмоса.

С него и начинаю. Вчера установил Альтиум, буду пытаться рисовать (срисовывать с референса) основные принципы включения XMOS. (XTAG, USB)

(11-18-2023, 01:20 AM)Altor Audio Написал:  А на выход прицепил бы чисто для проверки что-то простое, и не требующее программирования, типа РСМ5102.

Вы правы, я боялся 4493,он сложный - много раз читал даташит, и до сих пор всего не понял. Есть цапы гораздо проще, требующие только переключатель сетки и mute. Ну и пару пинов под перемычки для выбора формата i2s и режима ЦФ. Кстати АК тоже можно управлять без i2c, там меньше функционал, но нет риска что не запустится. Возможно есть смысл просто заложить два типа управления АК - пиновое и шиной. Не смогу написать код для шины, с gpio точно справлюсь. Это один из главных вопросов.

Я подумаю над тем, чтобы сделать модульную связку на иголках, возможно в этом тоже есть смысл. Но делать что - то не требующее программирования в моем случае даже незнаю зачем, главная идея - научится. Чтобы в будущем можно было туда поставить еще DSP ADAU например, раскидать приличными цапами на многополоску.
Ответ
#9

(11-18-2023, 03:32 AM)ActiveStalker Написал:  Вы правы, я боялся 4493,он сложный - много раз читал даташит, и до сих пор всего не понял. Есть цапы гораздо проще, требующие только переключатель сетки и mute..

С РСМ5102 и этого не надо, он даже без мастерклока работать может, для всяких проверок - самое то, только подать WCLK, BLCK и DATA, можно и без мьюта, с остальным он сам разберется (одна ножка только задает I2S/LJ).

(у него есть один нюанс, но с иксмосом Вы с ним не столкнетесь, это я с СМ663x когда-то напоролся).
Ответ
#10

Ну не знаю, значительно интереснее возиться с цапом, а смысл тратить время на повторение ксинга не вижу, он и так нормально работает, его только надо переделать на ведение от генератора цапы, и я ещё после него гальваноразвязку на силабсе приделал.
Ответ
#11

Если так, то и с ЦАПом тоже можно не возится, мало ли на али готовых?
Ну поменять ему там резисторчики/коденсаторчики/операционнички на намоленные, и все.
Ответ
#12

ЦАП в большинстве случаев проще сделать с нуля нормально, чем переделывать алишные платы.
Ответ
#13

Это кому как.

Мне так и сделать с нуля плату на XMOS большого труда не составляет. А то я их мало делал...
Ответ
#14

(11-25-2023, 02:39 AM)shkal Написал:  ЦАП в большинстве случаев проще сделать с нуля нормально, чем переделывать алишные платы.

Вот именно, идея как раз в том, чтобы научиться. К сожалению у меня ушло много времени на освоение новых инструментов программирования XMOS, там всё на днях в прямом смысле поменялось. Теперь сборка осуществляется напрямую с ГитХаба, с контролем версий. Они отказались от своей среды, перенесли всё в VisualStudio, и некоторые другие IDE. Я работал на Visual, чтобы понять и перенастроить потребовалось некоторое время. Параллельно с этим я столкнулся с тем, что плату нужно в чем-то рисовать. Их референсные проекты все в Altium. Неделю пытался в него въехать, не получилось. KiCad дался куда быстрее, хотя это будет первая плата которую я в нем нарисую. Читал много о работе ЦАП и даташиты, чтобы иметь меньше вопросов по стыковке. Как для быстрого старта достаточно большой объем информации, но я справляюсь. Каждый день ставлю себе задачу что - то выучить или в чем - то разобраться.
Ответ
#15

Не могу найти внятного ответа на вопрос, что такое джиттер? Пока что я вижу: Длинна слова i2s(phillips) состоит из 32 бит, старший слева. Вордклок переключает левый и правый между двумя последними младшими битами в хвосте справа. Дальше информация попадает в регистры AK4493 и на качество ее дальнейшего пути повлиять мы не можем. Как я понял из того что прочитал, джиттер - это дрожание линии данных относительно вордклока. Что же должно такого произойти, чтобы получилась ошибка? Переключение происходит на пустых битах, даже если аудиосигнал 24 бит. Аудиопроцессор принимает USB Data, загоняет их в буфер - дай Бог ему не переполнятся, дальше данные попадают на аудиоядро(i2s), которое синхронизируется от внешнего мастерклока и с его помощью формирует PCM. Допустим генератор MCLK кривой (выдает нестабильную частоту) - то есть одинаково кривой для ЦАП и процессора, они параллельны. Процессор на основании его формирует правильный PCM. Откуда ошибка?
Ответ
#16

(11-28-2023, 11:45 AM)ActiveStalker Написал:  Не могу найти внятного ответа на вопрос, что такое джиттер?

https://forum.vegalab.ru/showthread.php?t=64369

Цитата: Как я понял из того что прочитал, джиттер - это дрожание линии данных относительно вордклока.

Нет, на джиттер линии данных вообще наплевать, он ни на что не влияет, в разумных пределах (а эти "пределы" - на несколко порядков  больше того, что  в реальности с ним может быть).

Влияет джиттер того сигнала, к которому привязан процесс преобразования цифры в аналог.
Для антикварных параллельников, это как правило волрдклок или битклок.
Для практически всех современных - это мастерклок.
Ответ
#17

А вот объясните пожалуйста, для чего тратить время жизни на изучение программирования xmos? В случае ЦАПа это понятно - любые детали прямо влияют на звук устройства, а платочка usb-i2s либо работает ,либо нет. Единственная причина имхо - если вы собираетесь выпускать свой цап серийно.
Ответ
#18

(11-28-2023, 01:42 PM)shkal Написал:  А вот объясните пожалуйста, для чего тратить время жизни на изучение программирования xmos? В случае ЦАПа это понятно - любые детали прямо влияют на звук устройства, а платочка  usb-i2s  либо работает ,либо нет. Единственная причина имхо - если вы собираетесь выпускать свой цап серийно.

Увлекался звуковыми системами всегда и электроникой, а работал в вебдизайне (php, js, react, cms wordpress, css). Работа жутко не нравилась хотел потихоньку учить С, С++ чтобы в дальнейшем переходить на программирование железок. А звуковая платка неплохой мотиватор

(11-28-2023, 01:42 PM)shkal Написал:  а платочка usb-i2s либо работает ,либо нет.

Да нет, конечное устройство всегда изначально будет сырым. А криво заставить работать можно что угодно, не зря библиотеки постоянно обновляются.
(11-28-2023, 01:14 PM)Altor Audio Написал:  https://forum.vegalab.ru/showthread.php?t=64369
Спасибо, Очень доходчиво!
Ответ
#19

(11-28-2023, 01:42 PM)shkal Написал:  А вот объясните пожалуйста, для чего тратить время жизни на изучение программирования xmos?

Я в свое время, потратил не так уж и много.
Процессор конечно несколко особенныею от остальныз МК, но главная "борьба" там обчно изет не столько с ним. сколько с UAC, и особенно - с горбатым Эклипсом.
Который такой-же кривой, как и все что из пынгвынов выростает.

Правда. то что они сейчас придумали, оно еще хуже, так что, посижу я пока в Эклипсе. с 13-й (иногда с 14-й) версией XTime Composer Studio.

Цитата:В случае ЦАПа это понятно - любые детали прямо влияют на звук устройства,

Ну не совсем "любые", конечно, но ведь так и про ЦАП можно сказать - "делай как в даташите нарисовано", и не надо ничего выдумывать.

Цитата:а платочка  usb-i2s  либо работает ,либо нет.


Не всегда.
А если от этой платы хочется чего-то иного, чего нет в плате с али?
Чисто функционально, не говоря уже о конструктиве (форме, габаритах и т.п.).

Например многоканал?
Или как в данном случае - управление ЦАПом? 
АК4493 конечно можено запустить в хардверном реждиме, не тредующем управления, но наверное захочется чтобы и DSD играло, и многое другое. что можно только при управлении чипом.


Цитата:Единственная причина имхо - если вы собираетесь выпускать свой цап серийно.

Это как раз не причина. например - сколько серийных девайсов с той-же Аманерой, которую покупают готовой, и никто не заморачивается с ее програмированием?
Ответ
#20

Вопрос: реально ли запаять в домашних условиях корпус 60-VFQFN (xmos xu 316)? или лучше не рисковать и делать на TQ64? Смотрю на него 7.5 мм х 7.5 мм, по 15 ножек с каждой стороны, пайка снизу, залипуху в случае чего видно не будет TQ64 сильно больше, и выводы как у соика торчат наружу, всё видно. Феном ни разу в жизни не пользовался ( и утюгом снизу платы тоже )... К сожалению все их хорошие процессоры на 60-VFQFN
Ответ


Возможно похожие темы ...
Тема / Автор Ответы Просмотры Последний пост

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)