Съдържание:

Генератор на функции: 12 стъпки (със снимки)
Генератор на функции: 12 стъпки (със снимки)

Видео: Генератор на функции: 12 стъпки (със снимки)

Видео: Генератор на функции: 12 стъпки (със снимки)
Видео: 12 ГРЕШНИ навика, които 99% от вас мислят за ПРАВИЛНИ 2024, Юли
Anonim
Генератор на функции
Генератор на функции
Генератор на функции
Генератор на функции

Тази инструкция описва дизайна на функционален генератор, базиран на аналоговата интегрална схема Maxims MAX038

Генераторът на функции е много полезен инструмент за изроди на електрониката. Той е необходим за настройка на резонансни вериги, тестване на аудио и видео оборудване, проектиране на аналогови филтри и за много други различни цели.

Днес има два основни типа генератори на функции; цифрови, (базирани на DSP, DDS …), които се използват все по -често и аналогови, които са с произход.

И двата вида имат своите предимства и недостатъци. Цифровите генератори могат да генерират сигнали с много стабилна честота, но имат проблеми с генерирането на много чисти синусоидални сигнали (което не е проблем за аналоговия). Също така генераторите с основно разпределение, базирани на DDS подход, имат не толкова голям диапазон на генериране на честоти.

От дълго време исках да проектирам полезен генератор на функции, който по някакъв начин да комбинира някои от предимствата на двата типа (аналогови и цифрови) генератори. Реших да основа дизайна на чипа Maxim MAX038*

* Забележка - този чип вече не се произвежда и продава от Maxim. Той е остарял. Все още е възможно да го намерите в eBay, Aliexpress и други сайтове за електронни компоненти.

Съществуват и други аналогови генераторни чипове (XR2206 от Exar, icl8038 от Intersil), но имах

наличен е един MAX038 и аз го използвах. Цифровите характеристики на функционалния генератор се изпълняват от един чип Atmega328. Неговите функции са следните:

  • контролира избора на честотен диапазон
  • контролира вида на сигнала (синус, правоъгълен, триъгълен, трион)
  • измерва амплитудата на сигнала
  • измерва DC изместването
  • измерва честотата на сигнала
  • измерва THD на синусоидалния сигнал в аудио диапазона (това все още трябва да се приложи)
  • показва цялата тази информация на персонален 16x2 LCD дисплей.

Стъпка 1: Описание MAX038

MAX038 Описание
MAX038 Описание

Прикачих лист с данни MAX038. Там могат да се видят най -важните параметри на чипа:

♦ 0,1Hz до 20MHz работен честотен диапазон

♦ Триъгълник, триъгълник, синус, квадрат и импулс

♦ Независими корекции на честотата и работния цикъл

♦ 350 до 1 честотен обхват

♦ 15% до 85% променлив работен цикъл

♦ Изходен буфер с нисък импеданс: 0,1 Ω

♦ Ниско температурно отклонение 200ppm/° C

Друго важно изискване е необходимостта от двойно захранване (± 5V). Изходната амплитуда е фиксирана (~ 2 VP-P с 0 V DC отместване).

На страница 8 от листа с данни може да се види блок-схемата на чипа. На страница 11 може да се види най -простата схема, която може да се използва за генериране на сигнал от синусоида. Тази схема е взета като основа за проектирането на функционалния генератор.

Стъпка 2: Веригата…

Веригата …
Веригата …

На снимката е представена схемата на генератора на функции. Направих това изображение с възможно най -висока разделителна способност, за да гарантирам, че всяка стойност на.device може да бъде прочетена правилно. Схемите изглеждат доста сложни и за да бъдат разбрани по -добре, ще обясня основните му части поотделно. Много читатели биха могли да ме обвинят, че веригата е твърде излишна. Това е вярно. Отначало можете да видите, че съдържа два чипа MAX038. Причината е, че печатната платка поддържа и двата типа пакети SO и DIP. Излишността може да се види и в някои функции -

1) Светодиодите показват текущия активен честотен диапазон, но също така се показват и на LCD дисплея;

2) Светодиодите се използват също за обозначаване на типа на сигнала, но също така LCD показва тази информация

Дизайнът е направен по този начин, за да се даде по -голяма гъвкавост на потребителя - по желание той не може да използва LCD или просто може да пропусне запояването на светодиодите. Запоял съм ги, за да мога да отстраня грешките във функционалността по време на фазите на проектиране.

Може да се забележи също, че използвам много opamps. Някои от тях могат да бъдат пропуснати без проблеми - особено буферите. Понастоящем операционните усилватели сами по себе си предлагат голяма резервираност - в един пакет можете да намерите 2, 4 дори 8 отделни усилвателя, и това на сравнително ниска цена. Защо да не ги използвате?

Излишни са и филтриращите кондензатори - всеки използван аналогов чип има своя собствена банка кондензатори (тантал + керамични кондензатори и за двете захранвания). Някои от тях също могат да бъдат пропуснати.

Стъпка 3: Обяснение на веригата - Захранване (1)

Обяснение на веригата - Захранване (1)
Обяснение на веригата - Захранване (1)

Както казах, този генератор изисква двойно захранване. Положителното напрежение се създава с помощта на линеен регулатор на напрежението 7805. Отрицателното захранване се генерира от чип 7905. Средната точка на включване на трансформатора 2x6V е свързана към общата маса на платката. Генерираните захранвания - както положителните, така и отрицателните, са разделени на аналогови и цифрови чрез чокове. Два светодиода показват наличието на всяко захранване.

Стъпка 4: Обяснение на веригата - Контрол на честотния диапазон (2)

Обяснение на веригата - Контрол на честотния диапазон (2)
Обяснение на веригата - Контрол на честотния диапазон (2)

За покриване на голям честотен диапазон се използва множество кондензаторни банки. Кондензаторите имат различни стойности и определят различни честотни поддиапазони. Само един от тези кондензатори се използва по време на работа - долната му плоча е заземена от MOS транзисторен превключвател. Коя дънна плоча на кондензаторите ще бъде заземена се контролира от Atmega328 чрез използването на демултиплексорен чип 74HC238. Като MOS ключове използвах BSS123 транзистори. Основното изискване за този превключвател е да има нисък Ron и възможно най -ниския капацитет на източване. Цифровото управление на кондензаторната банка може да бъде пропуснато - печатната платка съдържа отвори за запояване на проводниците за механичен ротационен превключвател.

Стъпка 5: Обяснение на веригата - регулиране на честотата (3)

Обяснение на веригата - регулиране на честотата (3)
Обяснение на веригата - регулиране на честотата (3)

На снимката са показани веригата за контрол на честотата и работния цикъл. Там използвах стандартната LM358 опампа (двоен усилвател в един пакет). Използвах и двойни 10K потенциометри.

Чипът MAX038 генерира вътрешно референтно напрежение 2.5V, което обикновено се използва като отправна точка за всички настройки.

Това напрежение се прилага към инвертиращия вход на IC8a и генерира справка за отрицателно напрежение, използвана за DADJ (регулиране на работния цикъл). И двете напрежения се прилагат към потенциометъра за DADJ, чийто среден кран се буферира и се прилага към щифта DADJ на чипа MAX038. Джъмперът JP5 може да се използва за деактивиране на функцията DADJ, когато е свързан към земята. Контролът на честотата "Course" се формира чрез промяна на текущия потопен / източник в MAX038 "IIN" щифт. Този ток се дефинира от резистора R41 и изходното напрежение на буфера, който буферира средния кран на потенциометъра за управление на честотата на курса. Всичко това може да бъде заменено с единичен потенциометър (в реостатна връзка) между щифтовете REF и IIN MAX038.

Стъпка 6: Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)

Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)
Обяснение на веригата - Контрол на амплитудата, генериране на SYNC сигнал … (4)

