2) Перестройка частоты.
Стандартный вариант - сдвоенный переменный резистор - оказался непригоден по нескольким причинам:
1) Разрешающей способности резистора просто не хватает для установления частоты с нужной точностью (например, для попадания в минимум подавления Т-моста). Необходимо использование механических редукторов.
Я даже хотел заказать что-то из этого http://jlkolb.cts.com/site/vernier.htm
2) Разброс сопротивления секций приводит к разной амплитуде сигналов на SIN и COS выходах генератора. В случае применения детектора АРУ, работающего по принципу SQRT((sin(x))^2+(cos(x)^2))
это приводит к появлению на выходе детектора второй гармоники, которую необходимо давить. В идеальном случае на выходе такого детектора имелось бы постоянное напряжение, равное амплитуде входного синуса.
3) И основное. Генератор со сверхнизкими искажениями предназначен для измерений таких искажений, что подразумевает спектральный анализ длинных (до 10E6) последовательностей и многократное усреднение.
Это значит, что за время измерения генератор не имеет права убежать более, чем на половину полосы бина. И тут выяснилось, что механические вибрации приводят к модуляции сопротивления переменного резистора
(видимо, контакта проводящий слой-движок), что приводит к модуляции частоты генерации. В моём случае картина гармоник начинала "плавать" уже ниже -120дб. Я использовал для опытов ALPS RK27, какой-то пихер.
Дорогих двухсекционных резисторов - датчиков положения у меня не было. Возможно, они и обеспечивают механическую стабильность, но стоимость их совершенно негуманна.
Моё решение - это 12-битный ЦАП, собраный на рэле и резисторах. Первые 5 разрядов сделаны масштабными резисторами 1.5К-24К (чтобы не терять глубину ООС) , остальные - цепочкой R-2R. Применены резисторы susumu RR1220 и С2-10 :-) .
Рэле Takamisawa AL5WN-K, поляризованные, с одной катушкой. В качестве драйвера рэле используются LM324 c дифференцирующей RC-цепочкой на входе, питаемые от +-5В - ничего проще и дешевле я не придумал. Удивительно, никто не делает специализированные микросхемы драйверов поляризованных рэле. Управляется это дело по SPI от МК, на входе два 595-х регистра преобразуют данные, прнятые по SPI в параллельный код. Выглядит таким образом:
Замечание1: сначала я по традиции нарисовал ЦАП в токовом включении, потом сообразил, что нужно включение в режиме "по напряжению" т.е ключи стоят между входом и весовыми резисторами, поскольку в этом случае при изменении кода меняется входная (паразитная) ёмкость, а ёмкость на инвертирующем входе ОУ остаётся постоянной.
Замечание 2: У переключающего рэле существует довольно заметное время пролёта (порядка 1 мс), когда разомкнуты оба контакта. В этом случае при ситуации, когда все рэле переключаются (например, при переходе 0b011111111111-0b100000000000), ООС размыкается, генерация прекращается, а ОУ улетает в насыщение. Поэтому в управляющем софте необходимо проверять эту ситуацию и вставлять промежуточное состояние. К сожалению, это делает невозможным программный свип.
Стандартный вариант - сдвоенный переменный резистор - оказался непригоден по нескольким причинам:
1) Разрешающей способности резистора просто не хватает для установления частоты с нужной точностью (например, для попадания в минимум подавления Т-моста). Необходимо использование механических редукторов.
Я даже хотел заказать что-то из этого http://jlkolb.cts.com/site/vernier.htm
2) Разброс сопротивления секций приводит к разной амплитуде сигналов на SIN и COS выходах генератора. В случае применения детектора АРУ, работающего по принципу SQRT((sin(x))^2+(cos(x)^2))
это приводит к появлению на выходе детектора второй гармоники, которую необходимо давить. В идеальном случае на выходе такого детектора имелось бы постоянное напряжение, равное амплитуде входного синуса.
3) И основное. Генератор со сверхнизкими искажениями предназначен для измерений таких искажений, что подразумевает спектральный анализ длинных (до 10E6) последовательностей и многократное усреднение.
Это значит, что за время измерения генератор не имеет права убежать более, чем на половину полосы бина. И тут выяснилось, что механические вибрации приводят к модуляции сопротивления переменного резистора
(видимо, контакта проводящий слой-движок), что приводит к модуляции частоты генерации. В моём случае картина гармоник начинала "плавать" уже ниже -120дб. Я использовал для опытов ALPS RK27, какой-то пихер.
Дорогих двухсекционных резисторов - датчиков положения у меня не было. Возможно, они и обеспечивают механическую стабильность, но стоимость их совершенно негуманна.
Моё решение - это 12-битный ЦАП, собраный на рэле и резисторах. Первые 5 разрядов сделаны масштабными резисторами 1.5К-24К (чтобы не терять глубину ООС) , остальные - цепочкой R-2R. Применены резисторы susumu RR1220 и С2-10 :-) .
Рэле Takamisawa AL5WN-K, поляризованные, с одной катушкой. В качестве драйвера рэле используются LM324 c дифференцирующей RC-цепочкой на входе, питаемые от +-5В - ничего проще и дешевле я не придумал. Удивительно, никто не делает специализированные микросхемы драйверов поляризованных рэле. Управляется это дело по SPI от МК, на входе два 595-х регистра преобразуют данные, прнятые по SPI в параллельный код. Выглядит таким образом:
Замечание1: сначала я по традиции нарисовал ЦАП в токовом включении, потом сообразил, что нужно включение в режиме "по напряжению" т.е ключи стоят между входом и весовыми резисторами, поскольку в этом случае при изменении кода меняется входная (паразитная) ёмкость, а ёмкость на инвертирующем входе ОУ остаётся постоянной.
Замечание 2: У переключающего рэле существует довольно заметное время пролёта (порядка 1 мс), когда разомкнуты оба контакта. В этом случае при ситуации, когда все рэле переключаются (например, при переходе 0b011111111111-0b100000000000), ООС размыкается, генерация прекращается, а ОУ улетает в насыщение. Поэтому в управляющем софте необходимо проверять эту ситуацию и вставлять промежуточное состояние. К сожалению, это делает невозможным программный свип.