Простой USB-аудио ЦАП (опытный образец)

Все о цифро-аналоговых преобразователях любых типов

Модератор: Алаев Ян

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#21

Сообщение poty » 14 май 2015, 11:11

Искажения на синусоиде становятся заметны примерно с уровня 2%, так что это вряд ли является хорошим индикатором. Что касается спектра, то здесь нужно исходить из точности цифрового преобразования (определяющего динамический диапазон). То, что вижу я сейчас на спектре, мне кажется неприемлемым, поскольку уровень полочки за пределами активного сигнала болтается в районе -45дБ. Даже теоретически, если смотреть по такому результату, то увидеть можно лишь искажения от 0,6% и выше. Думаю, с этим справится любой ОУ.
Фазовые и частотные искажения нужно искать в меандре. Джиттер, к сожалению, толком не поймать с таким оборудованием, как и ошибки ЦАП.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

Тест меандром

#22

Сообщение Алаев Ян » 14 май 2015, 12:03

poty писал(а):То, что вижу я сейчас на спектре, мне кажется неприемлемым, поскольку уровень полочки за пределами активного сигнала болтается в районе -45дБ.
это проблема используемого оборудования для измерений или это проблема ЦАП?

Попробовал пустить прямоугольный сигнал...
Результаты странные, то ли ЦАП сигнал так гробит, то ли в этих тестовых записях реально так записано, непонятно, надо искать альтернативу.

Результаты:
100 Гц.jpg
100 Гц
300 Гц.jpg
300 Гц
1000 Гц.jpg
1000 Гц
3000 Гц.jpg
3000 Гц
Сам подаваемый сигнал в записи ослаблен на 12 дБ.

Использовались треки:

https://cloud.mail.ru/public/MMWH/xr1cLiJSq

https://cloud.mail.ru/public/V13x/ZSuAXChrS

https://cloud.mail.ru/public/HLue/hHNR7UdDQ

https://cloud.mail.ru/public/3s71/dtrKSxBU7

Наверное, надо попробовать выход звуковой карты посмотреть, есть ли там такая же белиберда или сигналы там ровные выходят.
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#23

Сообщение poty » 14 май 2015, 12:51

Алаев Ян писал(а):это проблема используемого оборудования для измерений или это проблема ЦАП?
Это может быть и то, и другое. Реально, для начала, стоит померить уровень ограничений по шуму на входе осциллографа ("померить" сопротивление 51Ом, никуда не подключенное). Затем подключить осциллограф к выходу устройства, воспроизводящего тишину. Если уровень шума станет больше, то точности осциллографа хватает для его измерения, если нет, то... Затем уже что-то воспроизводить. Желательно проверить воспроизведение нескольких уровней сигнала. Тогда будет ясно соотношение "шума" и НИ.
С прямоугольным сигналом действительно беда. На 100Гц явно полочка падает (значительный спад АЧХ), выбросы на фронтах и спадах - это фазовые проблемы, то, что они короткие означает, что это проблемы на ВЧ. Шум на полочках 300Гц и выше - тоже неприемлемый. Непонятно, откуда он вообще взялся. Фактический развал импульса на 3кГц говорит о том, что и на ВЧ большой завал АЧХ. И откуда-то частота в 7 раз превышающая 3кГц берётся?
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#24

Сообщение Алаев Ян » 14 май 2015, 14:22

Уровень шума на резисторе 51 Ом: 12 мВ (пик пик)/2.26 мВ (rms)
Уровень шума на подключенном устройстве: 30.4 мВ (пик пик)/9.16 мВ (rms)
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#25

Сообщение poty » 14 май 2015, 15:25

Алаев Ян писал(а):Уровень шума на резисторе 51 Ом: 12 мВ (пик пик)/2.26 мВ (rms)
Относительно уровня сигнала в 1,4В от пика до пика (0,7В амплитудного или 0,5В RMS), что составляет -4dBu, шум измерителя составляет -50dBu. Разница только в том, что сигнал у нас сосредоточен, в основном, вокруг 1кГц, а шум измерителя "размазан" по всему измеряемому диапазону (и я думаю, отнюдь не равномерно).
Но подключенное устройство имеет ещё больший уровень шума: -38дБu. Правда, этот шум тоже может иметь неравномерное распределение по частоте и не всегда быть слышимым из-за этого. Скажем прямо, мне пока сложно оценить эти цифры на видя частотного распределения. Первое впечатление - высоковат шум-то.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

Анализатор спектра на базе осциллографа

#26

Сообщение Алаев Ян » 15 май 2015, 11:35

Ради любопытства, я решил подать такой же сигнал с генератора прямо на осциллограф, настроенный в режиме анализатора спектра.

