Высокоскоростной 8-ми битный ЦАП/АЦП модуль с параллельным портом данных


В целях освоения работы с ЦАП и АЦП приобрёл данный модуль, который уже имеет на борту BNC разъёмы для аналогового сигнала и полный обвес самих микросхем необходимых для работы (питание, фильтры, согласование линий, предусилители и т.д.).

ЦАП — Analog Devices AD9708 8 бит / 125 Мс/с.
АЦП — Analog Devices AD9280 8 бит / 32 Мс/с.



Я не разбираюсь в схемотехнике как товарищ Kirich, но постараюсь описать элементы на плате, которые узнал, буду благодарен, если в комментариях появятся уточнения.

Питается эта железяка от 5 В, которые далее преобразуются в 3,3 В для питания микросхем с помощью AMS1117 (сама микросхема поддерживает и 3 и 5 В питание). Нужные ноги AD9708 жёстко подтянуты в соответствии с datasheet для использования встроенного опорного напряжения 1,2 В. Все остальные управляющие сигналы тоже фиксированы, пользователю доступны только ноги clock и data (DB7-DB0).

После аналогового выхода стоит фильтр низкой частоты баттерворта с частотой среза 40 МГц и пара операционных усилителей ADD8056 и потенциометр для регулировки выходного уровня, максимальное значение которого после всех преобразований составляет -5 В — +5 В. И согласующий резистор на 51 Ом на выходе.

На входе АЦП стоит спаренный операционник ST 072c скорее всего с инвертирующим входом, т.к. все результаты у меня получались инвертированными. Пользователю так же доступны только ноги clock и data.

Как и обещал в прошлом обзоре, заставлю ПЛИС делать что-то более интересное. Решил сделать генератор и приёмник в режиме самого на себя.


На verilog я реализовал простейший код (без ядер он малоинтересен, поэтому выкладывать не буду), который генерирует и принимает лесенку на тактовых 5 и 20 МГц (на больших скоростях мне кажется проявляется дребезг в контактах, которые у меня сделаны проводками папа-мама, возможно даже разной длины и вобще с плохим контактом).

Для программирования микросхемы запускается приложение ISE iMPACT

Которое определяет, что jtag программатору доступна ПЛИС и ПЗУ для прошивки. Т.к. пока экспериментирую, прошиваю сразу ПЛИС (после сброса питания прошивка стирается).
Так же в код проекта я добавил ядро ChipScope которое позволяет отлаживать программу. Этому ядру необходима область памяти, куда оно сложит нужное количество отсчётов переменных и передаст в отладчик на ПК.
Синим — что отправили, красным — что приняли.

Вот тут я и заметил инверсию сигналов, но пока не знаю на стороне приёмника или передатчика она осуществляется. Тут если не ошибаюсь 5 МГц.
Дальше пробовал увеличить частоту до 20 МГц.

Можно включить режим просмотра данных откладывая по одной оси вход, по второй выход устройства:

Видим, что вблизи скачка сигнал искажается.

Для генерации сигналов более сложной формы, типа синусоиды, использовал ядро CORDIC (COordinate Rotation DIgital Computer wiki). На вход ему можно подать счётчик на частоте уже повыше (у меня 50МГц) и получить отсчёты синусоиды в нужном разрешении (8 бит). Тут уже картинки поинтереснее:


Принимал данные на частоте 5 МГц.

Примеры работы ЦАП: пила
Пробовал крутить потенциометр, оптимально на середине примерно…










Вот так ведёт себя с перевёрнутым клоком, когда фронт попадает мимо части данных:



Примеры работы ЦАП: меандр
Меняется только старший бит (половина амплитуды)



На полной амплитуде



Вот собственно и всё, модуль работает. Для проверки на максимальных скоростях нужно собрать стенд без лапши и точнее выставить фронты данных и клока друг относительно друга, но проблем думаю не будет. Модуль работает, ПЛИС тоже, рекомендую к покупке, тем кто хочет за недорого сделать генератор сигналов произвольной формы и осциллограф в придачу )). Если кто-то сделает связку с ардуиной будет тоже интересно посмотреть.
8 бит конечно маловато, но на али уже появились модули на 12 бит АЦП и 14 бит ЦАП на сопоставимых скоростях, но чуть дороже.
Планирую купить +16 Добавить в избранное +32 +51
+
avatar
  • rexen
  • 01 марта 2017, 22:36