Както е записано в листа с данни, изходният сигнал на MAX038 има амплитуда ~ 1 V с DC напрежение, равно на потенциала на земята.

Исках да имам възможност да контролирам амплитудата на сигнала и да мога да дефинирам DC изместването сам. Като допълнителна функция исках да имам SYNC сигнал с нива на CMOS паралелно с изходния сигнал. По подразбиране чипът MAX038 генерира такъв сигнал, но в листа с данни прочетох, че ако тази функция е активирана (какво означава - DV+ пин, свързан към 5V), някои пикове (шум) могат да се наблюдават в изходния аналогов сигнал. Исках да запазя той е възможно най -чист и поради тази причина генерирах SYNC сигнала отвън. Печатната платка е направена по начин, по който DV+ щифтът може лесно да бъде свързан към основното захранване. Щифтът SYNC е насочен към BNC конектора - само 50 ома резистор трябва да бъде запоен. В този случай схемата за генериране на SYNC сигнал може да бъде пропусната. Тук, както виждате, използвам и двойни потенциометри, но те не са свързани паралелно. Причината за това е - измервам относително амплитудата. Напрежението в средната точка на един потенциометър се улавя от ADC Atmega328 и амплитудата на сигнала се изчислява въз основа на тази стойност. Разбира се, този метод не е много точен (разчита на съвпадение на двете секции на потенциометъра, което не винаги се случва), но е достатъчно точен за моите приложения. В тази схема IC2A работи като буфер за напрежение. IC4A също. Опампът IC2B работи като сумиращ усилвател - той създава изходния сигнал на функционалния генератор като сума от изместеното напрежение и основния сигнал с регулирана амплитуда. Делителят на напрежение R15. R17 генерира подходящ сигнал за напрежение за измерване на изместването на основния постоянен ток. Той се усеща от ADC Atmega328. Опампата IC4B работи като сравнител - тя управлява инвертора за генериране на SYNC, реализиран от двата MOS транзистора (BSS123 и BSS84). U6 (THS4281 - Texas Instruments) измества изходния сигнал, генериран от MAX038 DC с 2,5 V и го усилва 1,5 пъти. Така генерираният сигнал се засича от AVR ADC и се обработва допълнително с FFT алгоритъм. В тази част използвах висококачествени опампери от железопътни до железопътни с честотна лента 130 MHz (TI - LMH6619).

За да бъде лесно да се разбере как работи точно генерирането на SYNC сигнал, включвам някои снимки на симулации на LTSpice на веригата. На третата снимка: синият сигнал е изместеното напрежение (вход на IC2B). Зеленият е изходният сигнал с регулирана амплитуда. Червеният е изходният сигнал на функционалния генератор, Циановата крива е SYNC сигнала.

Стъпка 7: Дизайн на печатни платки

Дизайн на печатни платки
Дизайн на печатни платки

Използвах "Eagle" за проектиране на печатни платки. Поръчах платките на "PCBway". Те им отнеха само четири дни, за да произведат дъските и една седмица, за да ги доставят. Качеството им е високо, а цената е изключително ниска. Платих само 13 USD за 10 печатни платки!

В допълнение към това мога да поръчам печатни платки с различен цвят без увеличение на цената. Избрах жълти:-).

Прикачвам гербер файловете съгласно правилата за дизайн на "PCBway".

Стъпка 8: Запояване

Image
Image
Запояване
Запояване
Запояване
Запояване

Първо запоях устройствата за захранване.

След тестването на захранващия блок, аз съм запоял чипа Atmega328 с поддържащите го устройства: кварцов кристал, кондензатори, филтриращи капачки и ISP конектор. Както виждате, имам джъмпер в захранващата линия на AVR чипа. Прекъсвам го, когато програмирам чипа чрез ISP. Използвам USBtiny програмист за тази цел.

