Цифровой генератор синуса схема - NEVINKA-INFO.RU

Цифровой генератор синуса схема

Простые звуковые генераторы синуса на цифровых КМОП микросхемах, а также функциональные генераторы низкочастотных сигналов синусоидальной, прямоугольной и треугольной форм

Цифровой генератор синуса схема

Простые звуковые генераторы синуса на цифровых КМОП микросхемах,
а также функциональные генераторы НЧ сигналов синусоидальной, прямоугольной и
треугольной форм.

Генератор сигналов — вещь, немаловажная в радиолюбительском хозяйстве.
Конечно, при нашей всесторонней занятости и умении здраво оценивать ситуацию, оптимальными явились бы такие логические построения:
1. купить готовый DDS генератор у мастеровитых китайских хунвейбинов;
2. загрузить и пользовать программный продукт под названием — генератор сигналов на базе ПК.

Отличное умозаключение, но немного скучноватое. К тому же в некоторых случаях куда удобней пользоваться миниатюрным и почти ничего не потребляющим приборчиком на батарейке. Его можно систематически забывать выключить, ронять (желательно не в унитаз), шпынять и подвергать прочему физическому насилию. Всё равно работать будет как папа Карло, за себя и за всех отсутствующих!
Вот такой малопотребляющий и трудолюбивый персонаж легко можно соорудить на логических КМОП микросхемах.

Припадём к первоисточникам:

Выходы Q0-Q3 двоичного счетчика IC1 через логические элементы IC2 подключаются к общему проводу (0) или к питанию (+15 В) через резисторы суммирующего каскада IC3, номиналы которых подобраны соответствующим образом.
Для четырех выходов существует всего 16 комбинаций, так что один полупериод строится из 16 ступенек.
Изменение уровня на выходе Q4 меняет состояние на одном из двух входов каждого логического элемента «Исключающее ИЛИ».
При логической «1» на входе элемент служит инвертором, при «О» — повторителем. Поэтому половину периода формируется положительная полуволна синусоиды, а затем — отрицательная, и весь цикл снова повторяется.
Таким образом, полный период складывается из 32 шагов, и, следовательно, выходная частота составляет 1/32 часть частоты тактового сигнала.
Амплитуда выходного сигнала определяется резистором R5. Вместо ОР77 можно использовать какой-либо другой операционный усилитель с относительно большой скоростью нарастания выходного напряжения.

Перевод А. Бельского для журнала Радиолюбитель 10/2000.
От редакции. Микросхемы IC1 — IC3 можно заменить отечественными К561ИЕ16, К561ЛП2 и К544УД2.»

Измеренный коэффициент нелинейных искажений приведённого генератора — около 6% во всем диапазоне рабочих частот. Данные результаты получились с величинами резисторов: R1=10k, R2=25k, R3=51k, R4 — отсутствует. Для номиналов резисторов, указанных на схеме, коэффициент нелинейности превысил 8%.

Более высокими характеристиками обладает схема, опубликованная в журнале Radioelektronik Audio-HiFi-Video, 1997, №11, p. 42, 43 и перепечатанная в РАДИО № 10, 1998, с. 80.

Схема формирователя приведена на рис. 2. В нем используется регистр сдвига DD2 с суммированием сигналов с восьми его выводов на резистивной матрице.
На вход С микросхемы DD2 через инвертор на элементе DD1.1 подается тактовый сигнал формы меандр с частотой F. Использование обратной связи с выхода Q7 микросхемы DD2 на ее вход D через инвертор ВВ1.2 приводит к тому, что высокий уровень на всех выходах микросхемы DD2 сохраняется в течение прохождения восьми тактовых импульсов с учетом сдвига на каждом из выходов на один такт (рис. 3).


Рис.3

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

Сигнал на выходе суммирующей матрицы ступенчатый. Весовая часть каждой «ступеньки» определяется сопротивлениями резисторов R2—R9, поэтому при регулировании устройства потребуется их подбор с тем, чтобы прирост/спад напряжения для каждой из «ступенек» был бы одинаков. Это позволит получить квазисинусоидальный сигнал с наименьшими искажениями.

Элементы R2—R9, R10, R12, кроме функции суммирующей матрицы, совместно с резистором R11 и конденсатором C3 выполняют роль фильтра нижних частот (ФНЧ), благодаря чему ступенчатое изменение напряжения на входе повторителя (микросхема DA1) приобретает форму подобия синусоидального.

Значения емкости конденсатора С3 для нескольких граничных частот ФНЧ приведены в таблице.

Граничная частота, (Гц) 10 10 2 10 3 10 4 10 5
Ёмкость конд. С3, (мкФ) 100 10 1,0 0,1 0,01

Примечание редакции. В конструкции генератора можно применить отечественные элементы: в качестве регистра сдвига — микросхему KP1561ПР1; элементов инверторов — KP1561ТЛ1; выходного повторителя — КР140УД7, скорректированной для работы с единичным усилением.

Для номиналов резисторов, указанных на схеме, коэффициент нелинейных искажений не превышает 1% во всем диапазоне генерируемых частот.
Как часто водится, в оригинальном заграничном источнике допущена пустяковая, но вредоносная опечатка, которая прямиком перекочевала и на страницы отечественного журнала: вместо «Ёмкость конд. С3, (мкФ)» в таблице следует читать «Ёмкость конд. С3, (нФ)».

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

К таким генераторам относят устройства, вырабатывающие синхронно изменяющиеся во времени сигналы разной формы. Устройство вырабатывает сигналы прямоугольной формы, треугольной формы и синусоидальный сигнал.
В зависимости от емкости конденсатора С3 частоту генерируемых колебаний можно изменить в пределах от 35 до 3500 Гц.
Основу генератора составляет компаратор на элементах D1.1 и D1.2. С выхода компаратора сигнал поступает на интегратор (С3, R6, D1.3).
Элемент D1.4 используют как нелинейный усилитель. Регулируя уровень входного напряжения резистором R7 на входе элемента D1.4, добиваются получения на его выходе синусоидальных колебаний.
Потенциометр R1 служит для получения симметричных колебаний, частоту импульсов меняют резистором R6.

RC-генератор синусоидальных сигналов с регулировкой частоты одним потенциометром

Texas Instruments LM324

Михаил Шустов — г. Томск

Дано описание RC-генераторов синусоидальных сигналов с использованием сбалансированных симметричных резистивно-емкостных мостов и двух операционных усилителей, что позволяет регулировать частоту генерации одним потенциометром. Для обеспечения работы генераторов соотношение активных и реактивных сопротивлений плеч резистивно-емкостных мостов должно быть одинаково и иметь значение не менее 2.5.

Для получения периодических низкочастотных колебаний синусоидальной формы используют RC-генераторы нерегулируемой и регулируемой частоты. К генераторам первого вида относят автогенераторы с лестничной многозвенной фазосдвигающей RC-цепью (R- или С-параллель). Как несложно заметить, очевидным недостатком таких генераторов является невозможность регулирования частоты простыми средствами, что резко ограничивает область практического применения подобных генераторов.

В 1891 г. немецкий физик Макс Вин (Max Wien, 1866–1938) для измерения импедансов электрических цепей предложил пассивный четырёхполюсник на основе RC-фильтров верхних и нижних частот (мост Вина). 11 июля 1939 г. американец Уильям Реддингтон Хьюлетт (William Reddington Hewlett, 1913–2001) подал заявку на изобретение и 6 января 1942 г. получил патент США № 2268872 на «Перестраиваемый генератор звуковой частоты». Это был первый низкочастотный перестраиваемый генератор на RC-элементах [1].

Рисунок 1. Схемы RC-мостов, которые могут быть использованы в генераторах синусоидального
напряжения.

Теоретические обоснования и условия возбуждения незатухающих синусоидальных колебаний в RC-генераторах рассмотрены в работах [2–4].

Современные RC-генераторы с возможностью плавной перестройки частоты выполняют с использованием моста Вина (Вина – Робинсона), Рисунок 1а; одинарного или двойного Т-образных мостов, Рисунок 1б, а также с использованием квадратурных генераторов [2, 3], фазовращателей на операционных усилителях, функциональных генераторов [5–7]. Во всех этих случаях для регулировки частоты используют сдвоенный потенциометр.

Проблему создания RC-генератора синусоидальных сигналов с регулировкой частоты одним потенциометром удалось решить за счет использования сбалансированного симметричного резистивно-емкостного моста, Рисунок 1в, плечи которого состоят из последовательно включенных резисторов и конденсаторов, причем соотношение активных и реактивных сопротивлений плеч равно и должно иметь значение не менее 2.5.

Рисунок 2. RC-генератор синусоидального напряжения с использованием
сбалансированного симметричного резистивно-емкостного
моста.

Плечо моста низкого активно-реактивного сопротивления подключено к выходу первого операционного усилителя, Рисунки 2 и 3, а высокого – к выходу второго операционного усилителя. Диагональ моста емкостного плеча присоединена к инвертирующему входу первого усилителя, а резистивного плеча – к инвертирующему входу второго усилителя. Между входом и выходом первого операционного усилителя включен потенциометр, регулирующий частоту генерации. Инвертирующие входы усилителей соединены с общей шиной.

Рисунок 3. Вариант схемы RC-генератора синусоидального напряжения.

Генератор, Рисунок 2, выполнен на элементах DA1.1 и DA1.2 микросхемы LM324. При выполнении условия

генератор при регулировке потенциометра R1 вырабатывает сигнал синусоидальной формы частотой от 0.3 до 1 кГц. Частоту генерации можно определить из выражения:

Коэффициент нелинейных искажений зависит от точности балансировки моста и с ростом частоты меняется в пределах от 0.6 до 2.2%. Амплитуда выходных сигналов в тех же условиях снижается от 10.9 до 8.4 В.

На Рисунке 3 показана модифицированная схема генератора, отличающаяся наличием дополнительного конденсатора C1. Генератор работает в диапазоне частот от 1 до 4.8 кГц, причем коэффициент нелинейных искажений с ростом частоты меняется в пределах от 0.6 до 1.8%. Амплитуда выходных сигналов во всем диапазоне частот не изменяется и составляет 10.9 В.

В качестве RC-комплектующих генераторов следует использовать прецизионные элементы. Для генератора, Рисунок 3, для минимизации коэффициента нелинейных искажений конденсатор C1 получают путем параллельного включения двух-трех конденсаторов – постоянной и переменной (подстроечной) емкости. При разбалансе моста генераторы переходят либо в режим генерации релаксационных колебаний низкой частоты, либо амплитуда синусоидального сигнала быстро затухает во времени.

Виды цифровых генераторов

Синусоидальный сигнал есть, по сути, решение уравнения Y= Sin(X), при линейно изменяющемся значении аргумента X. Для получения цифрового сигнала из микроконтроллера нам необходимо подать значения функции на цифроаналоговый преобразователь (ЦАП). Это значит, что для получения синусоидального сигнала, нам необходимо знать значения функции Y при каждом значении аргумента X (по сути X определяет значение фазы сигнала). Можно вычислять все значения функции прямо в микроконтроллере, но для обеспечения высокой точности вычисляемых значений необходим высокопроизводительный процессор, или модуль для работы с плавающей точкой. Вычисление значений в микроконтроллере может занять продолжительное время, поэтому для обеспечения быстроты вычисления берут готовые значения функции и загружают их в память. Для обеспечения плавности выходного сигнала, для уменьшения погрешности связанной с нелинейностью характеристики цифроаналогового преобразователя, необходимо как можно большее количество значений синуса. Таким образом, в памяти будут готовые отсчеты синуса. Для того чтобы эти отсчеты превратились в синус, их нужно каким-то образом растянуть по времени, чтобы каждый отсчет подавался на ЦАП через определенный промежуток времени после предыдущего. Для этого необходим генератор опорной частоты. Такой генератор будет выдавать импульсы постоянной скважности. Эти импульсы, в простейшем случае, поступают на счетчик, а счетчик в свою очередь выдает на выходе последовательность возрастающих кодов. Код на выходе счетчика будет указывать на адрес очередного отсчета в памяти (ПЗУ). ПЗУ соответственно кодам выдает на своем выходе значения функции, содержащиеся в памяти по этим адресам, которые передаются в ЦАП и на выходе ЦАПа будет синус с идеальной частотой. Частота синуса будет соответствовать частоте тактового генератора. Для обеспечения перестройки по частоте нужно каким-либо образом регулировать частоту опорного генератора. В простейшем случае между счетчиком и генератором ставят делитель частоты. Такой делитель позволяет перестаивать частоту в определенных пределах. Предел перестройки зависит от разрядности сумматора и частоты опорного генератора. Перестройка в таком случае будет возможна только на определенные значения, так как деление возможно только на числа, кратные 2.

Простейшая схема такого генератора показана на рисунке 1. В его состав входит генератор опорной частоты (G). Делитель, в который загружается код частоты (коэффициент деления), счетчик (СТ), ПЗУ, ЦАП и фильтр. Фильтр в данном случае необходим для того, чтобы сглаживать цифровой сигнал на выходе. ЦАП – цифровое устройство, которое выдает только определенный уровень сигнала. Чем меньше частота дискретизации, тем более ярко выражена ступенчатая характеристика выходного сигнала. Для того чтобы убрать погрешность, вносимую частотой дискретизации, на выходе применяется фильтр сигналов. В простейшем случае, это простая RC-цепочка, но необходимо учитывать скоростные характеристики ЦАП, так как на высоких частотах может отфильтровываться полезный сигнал.

Здесь рассмотрена самая простая схема DDS. Многие элементы в ней можно заменить и доработать. Например, если заменить счетчик на более сложное устройство, т.н. аккумулятор фазы, то у нас появятся больше возможностей, таких как перестройка по частоте без фазового сдвига или, например, возможность использовать четверть периода значений синуса, вместо полного периода, но в рамках данной статьи такие усложнения рассматриваться не будут.

Сейчас DDS выполняются как отдельные микросхемы. В такую микросхему достаточно загрузить параметры нужного сигнала и подключить генератор опорной частоты, а на выходе мы получим цифровую синусоиду, которую достаточно лишь отфильтровать с заданными параметрами. Такие генераторы позволяют получать частоту до 1.4 ГГц. У них в свою очередь есть один недостаток. Генераторы прямого цифрового синтеза чаще всего используются именно как генераторы частоты, поэтому амплитуда выходного сигнала не стабильна.

Другим способом генерации сигнала синусоидальной формы с помощью контроллера, является метод ШИМ + пассивный RC фильтр. ШИМ – широтно-импульсная модуляция. Она позволяет, регулируя скважность импульсов, получать нужную постоянную амплитуду сигнала. Чем шире импульс, тем выше выходное напряжение на фильтре. Напряжение можно менять в пределах от нуля до напряжения питания. Таким образом, если задать определенную программу для регулирования скважности импульсов, то на выходе можно получить сигнал любой формы, в том числе синусоидальный. В самом простом случае схема показана на рисунке 2.

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

Третий вариант генератора основывается на схеме, которая называется «мост Вина». Суть этой схемы в том, что используется усилитель с двумя RC-цепочками в обратной связи. Одной последовательной и одно параллельной. Схема такого генератора представлена на рисунке 3.

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

Существуют разные варианты и модификации представленных выше схем. Кроме этих схем существуют аналоговые решения, которые не были здесь описаны из-за несоответствия тематике статьи. В заключении хочу сказать, что каждая схема должна выбираться и прорабатываться возможная ее реализация в зависимости от задачи, которую необходимо выполнить. Передо мной стоит задача создать прецизионный генератор синусоидального сигнала, который может одновременно выдавать высокостабильный синусоидальный сигнал и добавлять в сигнал гармоники более высокого порядка. Для выполнения этой задачи наилучшим выходом будет расчет значений функции синуса непосредственно в микроконтроллере с передачей значений на ЦАП. Такая реализация позволит мне учесть недостатки каждой схемы и проработать техническую реализацию, необходимую конкретно для моей задачи. Можно одновременно сделать стабильную амплитуду, убрать гармонические искажения, вносимые особенностью схемы и получить довольно стабильный генератор. И конечные погрешности будут зависеть только от того, какие элементы будут выбраны, и какая степень упрощения алгоритма взята. Таким образом, при неизменности основной структуры, можно получить гибкое решение определенного класса задач.

Если вас интересует какой-либо материал на схожую тему, или вообще что-то из сферы измерительных приборов и их проектирования, то я бы мог попробовать написать какой-либо материал, чтобы осветить ваш вопрос в более простом и понятном ключе

Генератор сигналов прямоугольной и синусоидальной формы на Arduino

Каждый инженер, увлекающийся электроникой, на определенном этапе своей деятельности мечтает о создании своей мини лаборатории. Мультиметр, осциллограф, генератор сигналов специальной формы, источник питания, трансформатор – вот лишь минимальный обязательный набор для подобной лаборатории. Конечно, сейчас все это можно купить, но чтобы сэкономить свои деньги, часть из этих устройств можно сделать самостоятельно на основе платы Arduino. Например, генератор сигналов или осциллограф.

В этой статье мы рассмотрим как на основе платы Arduino достаточно просто сконструировать генератор сигналов прямоугольной и синусоидальной формы. При формировании сигналов прямоугольной формы данный генератор может формировать прямоугольную волну с перепадами уровней 5V/0V с частотой от 1 Гц до 2 МГц. Частотой формируемого сигнала можно будет управлять с помощью инкрементального энкодера. Коэффициент заполнения (цикл занятости) данного сигнала будет равен 50%, но его можно изменить, внеся соответствующие изменения в программу. Рассматриваемый нами генератор не является промышленным устройством и его не рекомендуется использовать на серьезном производстве, но для домашних условий использования он вполне подойдет.

Также на нашем сайте вы можете посмотреть проекты более «продвинутых» генераторов для формирования сигналов прямоугольной и синусоидальной формы:

Если же вам нужно исключительно простое решение для формирования сигналов прямоугольной формы с частотой до 1 МГц с помощью платы Arduino, то рекомендуем этот проект.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Алфавитно-цифровой ЖК дисплей 16х2 (купить на AliExpress).
  3. Инкрементальный энкодер, угловой кодер (Rotary Encoder) (купить на AliExpress).
  4. Резисторы 5,6 кОм и 10 кОм (купить на AliExpress).
  5. Конденсатор 0,1 мкФ (купить на AliExpress).
  6. Перфорированная плата.
  7. Набор для пайки.

Работа схемы

Схема генератора сигналов на основе платы Arduino представлена на следующем рисунке.

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

Схема запитывается от USB кабеля Arduino. Необходимые соединения в схеме представлены в следующей таблице.

Контакт платы Arduino Куда подключен
D14 контакт RS ЖК дисплея
D15 контакт RN ЖК дисплея
D4 контакт D4 ЖК дисплея
D3 контакт D5 ЖК дисплея
D6 контакт D6 ЖК дисплея
D7 контакт D7 ЖК дисплея
D10 to Rotary Encoder 2
D11 to Rotary Encoder 3
D12 to Rotary Encoder 4
D9 выход прямоугольного сигнала
D2 контакт D9 платы Arduino
D5 выход SPWM сигнала

В схеме мы будем формировать прямоугольную волну (сигнал прямоугольной формы) на контакте D9 платы Arduino. Его частоту мы будем регулировать с помощью углового кодера. Для формирования синусоидального сигнала мы будем формировать SPWM сигнал (синусоидальный ШИМ (широтно-импульсной модуляции) сигнал) на контакте D5, его частота будет зависеть от частоты сигнала прямоугольной формы, которая будет подаваться на контакт D2 и будет действовать как прерывание и затем мы с помощью процедуры обработки (обслуживания) прерывания будем управлять частотой синусоидального сигнала.

Вы можете собрать схему проекта на макетной или даже на печатной плате, но мы решили спаять ее на перфорированной плате, в результате у нас получилась конструкция, показанная на следующих рисунках:

Формирование прямоугольного сигнала с изменяемой частотой

Если вы знакомы с Arduino, то вы должны знать что плата Arduino может достаточно просто формировать ШИМ сигнал (с помощью функции analogwrite) на ряде своих контактов. Но с помощью этой функции можно управлять только коэффициентом заполнения (скважностью) ШИМ сигнала, но нельзя управлять его частотой – а это как раз и нужно для нашего генератора сигналов. Управление частотой сигнала прямоугольной формы можно осуществить используя таймеры платы Arduino и непосредственно переключая состояние контактов на их основе. Помочь нам в этом может библиотека Arduino PWM Frequency Library (библиотека управления частотой ШИМ сигнала), более подробно работу с ней мы рассмотрим далее в статье.

Но в использовании этой библиотеки есть ряд слабых сторон. Дело в том, что данная библиотека изменяет настройки по умолчанию Таймера 1 (Timer 1) и Таймера 2 (Timer 2) платы Arduino. В связи с этим вы уже не сможете, к примеру, использовать библиотеку для управления серводвигателем или другие библиотеки, задействующие эти таймеры платы Arduino. Также функция analogwrite на контактах 9,10,11 & 13 использует Timer 1 и Timer 2, следовательно, вы уже не сможете формировать SPWM сигнал (синусоидальный ШИМ сигнал) на этих контактах.

Но преимуществом этой библиотеки является то, что она не мешает работа Таймера 0 (Timer 0) платы Arduino, который в нашем случае является более важным чем Timer 1 и Timer 2 потому что в этом случае вы можете без проблем использовать функцию задержки (delay) и функцию millis(). Также контакты 5 и 6 управляются Таймером 0, поэтому мы без проблем сможем использовать на этих контактах функцию analogwrite или осуществлять управление сервомотором.

Формирование синусоидальной волны (колебания) с помощью Arduino

Мы знаем, что микроконтроллеры являются цифровыми устройствами, поэтому они не могут формировать синусоидальную волну в «чистом» виде. Но есть два способа формирования синусоидальной волны с помощью микроконтроллера: первый заключается в использовании ЦАП (цифро-аналогового преобразователя), а второй — в использовании синусоидального ШИМ сигнала (SPWM). К сожалению, в платах Arduino (за исключением платы Arduino Due) нет встроенного ЦАПа для формирования синусоидальной волны. Конечно, можно было бы использовать внешний ЦАП, но мы решили не усложнять таким образом схему проекта и использовать метод формирования синусоидального ШИМ сигнала с дальнейшим преобразованием его в синусоидальный сигнал (волну).

Что такое SPWM сигнал

SPWM расшифровывается как Sinusoidal Pulse Width Modulation и переводится как синусоидальная широтно-импульсная модуляция (синусоидальная ШИМ). Этот сигнал в определенной степени похож на обычный ШИМ сигнал, но в нем коэффициент заполнения контролируется таким образом чтобы получить среднее напряжение похожее на синусоидальную волну. Например, при коэффициенте заполнения (скважности) 100% среднее выходное напряжение будет 5V, а при коэффициенте заполнения 25% оно будет всего лишь 1.25V, таким образом, управляя скважностью (коэффициентом заполнения) мы можем получить заранее определенные изменяемые значения среднего напряжения, то есть синусоидальную волну. Этот метод обычно используется в инверторах.

Принцип формирования SPWM сигнала показан на следующем рисунке.

Синим цветом на этом рисунке показан SPWM сигнал. Заметьте, что его скважность (коэффициент заполнения) изменяется от 0% до 100%, а затем снова возвращается в 0%. Представленный график построен для диапазона изменения напряжений от -1.0 до +1.0V, но в нашем случае, поскольку мы используем плату Arduino, масштаб подобного графика будет от 0V до 5V. Мы рассмотрим как в программе для Arduino формировать SPWM сигнал далее в статье.

Преобразование SPWM сигнала в синусоидальную волну

Преобразование SPWM сигнала в синусоидальную волну обычно требует использования схемы H-моста (H-bridge), которая состоит минимум из 4-х переключателей мощности (power switches). Подобные схемы обычно используются в инверторах. Мы не будем в статье подробно рассматривать эти вопросы поскольку нам с помощью нашей синусоидальной волны не нужно запитывать какое-либо устройство, нам всего лишь нужно ее сформировать. К тому же с помощью H-моста невозможно получить чистую синусоидальную волну – для этой цели необходимо использовать фильтр нижних частот (ФНЧ), состоящий из конденсаторов и индуктивностей.

Но мы в целях упрощения проекта для этой цели применили простой RC-фильтр. Если же вы хотите повысить качество формирования синусоидальной волны, то вы можете вместо RC-фильтра применить LC-фильтр. Значение сопротивления резистора в нашем RC-фильтре составляет 620 Ом, а значение емкости конденсатора составляет 10 мкФ (номиналы отличаются от тех, которые приведены в начале статьи в разделе «необходимые компоненты», но я надеюсь в комментариях к данной статье более опытные в этих вопросах специалисты подскажут где же здесь правда – статья переведена с другого сайта и там присутствует эта опечатка, к сожалению). На представленном рисунке желтым цветом показан SPWM сигнал с контакта 5 платы Arduino, а синим цветом — синусоидальный сигнал, полученный после прохождения SPWM сигнала через наш RC-фильтр.

Библиотека для управления частотой ШИМ сигнала в Arduino

Эту библиотеку вы можете скачать по следующей ссылке — Arduino PWM Frequency Library.

По представленной ссылке вы скачаете библиотеку в виде ZIP файла. После извлечения информации из этого ZIP файла вы получите каталог (папку) с именем PWM. Перейдите в папку с библиотеками Arduino IDE (для пользователей операционной системы Windows эта папка будет располагаться по адресу C:UsersUserDocumentsArduinolibraries) и скопируйте туда эту PWM папку. Возможно, в библиотеках Arduino IDE у вас уже есть папка с именем PWM – в этом случае вам ее необходимо заменить на новую (скачанную) папку.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты. Перед компиляцией программы не забудьте добавить в библиотеки Arduino указанную библиотеку Arduino PWM Frequency Library, иначе компиляция программы будет выдавать вам ошибку.

Нам необходимо формировать ШИМ сигнал с изменяемой частотой на контакте 9 платы Arduino. Эта частота будет устанавливаться с помощью углового кодера, а ее значение будет отображаться на экране ЖК дисплея. А когда ШИМ сигнал будет формироваться на контакте 9 он также будет создавать прерывание на контакте 2 поскольку мы соединили оба этих контакта. Используя это прерывание мы можем управлять частотой SPWM сигнала, который будет формироваться на контакте 5.

Как обычно вначале программы мы должны подключить используемые библиотеки. Библиотека для работы с ЖК дисплеем встроена в Arduino IDE, а библиотеку для изменения частоты ШИМ сигнала мы только что скачали.

Цифровой генератор от 1Hz до 40 МНz, это просто.

Автор: с2. Опубликовано в Измерения

DDS синтезатор на AD9850, привлекает радиолюбителей своей простотой и возможностями.

Обычно цифровые генераторы частоты, в которых требуемое значение частоты устанавливают с помощью клавиатуры, как правило, выполнены на микроконтроллере, диапазон генерируемых частот ограничен несколькими мегагерцами, а получение точного значения частоты в широких пределах затруднительно. Описываемый в статье генератор тоже содержит микроконтроллер, но использован он только для управления специализированной микросхемой — синтезатором частоты AD9850 . Применение этой микросхемы позволило расширить диапазон генерируемых частот от 0Hz до 40 МНz, в пределах которого можно получить любое значение частоты с точностью 1Hz.

Структурная схема синтезатора AD9850 изображена на рис. 1. Его основа — аккумулятор фазы, формирующий код мгновенной фазы выходного сигнала. Этот код преобразуется в цифровое значение синусоидального сигнала, который с помощью ЦАП превращается в аналоговый и подвергается фильтрации. Компаратор позволяет получить выходной сигнал прямоугольной формы. Его частота fout (в герцах) определяется формулой

Fout — выходная частота, Hz ;

Fin — тактовая частота, Hz ;

∆ – 32-битное значение кода частоты.

Мак­симальное значение Fout не может превосходить половины тактовой частоты.

Основные технические характеристики AD9850 (при напряжении питания ).

2 выходных сигнала

Частота тактового генератора, МНz: 1…125

Максимальный потребляемый ток (при fin=125 МГц), мА 95

Число разрядов ЦАП 10

Максимальный выходной ток ЦАП (при Rset=3,9 кОм), мА 10,24

Максимальная интегральная нелинейность ЦАП, МЗР 1

Компаратор имеет подстройку, переменным резистором R13.

Напряжение на выходе компаратора, В:

минимальное высокого уровня 4,8

максимальное низкого уровня 0,4

Для загрузки данных в микросхеме AD9850 предусмотрены параллельный и последовательный интерфейсы.

В последнем случае данные (слово длиной 40 бит) вводят через ее вход DАТА.

Каждый бит данных сопровождают импульсом положительной полярности на входе синхронизации W_CLK.

После загрузки управляющего слова по импульсу положительной полярности на входе F U _ U D происходит замена параметров генерации новыми..

Принципиальная схема управления генератором изображена на рис. 2.

Управляет синтезатором DD2 микроконтроллер DD1.

Управление происходит с помощью энкодера Sk1 с кнопкой Кн0, и дополнительных кнопок Кн1Кн6.

Вращая ручку энкодера вправо или влево, производим изменение частоты на экране ЖКИ прибора, и одновременно получаем это же значение частоты в виде прямоугольника и синуса на выходе схемы.

Кн0 * задает шаг установки частоты с помощью энкодера Sk1 (1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz, выбор значений по «кольцу» , данный режим работы кнопки Кн0 * актуален только в версии программы 1.0).

Значение выходной частоты выставляется с точностью порядка 1Hz, что достаточно для большинства случаев.

Кнопки Кн1Кн6, это кнопки быстрого доступа, с их помощью можно устанавливать определенную частоту генератора одним нажатием кнопки.

Каждая кнопка Кн1Кн6, это есть ячейка с памятью.

В них прописывается значение частоты следующим образом: сначала устанавливаем нужную нам частоту на экране ЖКИ с помощью энкодера Sk1,

нажимаем и длительно удерживаем Кн0 , на экране появится надпись «record» , не отпуская Кн0, нажимаем любую кнопку Кн1 – Кн6 нужной нам ячейки, на экране это будет отражено надписью «is made», запись в ячейку произведена.

Введенные в ячейки значения частоты сохраняются в энергонезависимой памяти микроконтроллера.

А так же еще следует знать, что при старте МК всегда считывается установка частоты с ячейки Кн1.

А значение, записанное в ячейке кнопки Кн6, управляет выходом РD7(13 ножка МК), которое в свою очередь по цепочке D1 R1 отключает генерацию прямоугольного сигнала генератора AD9850.

К сожалению, DDS выдаёт побочные сигналы, уровень которых зависит от тактовой и выходной частот (при частоте более 5MHz (или любое значение частоты, внесенное в ячейку Кн6) по цепочке D1 R1 можно с МК подать лог . 1 , при этом не будут, вносится искажения в синусоидальный сигнал генератора, это в случае если это требуется пользователю прибора, в противном случае цепочку из деталей D1 R1 не устанавливать).

FUSE:

Программа написана для работы МК на тактовой частоте 8 МГц. МК тактируется от внутреннего RS осциллятора.

Примеры работы генератора, в фотографиях.

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

Генератор синусоидальных сигналов с широким диапазоном частот (MAX038)

Принципиальная схема самодельного широкодиапазонного генератора синусоидального сигнала для лабораторных целей, выполнен на микросхеме MAX038, МАХ038. Синусоидальный генератор является одним из важнейших приборов лаборатории радиолюбителя. Обычно делают два генератора, низкочастотный и высокочастотный.

Низкочастотный делают на операционном усилителе, охваченном цепью обратной связи с мостом Винна, а плавная настройка осуществляется сдвоенным переменным резистором. ВЧ-генератор делают на основе транзисторного LC-генератора с настройкой переменным конденсатором или варикапом.

Микросхема MAX038

Используя микросхему MAX038 можно сделать широкополосной генератор синусоидального сигнала, от единиц Гц до десятков МГц. При этом плавная настройка будет одинарным переменным резистором, а катушек не будет вообще. Микросхема MAX038 предназначена для построения схем генераторов.

Функциональная схема микросхемы показана на рисунке 1. А на рисунке 2 приводится типовая схема, рекомендованная производителем для построения схемы генератора синусоидального сигнала. Там же приводится формула для расчета частоты.

Микросхема по такой схеме может генерировать синусоидальный сигнал в очень широком диапазоне частот, от единиц и даже долей Гц, то 20 МГц. Что позволяет её использовать в самых разных схемах и устройствах, включая и гетеродины приемных устройств.

Рис. 1. Функциональная схема микросхемы MAX038.

Рис. 2. Типовая схема включения микросхемы MAX038.

Приницпиальная схема

На основе типовой схемы синусоидального генератора (рис.2) выполнена схема широкодиапазонного лабораторного генератора синусоидального сигнала (рис. 3), генерирующего частоту от 2 Гц до 20 МГц в семи переключаемых поддиапазонах. Что позволяет использовать этот генератор как для настройки НЧ аппаратуры, так и для РЧ аппаратуры.

Как указано в формуле на рис.2, частота генерации зависит от емкости конденсатора, включенного между выводом 5 и общим нулем питания, и сопротивления резистора между выводами 10 и 1. Для возможности и удобства работы в таком широком диапазоне частот, диапазон разбит на семь поддиапазонов, которые переключаются переключателем S1 путем переключения конденсаторов между выводом 5 и общим нулем.

Рис. 3. Принципиальная схема широкодиапазонного синусоидального генератора сигналов на микросхеме MAX038.

Плавная настройка внутри каждого диапазона осуществляется двумя последовательно включенными переменными резисторами R4 и R5, при этом резистор R5 служит для грубой установки частоты, a R4, более низкого сопротивления, для точной установки частоты. Шкалы у генератора нет, ею служит цифровой частотомер, подключаемый в разъем Х2.

Если предполагается снабдить генератор шкалой настройки, то схему плавной настройки нужно сделать на основе одного переменного резистора, многооборотного и с линейным законом изменения сопротивления.

Выходной синусоидальный сигнал снимается с вывода 19 и поступает на разъем Х2 для подачи на вход контрольного частотомера. А также, через регулятор выходного переменного напряжения на резисторе R7 на выход — разъем ХЗ, и на аттенюатор на резисторах R7-R10, позволяющем понизить выходное напряжение в 10, 100 и 1000 раз. Питание должно быть от двухполярного стабилизированного источника ±5V.

Детали и монтаж

Монтаж выполнен без применения печатной платы, в жестяном коробе размером 150x100x50 мм. Короб служит одновременно и шиной общего провода питания. Микросхема в корпусе DIP-20.

Монтаж выполнен следующим образом. Все выводы микросхемы А1, кроме тех, что соединяются с общим нулем питания, отогнуты в горизонтальное положение. Выводы, соединенные с общим проводом оставлены как есть, и припаяны к дну вышеуказанного жестяного короба.

После того как микросхема жестко закрепилась выводами, припаянными к общему проводу, остальной монтаж выполнен объемным способом на остальных выводах микросхемы. А так же, на выводах разъемов, резисторов R4, R5, R6 и галетного переключателя S1.

Значения емкостей С6-С12 указаны на схеме как есть, они не подбирались точно, поэтому реальные поддиапазоны отличаются от указанных на схеме. Если нужно выставить точные поддиапазоны, нужно точно подобрать емкости С6-С12, подключая к ним дополнительные «достроечные» конденсаторы.

Но это имеет значение только если генератор будет работать с собственной механической шкалой. При работе в паре с частотомером точная подборка С6-С12 не всегда требуется, так как генерируемая частота видна на табло цифрового частотомера.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: