roboforum.ru

Технический форум по робототехнике.

Обработка/работа с звуком на МК

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Обработка/работа с звуком на МК

Сообщение Madf » 17 авг 2015, 16:39

Вот решил создать тему (не уверен, что правильно выбрал раздел, заранее извиняюсь). :oops:

Решил для начала, ради эксперимента (для понятия возможностей), собрать схему (на "соплях"/макетках): LTC1865 (АЦП 16-бит) -> XMega32A4 -> DAC (встроенный, 12-бит).
В качестве источника звука, использую выход оптика компьютера -> dac или смартфон (с аналога). Уровень сигнала варьируется приблизительно от 500мВ до 2В (в зависимости от источника).
Выход использую обычный, дешевый, китайский усилитель (на ШИМе), такой.
По входу АЦП рассчитал/поставил ФНЧ (на резисторе и ёмкости), чтобы ВЧ резалась свыше 22-25кГц.
Код обсуждать не будем, пока в этом проблем не чувствую, мне бо по аналоговой части разобраться. АЦП загружен по разрядности около на 73%, на ЦАП сделал расчет коэффициента до 99-100% (чтобы было по возможности на полный размах).
АЦП/ЦАП все однополярные, линейные (от 0 и до макс числа (нет смещенной нулевой точки). Процент посчитал программно (проиграл 3 музыкальные композиции, а потом вывел макс. число). :D
Схема шумит, но на это пока глаза закрыл (ибо всё на коленках сделано).
Вся игрушка вроде бы поёт, но качество меня совсем не устраивает. Причем не по частотам, а потому как оно "играет", проблема заключается в том, что складывается такое ощущение, будто происходит искажение сигнала в районе средних частот (низы вроде нормальные). АЦП как-то непонятно шумит/звенит. Грешил по началу на его "μPower", ведь эта штука, вваливается в спячку каждый раз и потом просыпается для измерения (по сигналу). Может он вообще не предназначен для такого использования? Взять какой-то другой для этих игр? Или я что-то неправильно делаю? Может есть нюансы с нулевой точкой? Или обязательна обвязка (на ОУ)?
Ещё заметил, если просто подключить к АЦП переменный резистор и попробовать измерить сопротивление в покое, то значения на выходе дрожат в районе 5 шагов (ранее игрался встроенным АЦП в МК - таких проблем не было, значение держит четко), но думаю это тут не причем, это просто шумы, которые надо потом будет убрать нормальным монтажом.

зы: Ранее с аналогом дела не имел, по этому и решил спросить совета опытных. :sorry:
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение elmot » 17 авг 2015, 22:22

Возьми готовую плату stm32f4-discovery. Звук уже сбацан, включая микрофон и выход на джек. И по производительности вопросов не будет.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Обработка/работа с звуком на МК

Сообщение Madf » 17 авг 2015, 23:30

Хех, лежит эта штука на полке у меня, и ЦАП там 24 бита, и прошивка превращающая её в звуковую карту уже ранее мной зашита...
Но демо пример работает весьма посредственно (это понятно, что исправимо), АЦП внешнего там нет (проблему с оцифровкой как бы не решает) и не привык я к STM. :( Но идея конечно хороша, спасибо. :friends:

Пока идеи ещё есть, попробую синус подать от генератора и посмотреть на осциллографе (что происходит на выходе). :crazy:
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Duhas » 19 авг 2015, 10:03

сэмплы запишите и выложите, послушаем, ну и в идеале ставить звуковые АЦП ЦАП...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Обработка/работа с звуком на МК

Сообщение Madf » 19 авг 2015, 11:27

Звуковые АЦП/ЦАП обычно управляются все по I2S, там скорости может не хватить для работы с ними, но я в этом направлении тоже думаю, надо попробовать (пока заказал только ЦАП, приедет - поиграюсь).
Сэмплы и картинки хотел выложить, пока времени не хватает...

А то люди вон что делать ухитряются. :shock:
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Angel71 » 19 авг 2015, 11:49

к чему все эти извращения? полно младших армов с i2s. или вы хотите с мк застрять также, как и с яп?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Обработка/работа с звуком на МК

Сообщение Duhas » 19 авг 2015, 16:25

все зависит от цели. если цель тяп ляп и в продакшен - одни подходы, а если поковыряться - другие..

мне мелочи на асме в продакшн ничего не мешает делать кстати, да и не мелочи порой тоже.
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Обработка/работа с звуком на МК

Сообщение elmot » 20 авг 2015, 17:05

стесняюсь заявить, что на F4 есть 2шт I2s

Добавлено спустя 7 минут 45 секунд:
Madf писал(а):А то люди вон что делать ухитряются. :shock:

Да он упоротый!

Очередной шедевер на тему девборды от стм

http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF261641?icmp=pf261641_pron_pr-massmarket_jun2015&sc=stm32f7discovery-pr
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Обработка/работа с звуком на МК

Сообщение Madf » 20 авг 2015, 17:40

Вообще задача была:

- изучить/понять реальные физические процессы АЦП/ЦАП (требуемые для приемлемого качества (на слух);
- оценить требовательность производительности.

В зависимости от этого, понять, как лучше решать/применять ряд задач.
Конечная цель: иметь возможность делать миниатюрное, с малым потреблением устройство и за адекватные деньги (т.к. хобби). Да и вообще, возможно это или нет.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Angel71 » 20 авг 2015, 17:59

:ROFL: сделайте свой цап/ацп, поймёте физические и какие там ещё процессы. :) не ... мозг. арм, значит арм. на крайняк посмотреть чего из экзотики, может у того же цайпресс чего есть недорогое.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Обработка/работа с звуком на МК

Сообщение Madf » 22 авг 2015, 20:01

И так, после увиденного, решил сами записи/звуки не выкладывать, ибо уже видна суть проблемы:

Дискретизация (АЦП - CONV):
ltc1865_conv.gif
ltc1865_conv.gif (5.14 КиБ) Просмотров: 3461


Входной сигнал в АЦП (генератор синуса 2кГц):
ltc1865_in2.gif
ltc1865_in2.gif (4.25 КиБ) Просмотров: 3472

(шумный, но терпимо)

Выход ЦАП:
ltc1865_out.gif
ltc1865_out.gif (3.82 КиБ) Просмотров: 3463

В другом разрешении (по напряжению):
ltc1865_outZoom.gif
ltc1865_outZoom.gif (4.35 КиБ) Просмотров: 3468


Как мы видим, АЦП не чухает вторую половолну синуса. Хоть всё однополярное (по питанию), но всё равно идет какое-то отрицательное значение. Как преобразовать этот сигнал в однополярное?

Добавлено спустя 28 минут 56 секунд:
Сейчас АЦП использую в режиме "SINGLE-ENDED MUX MODE". В моей ситуации, есть два варианта, это: переключить его в режим "DIFFERENTIAL MUX MODE" или использовать схему с операционником, для смещения нулевого напряжения (биполярного в однополярный).
Какой способ лучше - не знаю. :P
В первом случае, IN- кидаю на землю, а входной сигнал подаю на IN+? Или этого недостаточно?

В втором, надо настраивать или как-то расчитывать эту точку смещения...? Из операционников сейчас едет ко мне NE5532, как на нём это организовать (если он вообще подходит)?
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Madf » 23 авг 2015, 20:41

Поигрался тут в симуляторе на счет смещения на операционнике:

sheme.gif


Смещения добился, но жестко на пол размаха питания. Любые попытки перерасчитать делитель, чтобы уменьшить смещение, приводит к тому, что сигнал пропадает.
Плюс получить полный размах при смещении - не удаётся, всё делиться пополам... :(
В общем доверия к симулятору нет, но для стартапа пойдёт. Приедет ОУ - попробую в живую.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Aseris » 24 авг 2015, 13:20

Мнда... читать теорию по операционникам, АЦП, смотреть аппноты... тема как хорошо гулять по граблям...
Смещение задается на вход + Сигнал идеи на -. либо взять два ОУ один усилитель-инвертор, второй инвертор со смещением...

Сейчас полно дев боардов под обработку звука. Хотя я бы сначала конкретно цель поставил - напр такието еффекты, такая то задержка... и тп
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Re: Обработка/работа с звуком на МК

Сообщение Madf » 24 авг 2015, 16:37

Aseris писал(а):Мнда... читать теорию по операционникам, АЦП, смотреть аппноты... тема как хорошо гулять по граблям...

Я для этого на форум вылез, с опытными беседы вести, а не отстреливать в гуглы (где я весьма не мало времени убил и результат пока нулевой).
Aseris писал(а):Смещение задается на вход + Сигнал идеи на -.

А у меня что нарисовано? :roll:

зы: хотя я немного лукавлю, нарыл ещё два направления/решения моей задачи (уже всё за нас сделано магнатами). :oops:
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Обработка/работа с звуком на МК

Сообщение Aseris » 25 авг 2015, 13:14

У тебя сигнал идет на + и делитель там же... При несиметричном делителе у тебя нелинейный усилитель получается...
Вчера незаметил еще и обратная связь (вых. к вх.-) сделана неправильно, в реале схема незаработает, 0 у тя плавающий - Вобше для начала датащит посмотри на ОУб там типовые схемы включения дают..
Последний раз редактировалось Aseris 25 авг 2015, 13:17, всего редактировалось 1 раз.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6