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

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

1 67 189

DWD: А управление?
GM: Давайте пообсуждаем
Все сказанное ниже предлагается для базового варианта генератора с минимальной индикацией и управлением.

Заводим три вывода тини через BCD декодер (HCF4511BE) на 7-ми сегментник. 4-й на его точку.
В итоге получаем: 8 цифр (0-7) и точка + кнопка и валкодер.

Главное меню (индикация с точкой):
Вращение валкодера - смена режима:
1. - синус
2. - пила
3. - пользовательская форма сигнала
4. - свип
5. - шим
Нажатие кнопки выбор и переход в подменю параметров (без точки).

1-3 режим
При последовательном нажатии кнопки - цифры 1-7 - индикация выбранного шага. 0-главное меню.
Вращение валкодера - частота.

4 режим
При последовательном нажатии кнопки - цифры 1-3 - fНАЧ, fКОН и fМЕТ. 0-главное меню.
При вращении валкодера меняется выбранный параметр.

5 режим
При последовательном нажатии кнопки - цифры 1-скважность, 2 -период. 0-главное меню.
При вращении валкодера меняется выбранный параметр.

При включении устанавливается, например режим 1. (синус) с частотой 1 кГц, шаг управления частотой средний.
Для простой версии должно хватить и индикации и управления.
Слово за GM.

PS Прикупил себе валкодер с кнопкой на валу и начал паять макетку.

 

По схеме.

Думаю, определился с буфером, который стоит после ЦАП.
Схему изменил, переделав её в двухтактную.
Польза на лицо - меньше потребляемый ток, меньше зависимость от напряжения питания. Оно хоть и требуется двухполярным, но изменение в пределах +-5...15В практически не отражатется на режимах по постоянному току и на качестве передачи сигналов.

ЦАП пока без изменений. Резистивная матрица пока вне конкуренции по всем пунктам. Увеличивать сопротивление резисторов матрицы не следует, так как при её выходном сопротивлении 1КОм на частотах до 1МГц на качество сигнала влияют уже ёмкости монтажа.
С максимальной ёмкостью нагрузки матрицы 160пФ уже получается полоса 1МГц по уровню -3дБ. Ёмкость в 50пФ уже полностью сглажиивает сигнал на выходе ЦАП. По этому без буфера на выходе ЦАП не обойтись и он должен иметь малую входную ёкость.

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

Данная схема одинаково хорошо работает с напяжениями питания в пределах +-5...15В и в любом сочетании (например,+5 и -15 или наоборот).
При этом режим каскада не меняется.
Хотя быстродействие немного уменьшается с понижением питания.

Полоса частот 20МГЦ при +-5В и 33МГц при +-15В.
Спад пилы затягивается на 80нс при +-5В и на 53нс при +-15В.

Входное сопротивление 17КОм при +-5В и 21КОм при +-15В.
Выходное сопротивление 12Ом при +-5В и 9Ом при +-15В.

Ток покоя (выставляется резисторм R2) 1...2,5мА по плюсовому источнику при напряжении +5...15В соответственно и -8...-12мА по минусовому источнику -5...-15В соответственно.

Разница в токах объясняется смещением рабочей точки - при пиле напряжением 0...+5В смещение в минус на половину шкалы -2,5В.
Получается, что выходное напяжение как пилы, так и синуса привязано к нулю на половине размаха и на выходе буфера имеем эти же сигналы с амлитудой до 2.4В.

Симметрирование осуществляется резистором R3 (изменением тока источника тока на VT1,VT2). Резистор может быть подстоечным (только для симметрирования) или переменным (для оперативного смещения сигналов в плюс или минус).

Указанные на схеме транзисторы 2N3904 и 2N3905 имет частоту единичного усиления 300МГц а полоса буфера довольно узкая - несколько десятков МГц.
Замена их на BC817 и BC807 с частотой единичного усиления 100МГц сразу понижает полосу частот буфера до 4-7МГц.
Но так как они более мощные (ток коллектора 500мА по сравнению с 200мА для 2N3904), то зато выходное сопротивление уменьшается до 2,5Ом.
По этому транзисторы лучше брать высокочастотные и относительно мощные.

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

По фильтру,думаю, и так всё понятно.

Осталось продумать коммутацию.
Собственно, она может быть сведена в один блок с названием “Синус”-“Пила”+Аттенюатор, реализованом на довоенных тумблерах или современных МОП ключах, например, типа CD74HCT4053. Они доступны и имеют довольно высокую частоту (100МГц при -0,5дБ) при низком сопротивлении (до 100Ом).
На выбор...

Так как токи сигналов, поступающих на регулировку, уже будут малы (это для фильтра синуса нужно было прокачивать десятки мА), то на МОП ключах можно выполнить не только коммутацию формы сигналов, а и реализовать аттенюатор.
Для базовой версии можно обойтсь тумблерами или МОП ключами с управлением ими теми же тумблерами, что бы не влазить в сам сигнал.
Ну а для полной версии электронная коммутация будет в самый раз...

На схеме показан электронный вариант отключения фильтра от буфера (для исключения влияния) на двух полевиках 2N7002 (VTk1,VTk2,Rk1,Rk2). Управление берётся, например, со светодиода, зажигающегося при выборе режима "Синус".

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

 

madgrey: и каким из latch, data и clk Вы решили пожертвовать?
никаким. на latch заводится сигнал clk через RC цепочку и диод

 

DWD: Резистивная матрица пока вне конкуренции
Предлагаю делать ее на SMD точных резисторах одного номинала. Проще будет купить.
Вчера прикупил 40см 0805 2кОм 1%

 

а стоит экономия одного вывода МК, который к тому же есть, нескольких дополнительных навесных элементов и моргания светодиодов в процессе загрузки нового состояния? Помнится, что выводов для индикации было 4 вывода зарезервировано, для управления 595 достаточно 3-х, наращивать буферы можно, зачем финтить? Хотя тут наверное пусть GM лучше скажет, шо ему удобнее...

 

smg123: Предлагаю делать ее на SMD точных резисторах одного номинала.

Само собой!
Только прикинуть, в какой комбинации собственная ёмкость ЦАП получится наименьшей - при наборе резисторов на 1КОм или на 2 КОм?..

 

DWD: Только прикинуть, в какой комбинации собственная ёмкость ЦАП получится наименьшей - при наборе резисторов на 1КОм или на 2 КОм?..
при последовательном соединении емкость меньше меньшего, при параллельном - больше большего. Значит 1кОм однозначно. И еще фольгу с другой стороны удалите Но это - крохи и разницы практически не будет на самом деле (чтобы на эту шутку юмора кто нибудь серьезно не повёлся...)

 

madgrey: моргания светодиодов в процессе загрузки нового состояния?
ничего не моргает. при загрузке битов latch не успевает перейти в 1цу, в конце делаем clk=1 и через несколько мкс срабатывает latch.

 

DWD: ут при полосе 20-30МГц пила на 100КГц уже страдает затянутостью времени спада.
Можно пилу сделать симметричной (типа спрямленной синусойды ).
Требуемая полоса резко уменьшится, не будет надобности крутой фронт передавать.

 

smg123: Слово за GM
Я так примерно и планировал, только с отдельными светодиодами. Со всем сказанным Михаилом в части добавления дешифратора и семисегментного диода в основном согласен. Что если добавить такие модификации.

1) Основное меню можно сделать мигающим, чтобы пользователь был в курсе, что он в основном меню. Выбор режима - кнопкой, режимы перебираются в порядке возрастания, подтверждение - валкодером вправо, отказ - влево, режимы перебираются в порядке убывания.

2) При переходе в подрежим 1-3 устанавливается 0, возврат в основное меню - поворот валкодера влево. Поэтому, когда выбран подрежим 1-3, и валкодер по инерции выдаст несколько импульсов вправо, программа на них не среагирует. Если после перехода в подрежимы 1-3 десятичная точка не горит - синус или форма пользователя, горит - пила. Цифры 1-7 это шаги, выбираются кнопкой. Поворот валкодера вправо/влево изменяет частоту генерации в соответствии с выбранным шагом.

3) При переходе в подрежим 4 десятичная точка мигает, устанавливается 0, возврат в основное меню - поворот валкодера влево. Кнопкой делается выбор: 1,2 - означает коррекцию начала свипирования с шагом 1/10 кГц, 3,4 - означает то же самое для коррекции метки (выход на десятичную точку), 5,6 - означает то же самое для коррекции конца свипирования. Коррекцию метки ещё не пробовал, вроде бы должно получиться. Поворот валкодера вправо/влево изменяет выбранную частоту.

4) При переходе в подрежим 5 устанавливается 0, возврат в основное меню - поворот валкодера влево. 7 - изменение скважности, 7мигает - изменение периода. Как здесь ввести смену шагов пока не придумал. Шаги такие 0.05, 1, 10, 100 мкс. Без шагов надо будет 65535 импульсов, придётся долго крутить, чтобы пройти весь период или скважность.