+11
Слишком много «матана». И только в конце приоткрывается завеса над тем, для чего вообще вся эта кухня. Хотя явно стоило бы в самом начале набросать абзац «что почём и для чего», а не окунать читателя в поток клоков, датов, фильтров… Всё же ПЛИСки — отдельная узкая тема — это про Ардуину только ленивый не слышал.
+
avatar
  • Kartus
  • 01 марта 2017, 22:41
+9
Да ладно. Какой тут матан, так, мелочь прикладная)))
Как говорят вейперы — если вы не понимаете о чем речь, то оно вам не надо)))
+
avatar
+1
ну не совсем. иногда люди хотят узнать насколько оно просто в освоении, есть ли готовые библиотеки и т.п. скажем, заморачиваться разработкой не хочется, а собрать девайс на этом модуле и какой-нить ардуине (в широком смысле этого слова) с готовыми исходниками — быстро и хорошо.
+
avatar
+2
Нууу. Я перешел на электронку больше года назад. Где-то спустя полгода узнал, что вейперы, это в том числе и я. Всякие обзоры от вейперов сколько не пытался читать, но с трудом понимаю о чем речь, и то не всегда.
Вопрос, оно мне надо?
Я понимаю, что обзор обвеса BMX непонятен и неинтересен борцу сумо. Но когда такой обзор не понимает обычный велосипедист, то это проблема обзора и его автора.
+
avatar
0
Ну про ПЛИСку было в прошлый раз, тут она вспомогательный инструмент, чтобы байт выдать и картинку нарисовать…
Матана вообще не вижу, даже БПФом не пахнет…
+
avatar
  • bm_s
  • 02 марта 2017, 09:46
0
Для меня ЦАП это музыка. В этой связи, упоминание о 8 бит смутило… Подумалось, нафига такой ацтой?
+
avatar
  • ploop
  • 02 марта 2017, 23:38
0
Для меня ЦАП это музыка
Ну это для вас. А так ЦАП — это не только музыка, это цифро-аналоговый преобразователь, он и на 4 бита имеет применение.
+
avatar
  • bm_s
  • 03 марта 2017, 09:44
0
А я че? Я ничё… А ЦАП он и в Африке цифро-аналоговый преобразователь…
+
avatar
0
Чем непонятнее статья, тем яростнее желание разобраться.)))
+
avatar
+1
Имхо, это несколько лет в институте
+
avatar
0
У меня в универе помимо 5-6 профильных предметов было еще минимум столько же непрофильных, да и изучать интересующий предмет самостоятельно можно интенсивнее. Так что, имхо, при желании, разобраться можно намного быстрее. Другой вопрос, что труднее найти хорошего наставника.
+
avatar
0
Вы хоть в конце поняли зачем эта штука, а я так и не понял что с ней делать.
+
avatar
  • ve-nik
  • 02 марта 2017, 08:09
0
Ща, расскажу в кратце: ТС, купил лабудень из Китая для сборки на базе ПК осциллограф и генератор, чеб в монитор пялитьсо как синусоиды скачут, при этом еще, кнопками сам их на том-же компе и делает.
+
avatar
0
да все просто
есть матан, который описывает какие-то процессы или при помощи матана мы можем придумать и описать процесс
например цветное аналоговое тв использует матан, чтобы засунуть 3 цвета в одну частоту передатчика да еще и звук тоже надо как-то засунуть
по сути это аналоговый компутер из деталей

можно сделать и цифровой компутер из реальных мелкасхем, но это дорого и долго
а вот плис — это такая штука, которая позволяет описывать цифровую логику и и эта логика работает без эмуляции, а как будто бы она сделана на реальных мелкасхемах

но даже и в цифрах есть матан и процессы, которые можно уже делать не деталями и не кодом как в контроллерах, а нечто среднее