Като следваща стъпка запоявах демуксиращия чип 74HC238, светодиодите показват честотния диапазон. Заредих малка програма Arduino в чипа Atmega, който тества мултиплексирането. (вижте видеото под връзката по -горе)

Стъпка 9: Запояване…

Запояване…
Запояване…
Запояване…
Запояване…
Запояване…
Запояване…

Като следваща стъпка запоявах операционните усилватели, работещи в режим DC (LM358) и потенциометрите за регулиране на честотата и DADJ и проверих всичките им функции.

Освен това запоявах превключвателите BSS123, кондензаторите за определяне на честотата и чипа MAX039. Тествах функционалния генератор, който изследва сигнала на изхода на родния чип. (Можете да видите моя стар съветски, произведен 1986 г., все още работещ осцилоскоп в действие:-))

Стъпка 10: Повече запояване …

Още запояване…
Още запояване…
Още запояване…
Още запояване…
Още запояване…
Още запояване…

След това запоявах гнездото за LCD дисплея и го тествах с скицата "Hello world".

Запоявам останалите останали операционни усилватели, кондензатори, потенциометри и BNC конекторите.

Стъпка 11: Софтуер

Image
Image
Софтуер
Софтуер

За създаването на фърмуера на Atmega328 използвах Arduino IDE.

За измерване на честотата използвах библиотеката "FreqCounter". Скичният файл и използваната библиотека са достъпни за изтегляне. Създадох специални символи за представяне на използвания в момента режим (синус, правоъгълник, триъгълник).

На горната снимка може да се види информацията, показана на LCD дисплея:

  • Честота F = xxxxxxxx в Hz
  • Честотен диапазон Rx
  • Амплитуда в mV A = xxxx
  • Изместване в mV 0 = xxxx
  • вид на сигнала x

Функционалният генератор има два бутона отпред в лявата страна - те се използват за промяна на честотния диапазон (стъпка нагоре -стъпка надолу). В дясно от тях е плъзгащият превключвател за управление на режима, след него отляво надясно следвайте потенциометъра за управление на честотата (курс, фино, DADJ), амплитудата и изместването. Близо до потенциометъра за регулиране на офсета е поставен превключвателят, използван за комутиране между фиксираното при 2.5V DC отместване и настроеното.

Открих малка грешка в кода "Generator.ino" в ZIP файла - символите за синусоидални и триъгълни вълнови форми бяха разменени. В единния файл „Generator.ino“, прикачен тук, грешката се коригира.

Стъпка 12: Да бъде направено…

Image
Image

Като последна стъпка възнамерявам да внедря допълнителна функция - измерване на THD на аудио честотния синусов сигнал в реално време с помощта на FFT. Това е необходимо, тъй като работният цикъл на синусоидалния сигнал може да се различава от 50%, което може да бъде причинено от вътрешни несъответствия на чипа и други причини и може да създаде хармонични изкривявания. Работният цикъл може да се регулира от потенциометъра, но без да се наблюдава сигналът на осцилоскопа или спектроанализатора, е невъзможно да се изреже фино формата му. Изчисляването на THD въз основа на алгоритъма FFT може да реши проблема. Резултатът от THD изчисленията ще се покаже на LCD дисплея в горния десен празен интервал.

На видеото може да се види спектърът на генерирания от MAX038 синусоидален сигнал. Спектърният анализатор е базиран на Arduino UNO платка + 2.4 TFT щит. Спектралният анализатор използва библиотеката SpltRadex Arduino, разработена от Анатолий Кузменко за извършване на FFT в реално време.

Все още не реших - да използвам тази библиотека или да използвам библиотеката FHT, създадена от Musiclabs.

Възнамерявам да използвам информацията, взета от измерванията на честотомера, за да изчислявам правилния прозорец за вземане на проби и да преустановя използването на допълнителни прозорци по време на изчисленията на БПФ. Трябва само да намеря малко свободно време, за да се случи това. Надявам се скоро да има някакви резултати ….

Препоръчано: