
DIYFACTORY.RU |
ФОРУМ |
УЧАСТНИКИ |
ПОМОЩЬ |
КАЛЕНДАРЬ |
ПОИСК |
ГАЛЕРЕЯ |
ФАЙЛЫ |
ПРАВИЛА |
РЕПУТАЦИЯ
|
Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (9) 1 2 [3] 4 5 ... Последняя » ( Перейти к первому непрочитанному сообщению ) | ![]() ![]() ![]() |
BSVi |
Дата 13.10.2007 - 11:57
|
Unregistered ќткуда: ![]() |
>12 бит для управления VCO слишкм мало даже в диапазоне 4 октав.16 бит >уже не дешево да и не просто. ...
Почему? По миди предается то только 8бит на ноту да 14бит на питч-бенд. итого 15бит. у нас- 16, хоть и ШИМ. Вот думаюд я - делать програмный ШИМ (частота его будет не больше 500кГц) или еще как извращаться с теми тремя каналами, что есть? Напомню, что на дешевеньком и распространеньеньком atmega8 2канала 16 бит и 1 - восемь. >Без экспоненциального преобразователя Дак почему-же? Никто не запрещает запрограмировать линейным изменением напряжения от ноты (скорее всего эта опция и будет в стандартной поставке ![]() |
|
BSVi |
Дата 13.10.2007 - 16:17
|
Unregistered ќткуда: ![]() |
Таксь, написал программный ШИМ, несушая около 200кГц получилась при 8Мгц процессоре, Процессор можно взять на 16МГц и тогда несущая 400кГц получится.
Человек начинает ощущать 10мс зажержки, тоесть 100Гц, в принципе должно хватить. Исходник в аттаче - может скажете чего путного Присоединённый файл ( Кол-во скачиваний: 13 ) ![]() |
|
Diz |
Дата 13.10.2007 - 18:01
|
Unregistered ќткуда: ![]() |
VARI-MU:
При CV 0-5В и 12 битах получаем ступеньку 1.2 мВ. Не хватает ? BSVi: Возьмем Atmega48/88 - стоит меньше Mega8 и имеет четыре 8-bit ШИМ и два 16-bit. |
|
BSVi |
Дата 13.10.2007 - 18:38
|
Unregistered ќткуда: ![]() |
Diz
Оно, то - да, но я так понимаю, нам нужны три 16битных ШИМа В лдюбом случае уже написал програмный ШИМ ![]() Это сообщение отредактировал BSVi - 13.10.2007 - 18:38 |
|
VARI-MU |
Дата 13.10.2007 - 23:45
|
||
Unregistered ќткуда: ![]() |
Практика показала, что не хватает. Считаем сверху вниз: 5В - 2,5В одна октава 2.5В - 1.25В вторая октава 1.25 - 0.622 третья октава 0.622 - 0.311 четвертая октава. Нижняя октава занимает диапазон 311 милливольт, разделим грубо на 12 нот в октаве получим примерно = 25 милливольт на на ноту разделим на 1.2 получим 5% частоты ноты На нижних нотах с учетом экспоненты дело еще хуже. Представьте ,что звучит нота ЛЯ = 220 Герц и ваш генератор с 5% ошибкой , т.е. 220 разделить на 20 = 11 Герц.Представляете такой унисон с биениями в 11 Герц? 13 разрядов дадут 6.5 Герц , 14 разрядов 3.5 Герц, 15 разрядов 1.7 Герц, 16 разрядов 0.85 Герц , что уже вроде приемлемо. Все IMHO ![]() |
||
|
BSVi |
Дата 14.10.2007 - 00:44
|
Unregistered ќткуда: ![]() |
>Считаем сверху вниз:
>5В - 2,5В одна октава >2.5В - 1.25В вторая октава >1.25 - 0.622 третья октава >0.622 - 0.311 четвертая октава. Дак ведь на октаву ведб вольт приходится, тоесть одна октава - 10-9вольт, вторая 9-8, 7-6 итд... Это если логарифмический преобразователь не убирать, конечно... |
|
Medved |
Дата 14.10.2007 - 01:23
|
Unregistered ќткуда: ![]() |
Так сделайте логарифическую зависимость. Будет постоянная относительная погрешность. Упс, Сергей уже ответил)))
|
|
BSVi |
Дата 14.10.2007 - 02:38
|
Unregistered ќткуда: ![]() |
Тут получается делема - во первых, логарифматор - пойди-ка, настрой-ка, а во вторых если делать полностью цифру, то пожно потерять некоторые "вкусности", если делать цифра+аналог - все хорошо, но например другой синт может не иметь логарифматора.
Что я предлагаю - я уже написал программный ШИМ. На скока-хочешь каналов, все 16-битные. В контроллере есть два встроенных 16-битных ШИМа, Что имеем. Встроенные шимы могут работать с частотой несущей 244Гц, что для нас классно и вопросов нет. Програмный шим может дать несущую в 7Гц всего, что явно недостаточно для быстро-изменяющихся сигналов. (это все, если точность будет 16битная, если понизить до 10 бит, то програмная станет 100Гц, что хорошо) Всего как я понял нужно 4 канала ЦАП - 1) Нота, грубое значение (но нужно 16бит для возможности реализации логарифма) 2) Питч бенд, точное значение, в протоколе дается 14битами, тоесть нужен такой-же ЦАП (14битный программный выдает 30Гц) 3) Велосити - в протоколе передается 7бит, 16 бит нужно для вывода по таблице 4) Модуляция - передается 7 бит, вот их наверняка линейно можно и выводить, без никакой таблицы. Варианты решения - 1) Сделать смесь программной и аппаратной ШИМ. Аппаратная понадобится только одна, тогда Нота и Велосити - аппаратно 16бит, Модуляция - аппаратно 8 бит, Питч Бенд - програмно, 16 бит (задержка 33мс) 2) Програмно считать сумму нота+модуляция, тогда все шимы аппаратные 3) Выбрать более дорогой и/или более сложно программируемы проц. 4) Взять два проца, да и сделать сеть ![]() ![]() 5) Прифигацить внешние АЦП (16бит ацп - удовольствие нехилое) 6) Поствить демультиплексоры и цепочки r-2r (точность такого метода неизвестна ![]() Вроде и все. Между прочим в той статье, что обсуждалась с Пиком, бло всего два ЦАП'а и оба восьмибитные. Еще - про 16бит точности с односторонней платой пожете забыть. Минимум 2 слоя, по нормальному - 4. |
|
Diz |
Дата 14.10.2007 - 04:51
|
Unregistered ќткуда: ![]() |
BSVI, а чем не нравится подход с использованием двух 8-битных
ШИМ-выходов одного таймера и внешним суммированием (я писал выше) ? Получаем фактически два поддиапазона - грубый и хммм... нежный :-) В той же mega48/88 можно будет сделать четыре 16-битных ШИМа: два тормозных честно-аппаратных, и два вот таких быстрых и гибридных. Питч бенд не особо критичен, на самом деле - у колеса питча такая погрешность ... уууу. Если считать, что ход колеса 180 градусов, то 14-битная точность составит 0.011 градуса - попробуй отлови :-) И еще, давайте прикинем, фильтр какого порядка потребуется для подавления остатков несущей ШИМа 244 Гц на 96 дБ (для трубуемых честных 16 бит) :-) Частота среза, ну, скажем, 10 Гц :-) Это сообщение отредактировал Diz - 14.10.2007 - 04:56 |
|
BSVi |
Дата 14.10.2007 - 10:52
|
Unregistered ќткуда: ![]() |
Diz
Во, тиы во всем прав! Два 8 битных вывода - а попробуй-ка их так проссумировать - нехалява, однако... ООчень вероятно в точке соединения будет нелинейность. В той же mega48/88... Можно, ты пробовал соединять два шима? Если да, то ноу проблемс.... >то 14-битная точность составит 0.011 градуса - попробуй отлови :-) Тоже правильно. Но передается-то 14 битов, эффективных намерное первые 7-8 %) >Частота среза, ну, скажем, 10 Гц :-) И в этом ты прав... Фронт этого фильтра затянется е-мае, как... Итого, форумчане!!! Выкладывайте реалистичные требования! Кстате!! Есть еще широко-доступный ширпотребный TDA1543 можно на ней сделать 2канала, а два - на ШИМ. Можно поставить 2 таких и будет 4 канала. Но это ухе повышение цены (одна такая микруха стоит как 2 проца) А с помошью ШИМ'а чесных 16бит не достичь при хорошей скорости, Diz прав. Это сообщение отредактировал BSVi - 14.10.2007 - 10:53 |
|
ilya |
Дата 14.10.2007 - 13:52
|
Unregistered ќткуда: ![]() |
В Minimoog линейная зависимость. 1 вольт/окт.
|
|
VARI-MU |
Дата 15.10.2007 - 08:58
|
||
Unregistered ќткуда: ![]() |
Ну вот , с этого все встает на свои места ![]() Теперь и шести разрядов хватит с запасом Начинаем обсуждать прецизионный экспоненциальный преобразователь. ![]() Я традиционно предлагаю ламповое решение: на лампе ЭМ-11 - " Тетрод электрометрический для логарифмирования и усиления тока ,изменяющегося в широких пределах" ![]() |
||
|
Diz |
Дата 15.10.2007 - 23:39
|
Unregistered ќткуда: ![]() |
Соединять два ШИМа пробовал, но о точности ничего сказать не могу.
Использовал в речевом информаторе, там точность была не критична. Аудио-ЦАП не вариант, они затачиваются под другое - точность хромает. Что думаю: использовать один готовый хороший ЦАП, за ним мультиплексор и сколько угодно каналов sample&hold (УВХ). Что-то вроде DAC7611, это очень приятный 12-битный одноканальный ЦАП, интерфейс SPI, встроенная опора, Vout = 0..4.095 В. Стоит порядка 150-180 р. Возможно, что-то подобное 16-разрядное. PS И на выходе экспоненциальный преобразователь на лампе :-) И схему термокомпенсации на микроконтроллере - измеряем температуру лампы и корректируем напряжение накала. По табличке. ШИМом :-) |
|
Diz |
Дата 16.10.2007 - 21:44
|
Unregistered ќткуда: ![]() |
Что-то вроде вот этого (см. небрежно-рукописный файл ниже):
Присоединённый файл ( Кол-во скачиваний: 56 ) ![]() |
|
VARI-MU |
Дата 17.10.2007 - 00:17
|
||
Unregistered ќткуда: ![]() |
Вроде все разумно . Можно принять за основу. IMHO. |
||
|
BSVi |
Дата 17.10.2007 - 09:49
|
Unregistered ќткуда: ![]() |
Да, все ничего так, тока АЦП дорогой. ,У нас стоит 500рур Решение помойму классное и логичное.
А dac6711 вообще в украину не возят - вот крупнейший поставщик http://imrad.com.ua/search.shtml?qs=dac6711&query=any Другое дело TDA1543 - доступен всем ![]() Какие еще ЦАП предложите? Это сообщение отредактировал BSVi - 17.10.2007 - 10:01 |
|
Diz |
Дата 17.10.2007 - 10:50
|
Unregistered ќткуда: ![]() |
BSVi, я ошибся на бумажке - DAC7611, а не DAC6711. По твоей ссылке
он есть, стоит 48 грн. (сколько это в руб, интересно ?). ЦАП реально хороший, пользовал. DG408 очень неплохой и дешевый аналоговый мультиплексор. По твоей ссылке он тоже есть, <10 грн. Пара моментов по схеме: предполагается, что выходы обновляются в цикле, с интервалом ~100 мкс (?). Тогда утечкой конденсаторов можно пренебречь. Обновление вывода делается через промежуточный выход, 'Dummy'. Переключились на него, загнали нужное значение в ЦАП, подождали, переключились на нужный выход (напр. Velo). Bend center - постоянно выводится среднее значение бенда, 2048 при наших 12 битах. Тогда независимо от усиления ОУ после ЦАПа, имеем биполярное значение бенда после диф. усилителя. Glide - не знаю, можно сделать в аналоге, можно и в софте. После ЦАПа нужен хороший операционник, способный работать на большую емкостную нагрузку. Есть кандидаты ? |
|
BSVi |
Дата 17.10.2007 - 16:57
|
Unregistered ќткуда: ![]() |
48 грн - 250руб - дороговато.
Можно цап заменить на две штуки 561ИР2 = CD4015A с R-2R цепочками, хоть и позвпрошлый век, но микруши эти найдут даже в новобобруйске. Можно организовать цап на второй меге, мега стоит 8грн (цап- 48грн) и мега есть на каждом углу. Недостаток - нужно прогать два контроллера, что не очень то и большой недостаток. Хотя пожди. У меги8 21юзабельная для нас ножка (кварц нужен обязательно) 12 ножек на ЦАП, одна на миди (отправлять сообщения нам не нужно) осталось 8 ног. 4 низ них - на мультиплексор, 4 осталось на выбор канала/индикацию. Еще можно на меге16, ATmega8535, ATmega8515 все три стоят меньше 15грн и на них ножно сделать полную фцнкциональность девайса. DG408 - угу, юзали, тока в данном применении можно и 176КТ1 = CD4016, 561КТ3 = CD4066A, 1561КТ3 = CD4066B все они достаточно хороши. Тут жеж главное не просто сделать, а сделать так, чтобы повторяемость была максимальная. Так-что цап можно сделать как-нибуть типа два двоич Вот например меги 48/88 у нас есть, но обе в TQFP32, в дипе нету. Тут половина народа запаять их не сможет, а остальные испугаются и просто не станут и пытаться... Это сообщение отредактировал BSVi - 17.10.2007 - 17:08 |
|
Diz |
Дата 17.10.2007 - 18:13
|
Unregistered ќткуда: ![]() |
300р. и больше за какую-нибудь лампу не жалко, а за хороший ЦАП жалко ?
:-) Мое мнение - устройство единичное, плюс-минус десять баксов погоды не сделают. Зато получаем гарантированные параметры и минимум геморроя. R2R ЦАП потребует хороших точных резисторов. Логические мультиплексоры - тоже не вижу смысла экономить 20 рублей. Характеристики хуже, нужно преобразование логических уровней (еще один чип), CD4051, CD4066 склонны к защелкиванию при подаче питания. Повторяемость - если воспринимать как 'собрать из того, что можно купить в любой лавке', то да, согласен. А если как 'повторяемость от изделия к изделию', то совсем наоборот. Насчет проца - можно любой ставить, не принципиально. Лично для меня TQFP с большим шагом большой плюс :-) Впрочем, если общественность хочет low-fi вариант, то можно подумать в эту сторону. |
|
diyfactory |
Дата 17.10.2007 - 19:01
|
Unregistered ќткуда: ![]() |
Лоуфай вариант поддерживаю, но также присоединяюсь что 250 руб за цап не жалко. Важнее действительно повторяемость в том смысле что человек без особых навыков (как то паяние смд и проч) смог сделать даже без понимания что он делает. То есть вытравил, запаял, прошил и готово.
![]() |
|
![]() |
![]() ![]() ![]() |