Страница 1 из 2
AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Вс июн 01, 2008 17:21:48
RomixERR
Имеется контроллер ATMega16, имеется свободный порт B. Порт с частотой 8000 Гц меняет свое состояние (от 0 до 255 и обратно). Хочу получить звуковой сигнал типа синусоиды или любой другой в зависимости от цифровой матрицы в памяти контроллера.
Первый раз столкнулся с необходимостью применения ЦАП, тоесть хочу зацепить ЦАП на свой 8 битный порт, на выходе получить пропорциональный сигнал от 0 до 5, скажем, вольт. Его усилить и подать на динамик.
Посоветуйте, пожалуйста, самый простой ЦАП, желательно несколько (включая аналоги), у меня в схеме не предусматривается двуполярное питание, должно быть все как можно проще!
Или подскажите, как еще можно вывести звук с МК?

Добавлено: Вс июн 01, 2008 17:39:46
ArtemKuchin
Я тут новенький и ваще не крутой. Но могу посоветовать несколько вещей:
1) Использовать ШИМ (PWM) от таймера или сделать софтовый ШИМ на выходе.
2) Если есть весь порт, то может быть как-то прикрутить резисторную лестницу
http://www.rlocman.ru/shem/schematics.html?di=44633
3) По поводу самого подключения я сам недавно спрашивал, вот:
http://www.radiokot.ru/forum/viewtopic.php?t=9353
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Вс июн 01, 2008 19:22:46
Pahan
RomixERR писал(а):Посоветуйте, пожалуйста, самый простой ЦАП, желательно несколько (включая аналоги), у меня в схеме не предусматривается двуполярное питание, должно быть все как можно проще!
Или подскажите, как еще можно вывести звук с МК?

Самый простой ЦАП - R-2R матрица из резисторов.
Если кто помнит, был татой девайс для компов, COVOX - вешался на LPT порт.
А при использовании ШИМ ЦАП ваще не нужен.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Вс июн 01, 2008 20:06:21
ARV
Pahan писал(а):А при использовании ШИМ ЦАП ваще не нужен.
зато нужен фильтр низких частот

Добавлено: Вс июн 01, 2008 20:20:32
RomixERR
Во! Пасиба, R-2R -довольно любопытная схемка. Я сам пытался сочинять, подобие делителя и вешать на порт - получилось кривовато).
С ШИМ - к сожалению не работал, вернее делал программно, но аппаратный, я понимаю - по лучше будет. Почитаю.
Изучаю Скопетрис - потрясно))

