Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Необычный аудио АЦП с использованием ПЛИС / Блог им. antonluba / Сообщество EasyElectronics.ru

Необычный аудио АЦП с использованием ПЛИС

В этой заметке хочу рассказать о моем проекте. Как вы знаете, я люблю хорошее звучание и обычно делаю нестандартные вещи. На этот раз мой проект — аналогово-цифровой преобразователь аудиосигналов. А необычность его в том, что он построен на АЦП последовательного приближения с использованием ПЛИС.


Началось все очень давно, как обычно, с чтения всякой аудиофильской ерунды, где, однако, четко проявлялась мысль о превосходстве звучания мультибитных преобразователей над сигма-дельтой. )))

И вот начал я просматривать, а чем же записывают этот звук, который потом на мультибитниках так хорошо звучит? И оказалось, что аудио-АЦП сплошь сигма-дельты, и даже в самых дорогих, т.н. мастер-рекордерах, стоят относительно недорогие аудио сигма-дельта АЦП.

И зародилась у меня идея этот недостаток исправить. Заодно проверить, как на самом деле будет звучать запись, сделанная на таком АЦП.

В процессе гугления стало ясно, что это будет не просто. Цены на АЦП последовательного приближения не самые гуманные, преобразование интерфейсов на мегагерцовых частотах на микроконтроллере сделать трудно, нужна ПЛИС, а я никогда с этим дела не имел, микросхемы с мелким шагом, ЛУТом не справиться, куча напряжений питания и т.д.
Но я мечту свою не оставлял.

Первым делом определимся с архитектурой: SAR АЦП <-> ПЛИС -> I2S/SPDIF.
Такая связка показалась мне наиболее оптимальной со всех сторон:
SAR АЦП есть на 18 бит до нескольких MSPS, это позволяет использовать оверсемплинг и поднять разрядность.
ПЛИС — можно постепенно наращивать возможности, можно подключить два источника тактирования, чтобы перекрыть все необходимые частоты дискретизации, скорость не ограничена возможностями процессора. К тому же выход можно сделать в любом формате, а не только то, что заложено производителем в периферию контроллера.
SPDIF — универсальный формат, можно завести в компьютер, используя имеющиеся интерфейсы. А через I2S можно впоследствии сделать конвертер в USB. Ну или прямо в ПЛИС USB реализовать.

Потом заказал на ebay.com отладочную платку первого Циклона в комплекте с USBBlaster.
Поскольку я не программировал логику, нужно было немного научиться. Были скачаны кучи книг и залита тестовая прошивка для мигания светодиодом. Хочу сказать, что программируемая логика — конкретный взрыв мозга для тех, кто писал программы только для микроконтроллеров! И это должен попробовать каждый электронщик! )))

Эта микросхема хороша тем, что имеет две линии тактирования, на которые можно завести сигналы с генераторов частот, кратных 44100 и 48000 Гц и покрыть, таким образом, все необходимые частоты. Изначально на плате установлен один генератор на 50 Мгц и есть место для второго. Я установил генераторы на 45.158400 и 49.152000 МГц.

После этого я случайно наткнулся на описание АЦП AD7982 и решил, что это мне подойдет. 18 бит 1 Мс/с, малое потребление. Кроме корпуса — msop-10. Такую плату мне не вытравить.
Заказал бесплатные образцы АЦП, буферные усилители и стабилизатор опорного напряжения, пришлось использовать рабочую почту, на бесплатный ящик они не соглашаются слать. В Китае заказал на пробу переходники msop на dip, и до кучи — набор резисторов и конденсаторов 0805. А они потерялись, вот досада. Ну да ради такого, можно и на заводе сделать плату.
Сэмплы пришли недели за три, курьер позвонил и вручил лично. Приятно.

Нарисовал схему, заказал разъемы, трансформатор для спдиф и разъем тослинк, купил трансформаторы и транзисторы в местном магазине, начал рисовать плату.
Прототип состоит из двух частей — собственно преобразователя, на котором установлена плата ПЛИС, и блока питания.

Начнем с БП. Он сделан на двух трансформаторах и выдает кучу напряжений:
+6В и -1В для питания буферного усилителя;
+6В для источника опорного напряжения. На основной плате установлен опорник, с которого идет 5В.
+5, 3.3, 2.5В для питания цифровых схем.
Стабилизатора на -1В я так и не нашел, поэтому стабилизатор для буферного усилителя сделал на рассыпухе. Опорное напряжение примерно +7 и -7 формируется TL431, затем подстроечником от него остается -1 и +6, которое умощняется повторителем на оу и выходном транзисторе.
+6 для опорного делается на LM317, цифровые — на 7805, LM1117-3.3 и LM1117-2.5.
Плату блока питания помог вытравить друг, у меня, как обычно, в самый интересный момент ломается принтер ))).

Основную плату заказал в Резоните. Обошлось в 2500 рублей. Дороговато, но раз уж решил… А пока изготавливали и отправляли плату, и переходники с резисторами нашлись!

Основная плата содержит входные разъемы, балансные буферы на ADA4940-1, источник опорного напряжения ADR4550, собственно сами AD7982, место для платы ПЛИС и выходные разъемы — коаксиальный (c трансформатором) и оптический. Все это приправлено гребенками для подключения блока питания и всех сигналов.

Продолжение следует…
  • +13
  • 04 декабря 2014, 17:42
  • antonluba

Комментарии (33)

RSS свернуть / развернуть
Масштабно… Ждем-с…
+1
А что ты записывать собрался на этом аппарате? И как результаты, собсна?
0
  • avatar
  • Vga
  • 04 декабря 2014, 18:45
А мы с другом делаем студию звукозаписи. Пока ощущения смешанные — первый успех радует, но выявились огрехи аналоговой части, похоже на возбуд или пролазит помеха по питанию, причем в одном канале, нужно еще поработать. Звучание — опять же беру с цифрового источника, к тому же есть подозрене на ошибки в прошивке. Прошивка пока тоже простейшая — только бы запустить, так что многое еще впереди.
+1
студии все еще в тренде?
у нас одно время было как собак, а потом все сдулись, мы правда пописались на парочке и скажу, что аппарата у них было не мало да и звук накрутить при желании можно было, но тренд прошел и все…
0
Крутой задел. Освоить ПЛИС ради нового типа АЦП… Спдиф на плис уже есть в сообществе, и очень классный, а вот остальное…
0
На первой версии прошивки как раз тот спдиф использую. Но дальше его нужно доработать до 24 бит.
0
При 18-битном АЦП? А смысл?
0
Есть стандарты форматов.
0
Я в форуме писал. Оверсемплингом на повышенной частоте можно поднять разрядность. Я хочу частоту установить, например, 768 кГц, а потом понижать ее до 96, с повышением точности.
Сейчас пока просто 44100, 16 бит без всяких там алгоритмов. И даже есть подозрение, что теряю один бит из-за ошибки в коде. Надо проверить.
0
6 бит с таким оверсемплингом явно не получить.
0
Надеюсь на честных 20 бит. Этого мне будет достаточно.
0
Как зачем, а как же без «велосипеда» с квадратными колесами,! ;) Мы в детстве с соседом собирали ракету из деталей найденных на свалке мусора для полетов на Луну, но к сожалению не нашлась какая то важная деталь и за нее полет не состоялся. ;)
Но если серьезно, то я бы на CPLD копал в сторону многоразрядных дельта сигма с высокими частотами семплирования, чтобы обеспечить частотный диапазон 50-100 КГц. И использовал цифровые фильтры на том же CPLD или FPGA.
0
На CPLD врядли ресурсов хватит на что-то более, чем не слишком сложный конвертер интерфейсов. А цифровые фильтры… Ну, до некоторого предела тот же STM32F407 их потянет.
0
а где же проект для квартуса?
0
Будет
0
сейчас ПЛИСа только преобразованием форматов данных занимается?
0
сейчас да
0
Отличное начало, надеюсь продолжение окажется не менее интересным. Желаю удачи!
+1
Частота не так уж велика, да и разрядность тоже. Неужели с этим не справится что-то вроде STM32F103? В NanoDSO он успевает обработать поток с 1МС/с 12-бит АЦП, обслужить экран и интерфейс пользователя. Да и I2S там аппаратный есть.
0
  • avatar
  • Vga
  • 05 декабря 2014, 12:27
У меня есть отладочная плата с STM32F107, на которой я пробовал выход на внешний ЦАП через I2S. Работает, кто-то из коллег даже сделал асинхронный преобразователь USB-I2S.
Что касается входа, чтобы получить 18 разрядов на частоте 768 кГц, частота тактирования AD7982 нужна 49.152 МГц, соответственно, на этой же частоте нужно ловить последовательные биты данных.
Еще, нужно все равно делать внешнюю схему переключения тактового генератора, PLL я использовать не хочу, в конечном итоге, я так и не придумал, как сделать полностью синхронную схему на STM32.
Но, на будущее есть идея сделать преобразователь I2S -> USB на нем, а может, даже многоканальный. Похоже, что 4xx серия справится. Уже приобрел STM32F429 дискавери по случаю.
0
соответственно, на этой же частоте нужно ловить последовательные биты данных.
И что, последовательные интерфейсы STM32 на это не способны?
Вот если частоты для I2S и ADC несовместимые — это уже сложнее.
Уже приобрел STM32F429 дискавери по случаю.
Не оверкилл? И тут бы, по моему, больше больше подошел 407.
0
… что-то вроде STM32F103? В NanoDSO он успевает обработать поток с 1МС/с 12-бит АЦП...
DSO Nano? Там нет FPGA?
0
Нет. Только STM32F103VBT и немного рассыпухи вроде входной цепи и системы питания.
0
Угу, я тут уже откопал.
Это DSO Quad имеет FPGA на борту.
essentialscrap.com/dsotouch/
www.seeedstudio.com/wiki/DSO_Quad
www.seeedstudio.com/wiki/DSO_Quad:Upgrading_Firmware
Таблица DSO: Nano, Touch, Quad
0
О, новый осцилл? Что из себя DSO Touch представляет, сколько стоит?
0
Лично я не знаю.
Пройдите, почитайте:
essentialscrap.com/dsotouch/
First off, I must say that compared to DSO Nano, the DSO Touch is a huge upgrade and a worthy continuation of the line. However, I have never owned a DSO Nano and it would be way too limited for my purposes.
However, I don't think the DSO Touch is much of an upgrade compared to the DSO Quad:
www.seeedstudio.com/blog/tag/dso-touch/
www.seeedstudio.com/blog/2014/08/18/dso-touch-no-more-no-less/
Похоже, что пока не продаётся.
www.seeedstudio.com/depot/Oscilloscopes-c-63_65/
0
Гм. Лучше бы резистивный тачскрин поставили, а не тачпадик. В остальном выглядит неплохо — вопрос, правда, еще в цене.
0
Емкостной мне намного больше нравиться!!!
Это чем же резистивный лучше то??
0
отверткой нажимать можно
0
Это совсем не преимущество)))
Лучше руками работать, а это как раз под емкостной экран!
0
Дешевле и лучше приспособлен для точечного тыка, что для осциллографа с крошечным экраном достаточно актуально. А в пальцетыкаемости он особо не нуждается, не смартфон же.
0
antonluba
На фото платы с Cyclone-ом установлен только один тактовый генератор и отсутствует посадочное место под второй. Плата немного отличается от вашей. Вы именно у этого продавца её брали?
0
  • avatar
  • Aneg
  • 05 декабря 2014, 19:15
Да, покупал именно у этого, видимо, что-то поменялось с тех пор. Поищите.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.