Загрузка...

Функциональный генератор от 2065Гц до 300kHz

 

Я хотел построить генератор , который был бы похож на старый 'аналоговый'. Появились два главных претендента из старыъ запасов - Intersil ICL8038 и Exar XR-2206 . На практике, я думаю, где-то около 400 кГц или 500 кГц максимальной частоты является более реалистичным для этих микросхем при сохранении достаточно низкого искажения синусоидальной формы сигнала. В проекте я был больше заинтересован в производстве чистой неискаженной синусоиды.

 

 

ATmega328 работает как счетчик частоты и управляет 8-значным 0.36 "LED модулем SPI (хотя используются только 6 цифр).

 

Функциональный генератор схема

 

 

Цепь построенная вокруг XR-2206 базируется на TAN-005 XR-2206 Application Note , который дает высокое качество от 1Hz до 100kHz. После игры с некоторыми из значений компонентов и добавив пару операционников, качество волны будет расти  до 550kHz, хотя треугольная волна начинает получать закругленные пики около 300 кГц.

 

 

Регулирование частоты

Диапазон частот регулируется с времязадающим конденсатором (подключенного между контактами 5 и 6 XR-2206) и временных резисторов VR1, VR2 и R2 (соединенных последовательно между выводами 7 и -12В). Значения показаны выше, перекрывающиеся частотные диапазоны приведены в следующей таблице: Перекрытие диапазонов не является идеальным, но это не оказалось проблемой на практике. TAN-005 Замечания рекомендует лог-конус для подстройки частоты (VR1), хотя я использовал линейную и добавил "тонкую" подстройку частоты (VR2).

 

Конденсатор

Минимальная частота

Максимальная частота

1uF

2.25Hz

225Hz

     

0.1uF

20Гц

2kHz

0.01uF

225Hz

22кГц

0.001uF

2.0кГц

186kHz

470pF

4kHz

375kHz

 

Для Exar XR-2206  рекомендуется 1000 пФ (0.001uF) в качестве минимального значения для синхронизации конденсатора , подключенного к контакту 5. Я обнаружил , что квадратные волны, в частности, имеют тенденцию становиться нестабильными приблизительно между 23 кГц и 50 кГц с синхронизацией конденсатора меньше чем 400pF. С использованием выходного сигнала прямоугольной формы для частоты / счетчика дисплея, я ограничил наименьший конденсатор 470pF, что привело к верхней частоте около 375kHz. Если конденсатор 100pF, самая высокая частота составляет около 500 кГц до сих пор с приемлемыми формами волны.

Амплитуда выходного сигнала

Выбор между синусоидальных и треугольных формами сигнала осуществляется с помощью переключателя SW2B, подключенного через XR-2206 к выводам 13 и 14. Когда переключатель замкнут, на выходе получается синусоида. Выключатель разомкнут, это треугольная волна. К сожалению, выходные напряжения синуса и треугольника не совпадают. Максимальная синусоида составляет около 6 вольт пик-пик и треугольной волны примерно в два раза. В моей схеме, я добавил два  триммера - R15 и R16 - для регулировки формы волны. Когда SW2B закрыт, на выходе получается синусоида и SW2A соединяет R15. Когда SW2B открыт, выход треугольника и R16 становится "активным".  R15 и R16 оба должны быть повернуты от максимума иначе TL027CP будет перегружен. После того, как R15 и R16 установлены правильно, то выход из TL027CP полностью регулируется от нуля до 10 вольт от пика к пику (то есть ± 5  относительно земли 0В). Хотя может быть достигнут пик около 20 вольт пик.

 

Это изображение показывает амплитуду синусоиды.

R 14, который соединен с XR-2206 через R1, используется для установки смещения постоянного тока из импульсных сигналов. По мере того как схема использует раздвоение питания (± 12В), R14 может настроить центр волновой формы, чтобы быть немного положительным или отрицательным относительно земли. На практике количество корректировки довольно ограничено, поэтому я использовал R14 в качестве с предварительно заданным значением. Выходной сигнал синусоидальной / треугольной формы на выводе 2 XR-2206 подключен к TL072CP операционного усилителя, который имеет свои собственные   регулировки смещения  с помощью VR4. Поэтому предварительно установленный триммер R14 используется только для "централизации" , т.е. форма волны сосредоточена в диапазоне около 0В. Первая половина TL072CP (IC3a операционного усилителя) используется в качестве буфера с единичным усилением. IC3b обеспечивает около 5.7x коэффициента усиления [(R12 / R13) +1] и широкое смещение постоянного тока из импульсных сигналов при  регулировке. Первоначально я использовал LM6172, но для простоты и  и совместимости взял TL072CP. XR-2206 обеспечивает отдельный выход для синхронизации / квадратной волны свыше 20 вольт. Это полезно для синхронизации осциллографа при тестировании схемы синусоиды, но я хотел бы использовать  счетчик частоты. В любом случае управляемое выходное напряжение, казалось более разумным. R6, R7 и R8 обеспечивают 8В пиковый уровень сигнала при  -0,1 вольт относительно земли. Этот сигнал подается на обе половины компаратора - LM293. Выходы на контакты 1 и 7 колебании между землей и 5 вольт. Выходной сигнал на выводе 7 принимается на передней панели BNC, а также выход на контакт 1 берется на коллектор - вместе с + 5v и землей - для подключения к ATmega328. 1N4148 помогает защитить вход ATmega328. На 590kHz, меандр имеет время нарастания около 140ns и время падения около 70ns. Тем не менее, как уже отмечалось выше, я ограничил верхний предел частоты приблизительно до 310kHz из-за нестабильности волны между 23 кГц и 50 кГц при использовании меньшего конденсатора синхронизации.

 

 

Счетчик частоты

 

 

Схема подключения 8-разрядного 7-сегментный светодиодного дисплея очень проста и понятна. ATmega328 использует библиотеку Arduino ( FreqCounter ) для подсчета нарастающих фронтов + 5v прямоугольных импульсов от генератора сигнала в цифровой пин D5.  7-сегментный модуль дисплея LED использует другую библиотеку Arduino - LedControl . Я попробовал несколько различных частот счетчика библиотеки Arduino, и все они используют более или менее тот же принцип создания внутреннего 16-разрядный счетчика ATmega328 и измерение импульсов на выводе 'T1' - который отображает на Arduino пин D5. К счастью, это все есть в библиотеке FreqCounter.

 

Arduino код

#include "LedControl.h"
// https://github.com/wayoda/LedControl/releases

 
#include <FreqCounter.h>
// http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-frequency-counter-library/
// Counter input must be D5.
 
//LedControl lc=LedControl(DIN,CLK,CS,1);
LedControl lc=LedControl(6, 8, 7, 1);
 
unsigned long 

frq;
 
void setup() 

{
  lc.shutdown(0,false);
  lc.setIntensity(0,4);
  lc.clearDisplay(0);  
  delay(2000);
}
 
void loop() 

{
  FreqCounter::f_comp=10;             &nbs

p; // Cal Value - Calibrate with professional Freq Counter
  FreqCounter::start

(1000);             // 1000 

ms Gate Time for 1Hz resolution.
 
  while (FreqCounter::f_ready == 0);    

// Wait for counter to be ready 
 
  frq=FreqCounter::f_freq;
  lc.clearDisplay

(0);                   // Clear LED display.
  printNumber

(0, frq);                  

;// Break number into individual digits for LED display.
}
 
void printNumber(int addr, long num) {
  byte c;
  int j; 
  int d;
  num < 1000 ? d = 4 : d = countDigits

(num); 
  for (j=0; j<d; j++) {
     c = num 

% 10;                  &nb

sp;   // Modulo division = remainder
     num /= 10;           &

nbsp;             // Divide 

by 10 = next digit
     boolean dp = 

(j==3);               // Add decimal point at 3rd digit.
     lc.setDigit(addr, j, c, dp); 

  }  
}  
 
int countDigits(long num) {
  int c = 0;
  while (num) {
    c++;
    num /= 10;
  }
  return c;
}

 

Источник питания

 

 

Схема питания довольно условна. Она обеспечивает плюс и минус 12 вольт и для XR-2206 генератора Funtion IC и TL072CP операционного усилителя. Она также обеспечивает плюс 5 вольт для LM239 компаратора, 7-сегментного светодиодного дисплея и ATmega328. Несмотря на то, XR-2206 и TL072CP может быть использован с одним блоком, в результате синусоидальные и треугольные формы сигнала всегда будут иметь положительное напряжение по отношению к нулю.

Этот проект использует потенциально летальные напряжение сети. Не экономьте на механизмы безопасности , такие как заземление (заземление), предохранители, вентиляции и предотвращение доступа к токоведущим частям через вентиляционные отверстия.

От сети переменный ток подается на первичную обмотку трансформатора через предохранитель 1A.  Жила заземления (земля) провод подключена к корпусу. Обратите внимание, что любые части корпуса, которые прикреплены отдельно должны иметь свой собственный провод заземления обратно к крепежному болту трансформатора.  Компоненты низкого напряжения блока питания смонтированы на главной печатной плате функционального генератора. Регуляторы + 12v и + 5v имеют небольшие теплоотводы. Из-за недостатка места, я изготовил радиатор для + 12V регулятора из небольшой полоски алюминия.

 

Монтажная плата

 

 

 

 

Светодиодный дисплей PCB ATmega328 Driver

 

Общие виды

Изготовленый  радиатор для LM7812 можно увидеть в верхнем левом углу печатной платы в изображении ниже.

.

 

 

 

 

Окончательная сборка и калибровка

 

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

Макет панели разработал с помощью бесплатной программы под названием Front Panel Designer , которая позволяет легко изготавливать этикетки.

 

 

 

Калибровка

  1. Подключите функциональный генератор к осциллографу.
  2. На генераторе нажмите переключатель SW2 ( синусоида), включите DC Offset (VR4) в центральное положение и амплитуду (VR3) по часовой стрелке (максимум).
  3. Установите Sine Amplitude предустановкой (R15) 10 вольт.
  4. Нажмите переключатель SW2 (треугольник) и установите Amplitude предустановкой (R16) напряжение на  10 вольт.
  5. Нажмите переключатель SW2 обратно в SINE выход. Установите значение "вход осциллографа" к DC и DC Offset (VR4 в центральное положение), а затем настройте DC Offset Триммер (R14) до тех пор , пока сигнал достигнет около 0В.
  6. Отрегулируйте Искажение (R5) и симметричность (R17) для минимального искажения синусоиды (смотрим на экране осциллографа).

Повторите все шаги на различных частотах, чтобы найти лучшие общие настройки

 


На главную

 

 


Радио для всех
© Научно-популярный образовательный ресурс


Создать 

сайт бесплатно