Добавлено: Вс июн 01, 2008 20:31:29
RomixERR
И все же, бывают ли ЦАПы без лишнего гемора? Что-бы примерно так было: подпаял порт, VCC, GND, выход и пользуйся?
Добавлено: Вс июн 01, 2008 22:29:17
Fuvuchuas
Если надо вывести звук с микросхемы могу предложить использование УМС-8 (или УМС-7, зависит от нужного времени записи звука). Если я не ошибаюсь в УМС-8 можно записать 20 секунд, где-то читал как можно записать в УМС звуковую информацию но не помню где. Мало , можно еще несколько штук добавить, а ими уже управлять микроконтроллером.
Вот типовая схема включения
http://kazus.ru/articles/314.html
Добавлено: Вс июн 01, 2008 22:37:11
ArtemKuchin
RomixERR писал(а):И все же, бывают ли ЦАПы без лишнего гемора? Что-бы примерно так было: подпаял порт, VCC, GND, выход и пользуйся?
Конечно бывают. В старших моделях МК встраивают.
и отдельно чипы есть
вот например
http://www.analog.com/UploadedFiles/Dat ... AD5398.pdf
и вот туева хуча
http://www.chip-dip.ru/search.aspx?searchtext=%F6%E0%EF
тока дорогие они, блин
Добавлено: Пн июн 02, 2008 16:53:34
RomixERR
Да, 300рэ. Дороже самого контроллера)
Ну пасиб, буду изучать рынок)
Добавлено: Пн июн 02, 2008 19:57:45
RomixERR
Эврика!
ШИМ работает!
Почитал кое-что)
В архиве маленький проэкт-пример работы с ШИМ на Algorithm Builder и скриншоты эмуляции в ISIS 6.
Иду мучать контроллер, а потом дописывать свой Поли-проект.))
PS: Глупости какие-то, вложение не мб больше 128Kb!
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Пт апр 30, 2010 21:58:45
YS
Товарищи, а кто подскажет, как связана минимально необходимая частота ШИМ и максимально возможная частота выходного сигнала? Ну, типа теоремы Котельникова-Найквиста, только для ШИМ? С обычным ЦАП понятно - частота выборок должна быть минимум в два раза выше частоты сигнала. А вот во сколько раз частота ШИМ должна быть больше частоты выборок?
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 06:44:46
UN7TGT
2YS
А разве есть четкая граница? Думаю, что на слух приемлемо будет F(PWM)=2Fmax. А по сути хватит и 1Fmax. Тут важней ФНЧ: не будет ли его кривая резать вашу Fmax.
Это я так думаю.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 12:46:13
YS
Мне кажется, таки есть. Единственный разумный критерий, который я могу придумать - при минимальной частоте ШИМ конденсатор фильтра должен успевать полностью зарядиться (T=RC, тогда время полной зарядки ~3T) за время полного периода ШИМ (k=100%). Тогда, если мы хотим макс. частоту 20КГц, период ШИМ должен быть как минимум в три раза меньше, т.е. частота должна быть как минимум 60КГц.
А по сути хватит и 1Fmax.
Неее, вот это точно не хватит. Частота ШИМ должна обрезаться фильтром. И чем сильнее, тем лучше. Для этого она должна находиться за верхней границей выходной частоты, и чем дальше, тем лучше.
Мой вопрос можно переформулировать так: во сколько раз частота ШИМ должна быть больше частоты синтезируемого сигнала, чтобы качество не уступало параллельным и сигма-дельта ЦАП (чтобы можно было получить полноценное, не терпимое, а вполне приятное на слух, воспроизведение)?
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 14:07:01
DrWatson
Наверное, можно порассуждать так: если частота ШИМ будет в 10 раз выше частоты полезного сигнала, и на выходе поставим ФНЧ первого порядка с частотой среза равной частоте полезного сигнала, то получим ослабление частоты ШИМ на выходе 20 дБ (на частоте полезного сигнала), если частота ШИМ будет выше частоты полезного сигнала в 100 раз, то с тем же ФНЧ получим ослабление частоты ШИМ на выходе 40дБ, а с ФНЧ второго порядка - 80дБ - что на слух вполне приемлемо, ну а дальше искать формулы и по ним считать для разных частот ШИМ и порядка фильтров.
Хотя с учетом того, что человеческое ухо само работает как ФНЧ, то наверное частоты ШИМ в два раза выше частоты дискретизации наверное будет достаточно с простым фильтром. Но это уже только для воспроизведения звука, и еще неизвестно, как на такой сигнал отреагирует звуковой тракт от фильтра до динамика.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 14:21:51
YS
Хм. Мне казалось, дело не только в ослаблении частоты ШИМ. Ведь максимальная частота по-любому завязана на время установления уровня на конденсаторе. Очевидно, что получить сигнал частотой 20КГц при частоте ШИМ 2КГц принципиально невозможно, как его не фильтруй. Или я не прав?
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 15:16:01
DrWatson
Естественно, частота ШИМ должна быть выше частоты полезного сигнала, под ослаблением частоты ШИМ я понимаю ослабление составляющей спектра соответствующей частоте самого ШИМ в выходном сигнале, ослабление это делается фильтром низкой частоты. Т.е. При максимальной частоте полезного сигнала 20кГц, частота ШИМ должна быть (на мой взгляд) не меньше 40 кГц. При таком раскладе с ФНЧ первого порядка с частотой среза 20кГц в спектре выходного сигнала будет наблюдаться несущая ШИМ частотой 40кГц ослабленная на 6 дБ по сравнению с 20кГц, если будем таким ЦАПом формировать частоту 20кГц. Однако человеческое ухо эти 40кГц отсеет само и услышит (если способно) только 20кГц, при том, что на осциллографе будет бяка, а не чистые 20кГц.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 15:36:57
UN7TGT
2YS
А зачем вам заряжать конденсатор полностью? Зарядится на треть или сколько там и достаточно. Потом разрядится
Мне думается, что для красивого звучания ШИМ не подходит. Объясню почему: уровень сигнала передается в линейной зависимости, в виде ширины импульса. Который затем преобразуется в соответствующий уровень напряжения _нелинейным_ процессом заряда разряда конденсатора. В любом случае будут искажения. Наверное фазовые. Т.е. чтобы избавиться от этих фазовых искажений Вам придется задирать частоту ШИМа так высоко, чтобы можно было пренебречь разницей в скорости заряда (разряда) конденсатора между соседними отсчетами оригинальной кривой. Потом еще ФНЧ.
Вот если бы смешать ШИМ с точно такой же _пилой_, да поставить схему сравнения с запоминанием состояния. Вот тогда бы получился линейный процесс. Но это все уже фантазии. Внешний ЦАП на SPI заменит весь геморрой.
Это я так думаю
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 15:41:18
UN7TGT
О! в голову пришла еще одна мысль:
Заряжать и разряжать кондер не резистором а источником и приемником тока. Процесс будет линейным.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 15:46:35
DrWatson
Касательно звука: можно ШИМ не фильтровать, а напрямую подключить к широкополосному усилителю мощности (с полосой пропускания сотни кГц, т.е. на порядки выше частоты ШИМ), в роли ФНЧ будет уже динамик и уши.
класс D однако получится.
Re: AVR и живой звук. Как связать контроллер с ЦАП?
Добавлено: Сб май 01, 2010 15:59:50
YS
А зачем вам заряжать конденсатор полностью?
Объясню почему: уровень сигнала передается в линейной зависимости, в виде ширины импульса. Который затем преобразуется в соответствующий уровень напряжения _нелинейным_ процессом заряда разряда конденсатора.
Ну вот, сами себе и ответили. Полностью он должен заряжаться только при коэффициенте заполнения 100%. Главный вопрос - достигнуть максимальной скорости переходных процессов заряда. Интересует та самая минимальная максимальная скорость.
Внешний ЦАП на SPI заменит весь геморрой.
Это то понятно. Цель моего вопроса - понять, какая минимальная частота ШИМ (в зависимости от частоты синтезируемого сигнала) позволяет получить максимально возможное качество для такой простой схемы, т.е. интересно понять предел возможностей ШИМ. ШИМ - самоцель, объект изучения.