при помощи цап и ацп связываются с аналоговым миром и можно запилить сдр приемник без катушек и конденсаторов
идеальный сдр приемник — это быстрый ацп, на входе которого стоит антенна

полосовые фильтры и демодуляции делаются аппаратно в цифре, хотя ацп можно подключить в компутер и делать демодуляцию софтом, но процессор сильно нагружает
поэтому в специальных приемниках или передатчиках используется плис
например вот эта плата www.nuand.com/blog/product/bladerf-x40/ или ее более подвинутая версия может эмулировать базу сотовой связи (там правда компутер все равно нужен)
+
avatar
+23
Вдумчиво прочитал весь обзор. Ничего конечно не понял, но плюсанул на всякий случай. Наверное дело автор пишет.
+
avatar
  • mooni73
  • 01 марта 2017, 23:21
0
Достойный комментарий! Плюсую.
+
avatar
  • Offi
  • 01 марта 2017, 23:45
+2
Аналогично. Коллега, значит :-)
+
avatar
+2
Я вообще вначале решил, что речь идет про преобразование музыки с CD в колонки
+
avatar
+2
вообще, хотелось бы всё же узнать на что способен данный модуль так сказать по максимуму, хотя бы на данном этапе (ну там с соплями и прочим — я не обсираю, прекрасно понимаю рабочие моменты). то есть какие частоты он нормально воспринимает и генерит, при чем крайне интересно не только и не столько синус — но и меандр, треугольник, пила и т.д. и желательно «перекрёстная проверка» на внешнем генераторе и внешнем же осцилле.
+
avatar
0
У меня нет умного внешнего генератора, только осциллограф на работе, могу пилу и меандр на 125 Мс/с посмотреть на днях. Вас просто картинки интересуют или измерения какие-нибудь?
+
avatar
0
особых измерений не нужно, думаю более чем достаточно картинок чтобы показать на что он способен.
хотя конечно осциллографическую часть было бы посмотреть гораздо интереснее. но и так тоже неплохо было бы.
+
avatar
  • sir0ta
  • 02 марта 2017, 06:56
0
Да и генератор тоже. Все равно платить то и за то и за другое.
+
avatar
  • sir0ta
  • 02 марта 2017, 06:56
+1
Соглашусь. Тема сисек не раскрыта. Парни на форуме вен тоже ацп собирают. На вроде бы том же железе. Синусойда на 40мГц уже пила.
+
avatar
  • yurok
  • 02 марта 2017, 01:08
0
Авторов можно разделить на две категории:
— пишут сложно и непонятно о простом
— пишут легко читаемо и понятно о сложном
топикстартер, по моему, не из второй группы.
У меня есть подозрения, что подавляющее большинство людей мало что поняли из этого обзора, независимо от квалификации
+
avatar
  • yualeks
  • 02 марта 2017, 01:34
+3
Обратим внимание, что все полюса передаточной функции фильтра Баттерворта четного порядка (смотри рисунок ) представляют собой комплексно-сопряженные пары, а у фильтра нечетного порядка есть один вещественный полюс.
+
avatar
  • ewavr
  • 02 марта 2017, 01:54
0
Где же рисунок?
+
avatar
  • caliban
  • 02 марта 2017, 02:53
+6
я вижу ваш комментарий вот так
言葉のいくつかの未知のセットが私の理解に絶対にアクセスできません
а ведь и буквы вроде знакомые, и образование техническое…
+
avatar
0
судя по всему вам эти иероглифы довольно-таки понятны))
+
avatar
+1
А вы можете нарисовать фазовый портрет нелинейной системы
+
avatar
  • ewavr
  • 02 марта 2017, 01:58
0
На входе ЦАП

АЦП, наверное?

Видеосигнал такой штукой можно же оцифрить — сгенерить?
+
avatar
0
Можно, только неудобно — придётся выделять из оцифрованного синхру, игнорить ненужное и т.д. Проще взять готовые видео кодеры/декодеры. SAA7114 как вход и SAA7105 на выход, например.
+
avatar
0
с частотой среза 40 МГц
это откуда вы так решили. Ежели на картинке отношение амплитуд выхода ко входу, то 30.
+
avatar
+1
Вообще взял из описалова, но обычно смотрят по -3дБ, т.е. 0.7 амплитуды.
+
avatar
0
Частота среза таки частота на которой отношение амплутуд равно 1 и никак иначе.
+
avatar
+1
Я не уверен, что существуют аналоговые фильтры, у которых есть плоский участок с математически точной 1.
wiki частота среза
Тот же подход и для диаграмм направленности антенн.
+
avatar
0
.707 как щас помню)
+
avatar
  • u3712
  • 02 марта 2017, 10:56
+1
Гм. Берется Saleae Logic Analyzer в виде dev. board (350 руб), добавляется subj и получается USBee AX PRO. Т.е. цифровой осциллограф 16 Ms и лог. анализатор 24 Ms * 8 Ch.
При желании, пишется софт и задействуется DAC.
(Впрочем, избыточно. С другой стороны, кривые клоны «USBee AX PRO» стоят _от_ 1.8тр, а комплект из лог. анализатора и ADC = 400р+1200р.)
+
avatar
  • yualeks
  • 02 марта 2017, 13:42
0
Логический анализатор 24МГц 8 каналов за $6 Зачем он нужен? Ну конечно же заниматься логическим анализом ))). А точнее анализом логических уровней разных микроконтроллеров и периферии к ним. То что принято называть реверс инжинирингом. Интересные плюшки в софте от Saleae Logic

Триггер срабатывания записи логической последовательности на каждый канал

На изменения логического уровня в «0»
На изменение логического уровня в «1»
На положительный импульс заданной длительности
На отрицательный импульс заданной длительности
Подсчет статистических показаний по текущему измерению

Декодирования протоколов: Async Serial, I2C, SPI, Hide, 1-Wire, Atmel SWI, BISS C, CAN, DMX-512, HD44780, HDLC, HGMI CEC, I2S/ PCM, JTAC, LIN, MDIO, Manchester, Midi, Modbus, PS/2 Keyboard/Mouse, SMBus, SWD, Simple Parallel, UNI/O, USB LS и FS

Ведение журнала по декодируемому протоколу
эту инфу черпанул на самопале.
+
avatar
  • nemoi13
  • 02 марта 2017, 17:41
0
Я так понимаю что тут много технарей.
У меня вот лежит DE0-Nano, Отладочная ПЛИС плата на базе FPGA Altera Cyclone IV.
Лежит уже больше года. Досталась новой.
Цену реальную знаю. Может найдётся желающий купить дешевле цены производителя? Пишите в лс.
Понимаю что здесь не торговая площадка. Но может кому действительно нужна, а у меня вот лежит без дела.
+
avatar
0
Есть подобная плата, только бит на 12?
+
avatar
0
да, ADC, чуть дороже правда, тут два канала по 12 кажется AD9226.
И DAC на 14 бит.
+
avatar
0
каллега, приветствую )) (это я просто так ругаюсь)
чую, что в теории, если ты дикий меломан, то можно попробовать сконструировать что-то типа своей качественной звуковой карты используя хорошие ЦАП? У меня было бы такое желание в будущем. Только знать бы из чего собирать! И вообще возможно ли?
+
avatar
0
Чем вас не устраивают существующие?
Мне бы скорее было интересно сделать прибор измерительный, который оценивает искажения существующего комплекта аудио и вычисляющий коэффициенты для предыскажений.
Но проблема же не столько в ЦАП, сколько в аналоговой части, которая усиливает звук, она должна укладываться в какие-то рамки искажений при работе на ваши наушники.
+
avatar
0
меня не устраивает звуковая карта в древнем ноутбуке — убитая )))
да, по поводу ЦАП — это я прямо далеко залез. Но. От ноута я не добьюсь ничего нового используя разъем 3.5mm… вот и возникают идеи :)
про аналог действительно нужно призадуматься
+
avatar
0
Если у вас есть PCMCA разъём широкий, могу вам продать Creative Audigy zs2, тоже покупал для ноута с плохим звуком. У нового вполне устраивает. Меня вот только смущает во встроенной звуковухе нового компа, что она не может раскачать мои 250 Ом наушники…
+
avatar
0
Металлоискатель можно собрать совсем не детский на этой штуке