Вот результат, картинка точно такая. Полочка на уровне -45 дБ как и в предыдущих результатах. Складывается впечатление, что осцилл, в принципе, не может мерить точнее.
2015-05-15 10.26.40.jpg
Алаев Ян писал(а):Уровень шума на резисторе 51 Ом: 12 мВ (пик пик)/2.26 мВ (rms)
Уровень шума на подключенном устройстве: 30.4 мВ (пик пик)/9.16 мВ (rms)
Начал грешить на шумы, которые приходят с компа, все таки, устройство целиком питается от USB. Подключил ЦАП к телефону, который питается от аккумулятора и провел измерения еще раз.
Уровень шума на резисторе 51 Ом: 10.4 мВ (пик пик)/4.16 мВ (rms) - осцилл я переставил в другое место, а вот распределение напряжения достаточно странное, я пользовался исключительно математикой осцилла для определения этих цифр, глазами их считать крайне неудобно.
Уровень шума на подключенном устройстве (телефон): 24.8 (пик пик)/5.43 (rms) - поменьше, чем у ПК, но я бы не сказал, что сильно меньше, порядок тот же.
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#27

Сообщение poty » 15 май 2015, 17:32

Думаю, это внутри АЦП стоит малобитовый.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#28

Сообщение Алаев Ян » 15 май 2015, 19:38

ну, т.е. проблема в осциллографе, правильно?
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#29

Сообщение poty » 15 май 2015, 20:46

Предполагаю, что да.
Владислав

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#30

Сообщение poty » 17 май 2015, 13:57

Вот что лень человеческая со мной делает! В первом же сообщении об измерениях была ведь ссылка на параметры осциллографа! Читаем:
Разрешение по вертикали 8 бит.
8 бит - это 256 уровней. Значит, минимальная разница уровней 1/256, в логарифмическом выражении 20log(1/256)=-48дБ. И никаких гаданий на кофейной гуще.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#31

Сообщение Алаев Ян » 17 май 2015, 14:33

poty писал(а):в логарифмическом выражении 20log(1/256)=-48дБ. И никаких гаданий на кофейной гуще.
точно! :-)
Стремление к совершенству рождает шедевры!

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

Внешнее питание для ЦАП

#32

Сообщение Алаев Ян » 24 июн 2015, 01:14

Недавно столкнулся с такой ситуацией - остался без ноутбука, а слушать музыку смерть как хотелось. Я подключил телефон к ЦАПу, открыл профиль youtube и запустил любимую музыку. Проблема в том, что музыку я слушал недолго, так как питание ЦАПа осуществлялось от телефона. Похоже, придется сделать внешнее питание для подобных случаев, но тут меня терзают некоторые сомнения, а скорее, незнания внутреннего устройства шины питания USB. По идее, там только 4 провода, два из которых питание, стало быть, по одним и тем же проводам питание как выводится наружу, так и входит в сам телефон, например, во время зарядки.

Изначально хочется сделать так:
2705_v1.JPG
Доработки отмечены цветом
Но сразу появляется желание подзарядить телефон пока он, все равно, питается от внешнего БП...
Получается, что и разъединять ничего не нужно, нужно просто подать параллельно внешнее питание...
Вроде бы, все просто и понятно, но немного напрягает тот факт, что шина USB одновременно и отдает и принимает напряжение. Хотя, возможно, контроллер заряда внутри как-то определяет в какую сторону раздавать/принимать напряжение.
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#33

Сообщение poty » 24 июн 2015, 10:35

Алаев Ян писал(а):немного напрягает тот факт, что шина USB одновременно и отдает и принимает напряжение. Хотя, возможно, контроллер заряда внутри как-то определяет в какую сторону раздавать/принимать напряжение.
Я бы сказал, что контроллер управляет этим напряжением :) . Т.е., есть определённый алгоритм его действия, в зависимости от того, в каком обличьи он используется. Например, для стандартного компьютера контроллер может быть в одном из трёх состояний:
1. Выключено питание.
2. Дежурное питание.
3. Полное питание.
Всё это определяется драйверами и логикой их работы. Аналогично, для обычного переносного устройства (например, флэшки), контроллер устройства определяет наличие дежурного напряжения на своём входе, включает протокольный блок, который в процессе обмена данными запрашивает у хост-контроллера необходимое питание. Если хост-контроллер имеет возможность обеспечить такое питание - он его подаёт и извещает об этом контроллер устройства. Если нет - устройство отключается с соответствующей ошибкой, передаваемой через драйверы.
Для сложных устройств, которые одновременно могут являться и хостами и устройствами, логика может быть более изощрённой. Но не думаю, чтобы очень. Скорее всего, если подключается некоторое внешнее устройство и передаёт, что оно - хост, контроллер включает потребление тока. Если наоборот, то сложным устройством подаётся собственное питание.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#34

Сообщение Алаев Ян » 24 июн 2015, 11:08

Внимательно изучил Datasheet.
Пришел к выводу, что в случае с внешним питанием включение должно быть таким:
2705_v1.JPG
Вот не пойму теперь, можно ли в таком режиме еще и телефон зарядить как-нибудь???
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#35

Сообщение poty » 24 июн 2015, 17:06

PSEL (pin 4 for PCM2704/5, pin 16 for PCM2706/7) is dedicated to selecting the power source. This selection affects the configuration descriptor. While in bus-powered operation, maximum power consumption from VBUS is determined by HOST (pin 21 for PCM2704/5, pin 3 for PCM2706/7). For self-powered operation, HOST must be connected to VBUS of the USB bus with a pulldown resistor to detect attach and detach. (To avoid excessive suspend current, the pulldown should be a high-value resistor.)
Table 1. Power Configuration Select
PSEL DESCRIPTION
0 Self-powered
1 Bus-powered
HOST DESCRIPTION
0 Detached from USB (self-powered)/100 mA (bus-powered)
1 Attached to USB (self-powered)/500 mA (bus-powered)

Что можно перевести как:
Вывод PSEL (№4 для PCM2704/5, №16 для PCM2706/7) предназначен для выбора источника питания. Этот выбор влияет на блок конфигурационных параметров. Когда устройство питается от USB-шины максимальная потребность в токе определяется выводом HOST (№21 для PCM2704/5, №3 для PCM2706/7). Для питания от отдельного источника HOST должен быть подключён к выводу Vbus разъёма USB, при этом между HOST и землёй должен быть подключен резистор, для передачи события подключения и отключения USB-кабеля. (Для исключения ненужного тока утечки, резистор должен иметь высокий номинал).

Таблица 1. Выбор вариантов питания
Описание возможных значений PSEL
0 - питание осуществляется от внутреннего источника питания
1 - питание осуществляется от USB
Описание возможных значений HOST
0 (при питании от внутреннего источника питания) - отключен от USB / (при питании от USB) требуется 100мА
1 (при питании от внутреннего источника питания) - подключен к USB / (при питании от USB) требуется 500мА
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#36

Сообщение Алаев Ян » 24 июн 2015, 17:21

poty писал(а):Описание возможных значений PSEL
0 - питание осуществляется от внутреннего источника питания
1 - питание осуществляется от USB
Я тут немного не согласен. 0 Self-powered - это не внутренний источник питания. Это скорее независимый внешний источник питания, что у меня и реализовано с помощью двух стабилизаторов. 1 Bus-powered - это включение внутренних стабилизаторов, которые запитываются от шины USB. Внутри микросхемы есть стабилизатор на 3.3В, который включается когда PSEL=1. С этими регистрами у меня все правильно сконфигурировано, это точно.
Скриншот 2015-06-24 17.19.09.png
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#37

Сообщение poty » 24 июн 2015, 17:23

По-моему, ты сам себе противоречишь! :)
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#38

Сообщение Алаев Ян » 24 июн 2015, 17:24

poty писал(а):Для питания от отдельного источника HOST должен быть подключён к выводу Vbus разъёма USB, при этом между HOST и землёй должен быть подключен резистор, для передачи события подключения и отключения USB-кабеля. (Для исключения ненужного тока утечки, резистор должен иметь высокий номинал).
А вот этого я не заметил. У меня сейчас Vbus и HOST соединены напрямую. Интересно, но у меня детектируется подключение устройства!
poty писал(а):По-моему, ты сам себе противоречишь!
не исключено, но я пока противоречия не вижу.
Стремление к совершенству рождает шедевры!

Аватара пользователя
poty
Профи
Профи
Сообщения: 3273
Зарегистрирован: 24 мар 2014, 10:00
Откуда: Россия, Москва
Поблагодарили: 1 раз

#39

Сообщение poty » 24 июн 2015, 20:43

Согласно структурной схеме ни PSEL, ни HOST никак не воздействует на внутренний стабилизатор, зато они подключены к блоку генерации USB протокола. Если в datasheet микросхемы спуститься чуть ниже того момента, выдержку которого я привёл, то можно увидеть структуру и значение заголовков USB. В блоке Configuration Descriptor четко расписано, что делают биты по этим входам. Фактически, PSEL выключает питание с USB хоста (запрашивает минимальные 20mA). Если этого не сделать, микросхема будет запрашивать 100мА или 500мА, в зависимости от состояния HOST.
Параллельно внутри микросхемы входом PSEL подключается Vbus к внутреннему стабилизатору. Однако, если разорвать связь вывода Vbus микросхемы с разъёмом USB, то можно питать устройство и внутренними ( по отношению к устройству, я из назвал внешними, потому что рассматривал их относительно USB) блоками питания.
Владислав

Аватара пользователя
Алаев Ян
Основатель Форума
Сообщения: 2285
Зарегистрирован: 19 мар 2014, 12:05
Откуда: Саратов
Благодарил (а): 1 раз

#40

Сообщение Алаев Ян » 24 июн 2015, 21:24

poty писал(а):Фактически, PSEL выключает питание с USB хоста (запрашивает минимальные 20mA)
Я правильно понимаю, что если PSEL=0, то и встроенный регулятор работать не должен? У меня в схеме PSEL=0, внешнее питание со стабилизатора подается на Vbus и другие выводы микросхемы. Просто неправильно будет, если питание подается на микросхему извне и еще внутренний регулятор тоже пытается питать микросхему, так как питание подано на Vbus.
poty писал(а):Если этого не сделать, микросхема будет запрашивать 100мА или 500мА, в зависимости от состояния HOST.
Вот эту фразу я с трудом понимаю. Что значит будет запрашивать 100 или 500 мА? Т.е. микросхема заранее предупреждает компьютер насколько она собирается нагрузить его USB порт?
Стремление к совершенству рождает шедевры!

Ответить