Оглавление:

Генератор функций: 12 шагов (с изображениями)
Генератор функций: 12 шагов (с изображениями)

Видео: Генератор функций: 12 шагов (с изображениями)

Видео: Генератор функций: 12 шагов (с изображениями)
Видео: БОКОВУШЕЧКА У ТУАЛЕТА в плацкарте 2024, Ноябрь
Anonim
Генератор функций
Генератор функций
Генератор функций
Генератор функций

В этом руководстве описывается конструкция генератора функций на основе аналоговой интегральной схемы MAX038 компании Maxims

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

Сегодня существует два основных типа генераторов функций; цифровые, (на основе DSP, DDS…), которые все чаще используются, и аналоговые, которые были источником.

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

С давних пор я хотел разработать полезный генератор функций, который мог бы каким-то образом объединить некоторые преимущества обоих типов (аналоговых и цифровых) генераторов. Я решил взять за основу дизайн микросхемы Maxim MAX038 *.

* Примечание - данный чип больше не выпускается и не продается компанией Maxim. Это устарело. Его еще можно найти на eBay, Aliexpress и других сайтах электронных компонентов.

Существуют и другие микросхемы генератора аналоговых функций (XR2206 от Exar, icl8038 от Intersil), но у меня были

есть один MAX038, и я его использовал. Цифровые функции генератора функций выполняла одна микросхема Atmega328. Его функции следующие:

  • управляет выбором диапазона частот
  • управляет типом сигнала (синусоидальный, прямоугольный, треугольный, пилообразный)
  • измеряет амплитуду сигнала
  • измеряет смещение постоянного тока
  • измеряет частоту сигнала
  • измеряет THD синусоидального сигнала в звуковом диапазоне (это еще предстоит реализовать)
  • отображает всю эту информацию на символьном ЖК-дисплее 16x2.

Шаг 1: MAX038 Описание

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

Я приложил даташит MAX038, там можно увидеть наиболее важные параметры микросхемы:

♦ Диапазон рабочих частот от 0,1 Гц до 20 МГц

♦ Треугольник, пилообразный, синусоидальный, квадратный и импульсный сигналы.

♦ Независимая регулировка частоты и рабочего цикла

♦ Диапазон развертки от 350 до 1

♦ Регулируемый рабочий цикл от 15% до 85%

♦ Выходной буфер с низким сопротивлением: 0,1 Ом

♦ Низкий температурный дрейф 200 ppm / ° C

Еще одно важное требование - это необходимость двойного питания (± 5В). Амплитуда на выходе фиксированная (~ 2 VP-P со смещением 0 В постоянного тока).

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

Шаг 2: Схема…

Схема…
Схема…

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

1) светодиоды показывают текущий активный частотный диапазон, но он также отображается на ЖК-дисплее;

2) Светодиоды также используются для индикации типа сигнала, но также и ЖК-дисплей отображает эту информацию.

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

Также можно заметить, что я использую много операционных усилителей. Некоторые из них можно без проблем опустить - особенно буферы. В настоящее время операционные усилители сами по себе предлагают большую избыточность - в одном корпусе можно найти 2, 4 или 8 отдельных усилителей, и это при относительно невысокой цене. Почему бы их не использовать?

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

Шаг 3: Описание схемы - источник питания (1)

Описание схем - источник питания (1)
Описание схем - источник питания (1)

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

Шаг 4: Описание схемы - Контроль диапазона частот (2)

Описание схемы - регулировка диапазона частот (2)
Описание схемы - регулировка диапазона частот (2)

Для покрытия большого частотного диапазона используется несколько конденсаторных батарей. Конденсаторы имеют разные номиналы и определяют разные частотные поддиапазоны. При работе используется только один из этих конденсаторов - его нижняя пластина заземлена переключателем МОП-транзистора. Какая нижняя пластина конденсаторов должна быть заземлена, контролируется Atmega328 с помощью микросхемы демультиплексора 74HC238. В качестве МОП-переключателей я использовал транзисторы BSS123. Основное требование к этому переключателю - иметь низкий Ron и минимально возможную емкость стока. Цифровое управление конденсаторной батареей можно не проводить - на плате есть отверстия для пайки проводов механического поворотного переключателя.

Шаг 5: Описание схемы - регулировка частоты (3)

Описание схемы - регулировка частоты (3)
Описание схемы - регулировка частоты (3)

На рисунке показана схема управления частотой и скважностью. Там я использовал стандартный операционный усилитель LM358 (двойной усилитель в одном корпусе). Я также использовал двойные потенциометры 10K.

Микросхема MAX038 генерирует внутреннее опорное напряжение 2,5 В, которое обычно используется в качестве опорного для всех регулировок.

Это напряжение подается на инвертирующий вход IC8a и генерирует отрицательное опорное напряжение, используемое для DADJ (регулировка рабочего цикла). Оба напряжения прикладываются к потенциометру DADJ, средний отвод которого буферизируется и подается на вывод DADJ микросхемы MAX038. Перемычка JP5 может использоваться для отключения функции DADJ при подключении к земле. Управление частотой «Курс» осуществляется путем изменения тока, подаваемого / поступающего на вывод 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 В с напряжением постоянного тока, равным потенциалу земли.

Я хотел иметь возможность контролировать амплитуду сигнала и иметь возможность самостоятельно определять смещение постоянного тока. В качестве дополнительной функции я хотел иметь сигнал SYNC с уровнями CMOS параллельно с выходным сигналом. По умолчанию микросхема MAX038 генерирует такой сигнал, но в таблице данных я прочитал, что если эта функция включена (что означает - вывод DV + подключен к 5 В), в выходном аналоговом сигнале могут наблюдаться некоторые пики (шум). он был как можно более чистым, и по этой причине я сгенерировал сигнал SYNC извне. Печатная плата сделана таким образом, что вывод DV + можно легко подключить к основному источнику питания. Вывод SYNC выведен на разъем BNC - необходимо припаять только резистор 50 Ом. В этом случае схему генерации сигнала SYNC можно не использовать. Здесь, как вы видите, я также использую сдвоенные потенциометры, но они не подключены параллельно. Причина в том, что я измеряю амплитуду относительно. Напряжение в средней точке одного потенциометра воспринимается АЦП Atmega328, и на основе этого значения рассчитывается амплитуда сигнала. Конечно, этот метод не очень точный (он основан на согласовании обеих секций потенциометра, что не всегда происходит), но он достаточно точен для моих приложений. В этой схеме IC2A работает как буфер напряжения. IC4A тоже. Операционный усилитель IC2B работает как суммирующий усилитель - он создает выходной сигнал функционального генератора как сумму напряжения смещения и основного сигнала с заданной амплитудой. Делитель напряжения R15. R17 генерирует подходящий сигнал напряжения для измерения смещения основного сигнала постоянного тока. Это воспринимается АЦП Atmega328. Операционный усилитель IC4B работает как компаратор - он управляет инвертором генерации SYNC, реализованным на двух МОП-транзисторах (BSS123 и BSS84). U6 (THS4281 - Texas Instruments) сдвигает выходной сигнал, генерируемый MAX038 DC, на 2,5 В и усиливает его в 1,5 раза. Сгенерированный таким образом сигнал воспринимается АЦП AVR и далее обрабатывается с помощью алгоритма БПФ. В этой части я использовал высококачественные операционные усилители rail to rail с полосой пропускания 130 МГц (TI - LMH6619).

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

Шаг 7: Дизайн печатной платы

Дизайн печатной платы
Дизайн печатной платы

При проектировании печатной платы я использовал «Орел». Заказывал печатные платы в "PCBway". Им потребовалось всего четыре дня на изготовление плат и неделю на их доставку. Качество у них высокое, а цена крайне низкая. Я заплатил всего 13 долларов за 10 плат!

В дополнение к этому я мог заказать печатные платы другого цвета без повышения цены. Я выбрала желтые:-).

Прикрепляю файлы gerber в соответствии с правилами проектирования "PCBway".

Шаг 8: пайка

Image
Image
Пайка
Пайка
Пайка
Пайка

Сначала спаял схемы блока питания устройств..

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

В качестве следующего шага я припаял микросхему 74HC238 демультиплексирования, светодиоды которой указывают частотный диапазон. Я загрузил небольшую программу Arduino в чип Atmega, который тестировал мультиплексирование. (смотрите видео по ссылке выше)

Шаг 9: Пайка…

Пайка…
Пайка…
Пайка…
Пайка…
Пайка…
Пайка…

Следующим шагом я спаял операционные усилители, работающие в режиме постоянного тока (LM358), и потенциометры регулировки частоты и DADJ, и проверил все их функции.

Далее я припаял переключатели BSS123, конденсаторы для определения частоты и микросхему MAX039. Я протестировал функциональный генератор, исследуя сигнал на выходе сигнала собственного чипа. (Вы можете увидеть мой старый советский, 1986 года выпуска, все еще работающий осциллограф в действии:-))

Шаг 10: Больше пайки…

Больше пайки…
Больше пайки…
Больше пайки…
Больше пайки…
Больше пайки…
Больше пайки…

После этого припаял гнездо для ЖК-дисплея и протестировал его скетчем «Hello world».

Я припаял остальные операционные усилители, конденсаторы, потенциометры и разъемы BNC.

Шаг 11: Программное обеспечение

Image
Image
Программное обеспечение
Программное обеспечение

Для создания прошивки Atmega328 я использовал Arduino IDE.

Для измерения частоты я использовал библиотеку FreqCounter. Файл эскиза и использованная библиотека доступны для загрузки. Я создал специальные символы для обозначения текущего режима (синус, прямоугольник, треугольник).

На картинке выше можно увидеть информацию, отображаемую на ЖК-дисплее:

  • Частота F = xxxxxxxx в Гц
  • Диапазон частот Rx
  • Амплитуда в мВ A = xxxx
  • Смещение в мВ 0 = xxxx
  • тип сигнала x

Функциональный генератор имеет две кнопки на передней панели с левой стороны - они используются для изменения частотного диапазона (шаг вверх-шаг вниз). Справа от них находится ползунковый переключатель для управления режимом, за ним слева направо следует потенциометр для управления частотой (конечно, точный, DADJ), амплитудой и смещением. Рядом с потенциометром регулировки смещения находится переключатель, используемый для переключения между фиксированным смещением при 2,5 В постоянного тока и настроенным.

Я обнаружил небольшую ошибку в коде "Generator.ino" в ZIP-файле - поменялись местами символы синусоидальной и треугольной формы волны. В прикрепленном здесь единственном файле "Generator.ino" ошибка исправлена.

Шаг 12: Что нужно сделать…

Image
Image

В качестве последнего шага я намерен реализовать дополнительную функцию - измерение THD синусоидального сигнала звуковой частоты в реальном времени с помощью БПФ. Это необходимо, потому что рабочий цикл синусоидального сигнала может отличаться от 50%, что может быть вызвано внутренним несовпадением микросхемы и другими причинами и может создавать гармонические искажения. Рабочий цикл можно регулировать с помощью потенциометра, но без наблюдения сигнала на осциллографе или анализаторе спектра невозможно точно настроить его форму. Расчет THD на основе алгоритма БПФ может решить проблему. Результат расчета THD будет отображаться на ЖК-дисплее в правом верхнем углу пустого места.

На видео виден спектр генерируемого синусоидальным сигналом MAX038. Анализатор спектра построен на базе платы Arduino UNO + TFT-экран 2,4 дюйма. В анализаторе спектра используется библиотека SpltRadex Arduino, разработанная Анатолием Кузьменко для выполнения БПФ в реальном времени.

Я все еще не решил - использовать эту библиотеку или использовать библиотеку FHT, созданную Musiclabs.

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

Рекомендуемые: