Свежие обсуждения
Измерения

DDS-генератор на AVR - нужна помощь

1 141 189

madgrey: Ибо как правильно заметил ATLAB затык в нашем проекте возник именно тут и за последний месяц никто не предложил нормального проверенного варианта его решения.

Затык есть только временнОго характера. Я, например, не получаю зарплату за этот проект...
И не только я.
Но мне интересно им заниматься.

Схемы всех необходимых узлов уже давно выложены. Да ещё и в разных вариантах.
Осталось просто скомпоновать всё вместе. Трудность только в выборе того или иного варианта, так как у каждого есть свои как достоинства, так и недостатки.

Само собой, критика очень приветствуется! Особенно специалистами.

 

Леонид Иванович: А можно в качестве буфера применить и что-то интегральное, например, AD811.

Вещь хорошая, но этот ОУ стоит как полностью весь генератор. Хотя при желании ни кто не мешает его использовать. Тут изначально стояла задача построить дешёвый прибор. Потому что его основа - DDS получился у GM очень уж простым и дешёвым.
По этому, пока "поборемся без тяжёлой артилерии" в виде AD811.

Леонид Иванович: Между резисторной матрицей ЦАП и фильтром нужно, конечно, ставить ОУ. Можно тот же AD811. Фильтр не обязательно рассчитывать с входным/выходным импедансом 50 Ом, вполне можно и 200 или 600 Ом, чтобы была возможность применить ОУ с меньшим выходным током.

Но выполнив ЦАП низкоомным получим возможность подключить к нему фильтр без буферного ОУ.
Резистивный низкоомный ЦАП сам по себе дешёв, управляется дешёвой логикой и обеспечивает приемлемую скорость. Экономия на ОУ получается очень приличной!

В связи с этим и фильтр можно выполнить "низкоомным", что позволит подключить его к ЦАП напрямую, без согласующих схем и сразу получить низкоомный выход генератора с вполне достаточной амплитудой сигнала до 2В. Для, так называемой, базовой версии генератора решение получится очень простым, дешёвым и довольно качественным.

Ещё один плюс "низкоомности" фильтра - возможность применения готовых стандартных дросселей, которые при малых индуктивностях имеют меньшую погрешность изготовления.

Леонид Иванович: На выходе резисторной матрицы сигнал однополярный, поэтому каскад на ОУ должен его смещать. Сделать это лучше интегратором.

При наличии буферного ОУ между ЦАП и фильтром это решается просто. Без буфера придётся решать задачу другим способом. Каким ещё способом это можно сделать, кроме уже предложенных?

Леонид Иванович: Регулятор уровня... Если хочется сделать электронную регулировку, то при такой полосе придется ставить нормальные умножающие ЦАП. Для одноканального варианта я применял AD5452...

Не смог найти их в продаже, по этому не знаю их стоимость. Но судя по даташиту дешёвыми они тоже не будут...
Мне кажется, для электронной регулировки уровня лучше использовать электронные ключи для управления резистивной матрицей ЦАП. При использовании 74HC4053 получим перемножаюий ЦАП с опорным напряжением величиной +-5В. Регулировка выходного сигнала ЦАП может меняться дополнительным любым дешёвым и медленным ЦАП (управляемым МК), который будет менять величину и знак опорного напряжения.
Амплитуда выходного сигнала может быть от нуля до +-5В по отношению к корпусу. Получим электронные регулировки амплитуды, постоянного смещения и инверсии фазы.
Стоимость такого дискретного перемножающего ЦАП не превысит 50 центов.

Леонид Иванович: Самый трудный момент - преобразователь синуса в меандр. Ничего лучше, чем применить быстрый rail-to-rail ОУ (AD8051, AD8091), придумать не удалось.

Решение так же - не из дешёвых...
Я к тому, что меандр из синуса легко получается дешёвой логикой.

Леонид Иванович: Интересно делает Agilent в своих функциональных генераторах. Синус в прямоугольник преобразуют с помощью компаратора, а порогом компаратора регулируют скважность выходного сигнала.

В нашем проекте предложен вариант на одном элементе К561ЛА7 в котором из синуса делается меандр, а из пилы - ШИМ.
Усилить амплитуду и мощность полученных дискретных сигналов уже труда не составит.

То есть, логические элементы МОП логики очень хорошо работают в качестве быстрых компараторов.

 

Леонид Иванович: ...с полосой порядка 10 МГц и скоростью нарастания порядка 50 В/мкс. На такой частоте и КР572ПА1 вполне нормально работает в регуляторе уровня.

ЦАП используется в цепи ООС ОУ или он в состоянии обеспечить такую полосу и при прямой трансляции сигнала? С какой амплитудой?

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

Проблема не решается высокой чувствительностью компаратора?

А различие в амплитуде, по моему, не проблема. Ведь сигналы выводятся на отдельные выходы, значит можно предварительно привести их к общему знаменателю. Или нет?

Вполне возможно, что я просто не вижу проблемы. Не могли бы Вы подробнее рассказать от ней?

Леонид Иванович: Кроме ШИМа нет простых и дешевых вариантов сформировать программируемое напряжение. Внешний ЦАП будет намного дороже.

Даже резистивный?
А исключить необходимость задействования большего числа портов МК можно дополнительным регистором перед ЦАП.

 

DWD: Каким ещё способом это можно сделать, кроме уже предложенных?

Поставить разделительный конденсатор большой емкости. Или запитать микроконтроллер от ±2.5 В.

DWD: Мне кажется, для электронной регулировки уровня лучше использовать электронные ключи

Если полоса будет 200 кГц, то лучше использовать умножающий ЦАП КР572ПА1, стоит тоже копейки. Я его использовал в типовом включении, входной сигнал на Ref, выходной снимал с ОУ. В качестве ОУ использовал К140УД22, так как это было давно. Но в данном генераторе я не вижу необходимости использовать электронную регулировку. Тем более, что форма сигнала переключается перетыканием разъема.

DWD: Вполне возможно, что я просто не вижу проблемы

Если прямоугольники поступают на отдельный выход, то проблемы нет, так как параметры сигнала на разных выходах могут отличаться. Но обычно у AWG один выход, и просто переключается форма сигнала. Тогда проблема есть. Допустим, в данной точке тракта имеем двухполярный синус с размахом ±2.5 В. Как из него получить меандр с таким же размахом и смещением? Ничего проще быстрого rail-to-rail ОУ в роли компаратора с соответствующим питанием придумать не удалось. А если при переключении формы будет прыгать амплитуда или смещение, то плох тот инженер, который так сделал.

DWD: Даже резистивный?

Резистивный не дороже, но зато сложнее. Да и вообще, если в микроконтроллере уже есть ШИМ, то он вообще бесплатный. Его и надо использовать. Хотя в данном проекте я бы сделал регулировку смещения переменным резистором.

 

Леонид Иванович: Поставить разделительный конденсатор большой емкости. Или запитать микроконтроллер от ±2.5 В.

Это было уже предложено.

От разделительных конденсаторов отказались сразу.

Ещё был предложен вариант: общий вывод выходного разъёма подключать не к корпусу, а на выход регулируемого стабилизатора напряжения. Выходной сигнал и так идёт со смещением, примерно, +2В. По этому при изменении напряжения на общем выводе в пределах 0...+4В получаем постоянное смещение выходного сигнала +-2В.

Леонид Иванович: Если полоса будет 200 кГц...

Нет. Это уже madgrey всё больше "уходит" от изначально принятого техзадания, делая свой проект в проекте.
Изначально принята была верхняя частота 1МГц, от неё и нужно "плясать".
А в этом случае КР572ПА1 вряд ли сможет обеспечить требуемую амплитуду выходного сигнала. Да и ОУ потребуется не из ширпотребовских.

Леонид Иванович: Но в данном генераторе я не вижу необходимости использовать электронную регулировку. Тем более, что форма сигнала переключается перетыканием разъема.

При обсуждении порешили, что будет простой вариант прибора (базовый), в котором, в принципе, только один МК с DDS и может стоять - с минимом сервиса, и более сложный (которых, к стати, также получается несколько версий). Вот в нём и можно реализовать электронные регулировки.
Я, например, пока не вижу сложностей в этом плане, да и варианты решения уже выкладывались.

Ну а на счёт количества разъёмов - то мнения, как всегда, разделились. Одни за объединение всех сигналов на одном разъёме, другие - против.
Но особых проблем тут тоже нет, так как каждый может сам решить, что для его прибора лучше.
Интересно было бы услышать Ваше мнение по этому поводу.

Леонид Иванович: ...имеем двухполярный синус с размахом ±2.5 В. Как из него получить меандр с таким же размахом и смещением? Ничего проще быстрого rail-to-rail ОУ в роли компаратора с соответствующим питанием придумать не удалось. А если при переключении формы будет прыгать амплитуда или смещение

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

Леонид Иванович: Хотя в данном проекте я бы сделал регулировку смещения переменным резистором.

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

Дело хозяйское, каждый в своём приборе сам установит то, что ему нужно. Но возможности должны быть все.

 

Леонид Иванович: А зачем они? Есть два канала, поэтому должны быть только два выходных разъема.
В начале проекта было решено еще сделать выход для строба - для упрощения подключения осциллографа в режиме ГКЧ. Еще у меги зарезервирован вывод ICP под частотомер. Это уже 4 разъема. Остальные - резерв.

DWD: madgrey всё больше "уходит" от изначально принятого техзадания, делая свой проект в проекте.
Уже ушел дальше некуда . Напоминаю, в настройках прибора присутствует пункт "Fmax". Если Вам нужен мегагерц - поставите. Но про это забывать тоже не стоит, т.к. теорему Котельникова никто не отменял.

В общем представляю свой вариант компоновки передней панели нулевой версии "DDS-1". В настоящее время это уже "не набор плат". Генератор работает, управляется с клавиатуры и валкодера. Появится время - разберусь с раздельным управлением каналами с прошивкой второго канала от уважаемого GM. Сейчас каналы работают синхронно с одной прошивкой.
Да, сразу предупреждаю, чтобы не было ехидных замечаний по поводу ручки - это заготовка, без нее ручку перестройки частоты крутить неудобно. А хочется...

Дисплей выше поднять нельзя, т.к. над его видимой частью есть еще немалая невидимая.
Байонеты не перекрывают доступ к кнопкам. цифрового поля.
Ручка энкодера будет уменьшаться по толщине по мере удаления от центра, чтобы не затруднять доступ к кнопкам "джойстика". Им планирую быстро перемещаться по меню.
Пустое место под кнопкой АТТ зарезервировано либо под второй энкодер - если регулировки уровня и смещения поручим контроллеру, либо 1 или 2 переменникам.
Кнопка питания будет, как и должно ей находиться в правом верхнем углу панели. Поставлю, как только найду подходящую, т.к. места под нее в обрез, а там еще есть стойки, крепящие половинки корпуса... Вот

 

DWD: От разделительных конденсаторов отказались сразу

По какой причине? Ведь их действие практически ничем не отличается от действия интегратора, кроме необходимых номиналов.

DWD: Ещё был предложен вариант: общий вывод выходного разъёма подключать не к корпусу

Вы путаете две вещи: смещение выходного сигнала и смещение исходного сигнала на выходе матрицы ЦАП. Первое можно обеспечить регулируемым сдвигом земли выхода, как Вы сказали. А вот второе нужно обязательно компенсировать до регулятора уровня. Иначе постоянное смещение на выходе будет зависеть от уровня.

DWD: Интересно было бы услышать Ваше мнение по этому поводу

Тут всё просто. Если делаете электронное управление прибором (которое, в том числе, можно осуществить и от компьютера), то нужно делать управление всеми параметрами. А с двумя разъемами получается переключение формы сигнала перетыканием разъемов.

DWD: А переключение как реализуется?

ADG619, котрый до сих пор нигде не могу найти.

DWD: согласовать его выходной сигнал по амплитуде и смещению с исходным каналом синуса - уже дело схемотехники

Вот в этой схемотехнике можно надолго и глубоко застрять.

DWD: Мне больше нравится другой подход - регулировка электронная с возможностью оперативной подстройки

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

madgrey: Еще у меги зарезервирован вывод ICP под частотомер

Разумно. Хотя "голая" мега с трудом справится измерять 1 МГц методом обратного счета. Я ставил еще делитель на 4.

madgrey: В общем представляю свой вариант компоновки передней панели

Нормальная панель. Нужно только проследить за толщиной линий шрифтов, чтобы она не слишком отличалась от толщины линий декоративных рамок. И вокруг дисплея можно нарисовать обводку со скругленными краями, а то прямоугольник выбивается из общего стиля. И еще непонятны две пары кнопок с одинаковыми обозначениями (стрелки вправо и влево). Они дублируют друг друга?

 

madgrey: Напоминаю, в настройках прибора присутствует пункт "Fmax". Если Вам нужен мегагерц - поставите. Но про это забывать тоже не стоит, т.к. теорему Котельникова никто не отменял.

Да мы помним, но Вы забыли про это...

madgrey: Да, сразу предупреждаю, чтобы не было ехидных замечаний по поводу ручки

Можно было и не предупреждать - у других и такого нет.

madgrey: Кнопка питания будет, как и должно ей находиться в правом верхнем углу панели.

А мне кажется, ей самое место в нижнем левом углу.

 

DWD А мне кажется, ей самое место в нижнем левом углу

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

 

Леонид Иванович: По какой причине?

Планировались очень низкие частоты - с периодом чуть ли не больше минуты.
А вот кокой-то другой способ смещения уровня пригодился бы для некоторых вариантов.

Леонид Иванович: Первое можно обеспечить регулируемым сдвигом земли выхода, как Вы сказали. А вот второе нужно обязательно компенсировать до регулятора уровня. Иначе постоянное смещение на выходе будет зависеть от уровня.

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

Леонид Иванович: Если делаете электронное управление прибором (которое, в том числе, можно осуществить и от компьютера), то нужно делать управление всеми параметрами.

А если для эксперимента требуется одновременно два сигнала, как их снимать с одного разъёма?
Но в общем, Ваш ход мыслей понятен.
Ещё какие-то варианты есть? Особенно из личного опыта?

Леонид Иванович: ADG619, котрый до сих пор нигде не могу найти.

В Киеве - 3 с мелочью американских рубля.
Здесь уже предлагались подобные ключи, правда многоканальные.
Ещё на комповых матерях попадаются коммутаторы для переключения видеовыходов с VGA на DVI (SGM330 - 4 канала).

Это я и имел в виду, что раз потребуется переключение, то будет два канала. А подстроить выходы обоих по амплитуде и смещению уже не очень сложно.

Леонид Иванович: Вот в этой схемотехнике можно надолго и глубоко застрять.

Спасибо за предупреждение, буду иметь в виду.

Леонид Иванович: Не понял, в чем отличие подхода от общепринятого.

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