ЦАП на микроконтроллере(или процессоре?).

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Levchik
Родился
Сообщения: 7
Зарегистрирован: Сб ноя 30, 2013 17:17:27

ЦАП на микроконтроллере(или процессоре?).

Сообщение Levchik »

Здравствуйте уважаемые. Я давно немного балуюсь для себя электроникой, да и профессия обязывает(инженер сдту), недавно наткнулся в интернете на SPDIF формат. Я и раньше про него слышал, но информация была что это для 5.1. Меня стерео всегда устраивало, и поэтому я на это как- то на этот формат внимание не обращал. Потом как то на паяльнике наткнулся вот на такой приборчик: http://cxem.net/mc/mc203.php
Он мне очень понравился.
Потом по работе мне понадобилось сделать передачу 10 сигналов по для чего нужен был цап и ацп. При поиске цап я наткнулся естественно на этот самый пресловутый SPDIF формат. Прочитал повнимательней, и мне понравилось что про него люди пишут. Во время поисков информации у вас на радиокоте нашел вот такую статью.
http://radiokot.ru/circuit/audio/other/31/
Ну и на всяких датагорах, паяльниках, диуаудио тоже полазил.
Что понравилось в SPDIF формате: цифровая передача звука, что пактически исключает лияние сторонних помех, особенно при отопередаче.
Что не понравилось: (Аудиофилам не читать)Цап. Я люблю, чтобы все было конкретно и ясно. Не люблю всякую муть типа специальных аудиокабелей ,которые ни в коем случае нельзя паять, за килобаксы, и по которым звук распространяется со сверхсветовой скоростью. А при изучениях цапов разных производителей, и их реализациях, мне начали попадаться высказывания типа вот этот дает недостаточно насыщенный звук, а здесь невыразительно играют скрипки. Меня такая лабуда сперва веселит, а потом раздражает.
И тут я подумал а почему нельзя вместо фирменного дорогого цапа поставить свой цап из микроконтроллера и R-2R матрицы.
Т.е мы оставляем SPDIF to I2S reciver, а дальше присобачиваем мк на 100 МГц с 48 выходами(стерео по 24 бита), и резисторную сборку высокой точности для R-2R матрицы, ну а выхлоп как душа подскажет, хош операцианник, хош транзистор(в трансы не верю).
И всякий экзотический трансцендентальный экзистенционализм даже близко не покажется.
Назревает вопрос о контроллере. Я так понимаю что 192 кгц, 24 бита это где-то 4,6 Мбит/с,
Прога для принятия i2s и вывода будет весить по моим грубым прикидкам где то 200-500 байт на асме( с линейной интерполяцией). Т.е. частота контроллера должна быть где-то 2Ггц(блин когда тему начинал думал меньше получится).
Можно заманьячиться и собрать на логике.
Вот такие пироги. Прошу совета в выборе spdif to i2s(где кстати лучше про i2s почитать?) ресивера, контроллера(предпочтительно атмел). Быдлокодингом немного занимаюсь на асме, опережение зажигания на мотоцикл делал на attiny2313. Делал простенькие усилители на tda 1557, 2030, 2052. Делал усилки с импульсным питанием из импульсников галогенных ламп с положительным результатом. С паяльником дружу, трудностей не боюсь.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение BOB51 »

Мое мнение - использование специализированных ИС+МК.
Не стоит повторять ошибки прошлого типа "радиоприемник на К155ЛА3". 8)
Реклама
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Dmitry Dubrovenko »

BOB51 писал(а):использование специализированных ИС+МК
Особенно, если речь идёт о 192/24.
Кстати, не забудьте, что при таких требованиях, надо очень грамотно плату развести.
ICQ нет, и, в ближайшее время, не будет.
mrFox
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение mrFox »

плата это фигня - главный вопрос как точность резисторов обеспечить
производители паралельных ЦАПов пользуются лазерным триммированием
и то только 16 бит
24 бита в описании современных чипов банальный развод
SPDIF не самый хороший формат, единственное преимущество - 1 сигнальный провод
SPI+приемопередатчик проще, дешевле и ни чем не уступает SPDIF ;)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Kavka »

Levchik писал(а): И тут я подумал а почему нельзя вместо фирменного дорогого цапа поставить свой цап из микроконтроллера и R-2R матрицы.
К стати, вот, про точность R-2R ЦАПа - http://www.marsohod.org/index.php/ourbl ... 111-r2rdac
Нетерпеливые могут прочитать только последний абзац. :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Dmitry Dubrovenko »

mrFox писал(а):как точность резисторов обеспечить
Какие, нафиг, резисторы, для 192/24?
Говорю же, надо специализированные чипы использовать.
ICQ нет, и, в ближайшее время, не будет.
Реклама
Levchik
Родился
Сообщения: 7
Зарегистрирован: Сб ноя 30, 2013 17:17:27

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Levchik »

Прочитал ссылку про точность цап, подумал, посчитал.
1)Решение проблемы для тех кто не ограничен в средствах и полете фантазии(с фантазией вроде все нормально): Имеем 192 кГц, 24 бита стерео. 24 бита это 16777216(16 млн)! вариантов значений вых сигнала, уши которые различат столько вариаций громкости с точность до 0.5 кванта сигнала нужно срочно отрезать и продать в заведение которое указано в конце 1 пункта. Собираем цап. Пусть Vcc у нас 5В. 5/16777216=0,000000298023223876953125 В(гыгы). Находим вольтметр который померит нам промежуток 5В с этой точностью(гыгы, в заведении в конце первого пункта его я подозреваю нет, более того его скорее всего вообще в природе нет нигде, и не только на нашем грешном шарике, и возможно никогда не будет :)) ), с цифровым выходом. Соединяем с цапом. И калибруем выход цапа в массив значений, адрес ячеек которого впоследствии будет вычисляться от значения цифрового значения(это самое простое в этом пункте :)), нет правда серьезно ). Если не хотим умереть от старости при калибровке, желательно произвести ее автоматически. 24 битный стерео массив будет иметь размер 16777216*3*2=100663296=98Мб(кхм не так уж и много). Поднимаем дискретность хотя бы до 20МГц(192 КГц делят 20 кГц всего на 10 частей, чет соотношение не очень 16000000 по Y и 10 по X). Продаем цап в палату мер и весов в Париж за бешенные бабки(если у них денег хватит на такой приборчик), покупаем себе кенингсегг, полгалактики, живем долго и счастливо :)) .
2) Решение проблемы почти как в первом варианте, только мы будем довольствоваться 16 битами(что ограничивает полет нашей безграничной фантазии, но делает шансы на реализацию менее прозрачными), т.е. из 24 битового слова путем арифметических и не очень операций делаем 16 битовое. Имеем уже 65535 значений. 5В/65535=. Вольтметр уже нужен с точностью 0,0000762939453125В в промежутке до 5В(уже менее фантастично чем в первом пункте, и подозреваю что такой вольтметр на нашей планете есть, и возможно даже не один, но наверное он в секрете). Калибруем в массив 65536*2*2=262144=256Кб(вообще ерунда). Запускаем устройство, кайфуем от звука.
3) Решение проблемы как в пункте 2, только находим уже вольтметр с точность 0.001 В на 5 в(такой очень даже можно купить-сделать, и уши не обидятся, мои точно), калибруем, запускаем наслаждаемся.
Хотелось бы выслушать Ваши предложения по всем пунктам, особо интересен 3-й.
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение pcb »

Levchik писал(а): 3) Решение проблемы как в пункте 2, только находим уже вольтметр с точность 0.001 В на 5 в(такой очень даже можно купить-сделать, и уши не обидятся, мои точно), калибруем, запускаем наслаждаемся.
чего то 12 бит маловато, реальных еще меньше будет :idea:
даже мой доморощеный вольтметр 15 бит точность разрядность дает.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Kavka »

Levchik писал(а):16777216*3*2=100663296=98Мб
Сдаётся мне , что из "кривых" не откалиброванных "24 бит", таким способом, никак не получиться сделать "прямые" "24 бит". Результат всегда будет с меньшим количеством отсчётов (дискретных уровней). Если у вас достаточно большая нелинейность (не говорю уже о немонотонности), то вы таким способом не сможете исправить "пропуски" в сетке отсчётов. Такой способ калибровки, табличное отображение (мапирование, mapping), IMHO, может сработать если надо сделать, например, откалиброванный 8 битный ЦАП из обычного 9-11 битного.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Levchik
Родился
Сообщения: 7
Зарегистрирован: Сб ноя 30, 2013 17:17:27

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Levchik »

Kavka писал(а):Такой способ калибровки, табличное отображение (мапирование, mapping), IMHO, может сработать если надо сделать, например, откалиброванный 8 битный ЦАП из обычного 9-11 битного.
Опа, ну конечно. Ну эт не беда, а как бы и выход из сложившейся ситуации.
Для 192 кГц 24 бит надо 32 битный цап с автокалибровкой.
Для 192 кгц 24 в 16 бит 24 битный цап с автокалибровкой, точность зависит от разрядности калибрующего прибора, в идеале 16 разрядов. Может его прямо в цап встроить как-нибудь?. Я так думаю что опорное напряжение вольтметра надо брать от Vcc цапа, чтобы исключить ошибку. Нужен контроллер способный одновременно выводить 32 или 24 разряда.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение BCluster »

Вообще ни о чем. Не будет оно хорошо работать на r2r. Что значит "фирменные дорогие ЦАПы"? В ссылке что вы привели с этого сайта, цап за 10 долларов. Их полно и за 1 доллар. Куча. Смысл заниматься этим?
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение balmer »

А еще можно взять STM32, у него DAC на 12 бит (довольно линейный). Запустить его на 3 MSps. Вполне можно добить до 16 бит 192 Кгц качества при помощи дизеринга сигнала.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение BCluster »

Можно, но зачем? На него еще софт писать надо.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение YS »

Буду краток. © :)))

На дискретном R-2R предельно достижимый максимум - 8 бит. Дальше не помогут никакие извращения, ибо как минимум будет температурный дрейф и шум резисторов.

В интегральном исполнении на R-2R делают 10 - 12 бит. Это уже предел. Дальше не помогает даже лазерная подгонка.

16 бит и выше - это уже сигма-дельта в интегральном исполнении.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение balmer »

А кто мешает собрать упрощенную сигму-дельту на R-2R.

Делаем 2 DAC с точностью 8 бит на R-2R.
Потом у одного из DAC уменьшаем уровень сигнала в 256 раз, и суммируем сигналы. Вот вам уже 16 бит.
Соответственно на 3 DAC можно получить 24 бита.

Конечно абсолютной точности так не добиться. Но вот широкого динамического диапазона - без проблем.

Но лучше конечно не заморачиваться так :)))
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 954
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение GARMIN »

Кстати, многие совершенно забывают о втором источнике нелинейности R2R ЦАПов - стабильности выходного напряжения регистра - защёлки. Ведь старший разряд должен обеспечивать точность подаваемого напряжения не хуже 0,5 ЕМР, это при изменяющейся нагрузке.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ЦАП на микроконтроллере(или процессоре?).

Сообщение Kavka »

Ну, так я уже писал тут где-то, что в микросхемах ЦАП перед матрицей делают выходные транзисторы разного размера чтобы обеспечить точность напряжения при разных токах на разрядах.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Ответить

Вернуться в «Разные вопросы по МК»