Функциональный генератор импульсов своими руками. Генератор сигналов: функциональный генератор своими руками

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

Довольно часто радиолюбителю, да и не только, приходится сталкиваться с необходимостью проверки разных электронных устройств. Это бывает как на этапе отладки, так и на этапе ремонта.
Для проверки бывает необходимо проследить прохождение сигнала по разным цепям устройства, но само устройство не всегда позволяет это сделать без внешних источников сигнала.
Например при настройке/проверке многокаскадного НЧ усилителя мощности.

Для начала стоит немного объяснить о чем пойдет речь в данном обзоре.
Рассказать я хочу о конструкторе, позволяющим собрать генератор сигналов.

Генераторы бывают разные, например ниже тоже генераторы:)

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

Как всегда, для начала, немного об упаковке.
Помимо стандартной упаковки, конструктор был упакован в белый плотный конверт.
Все компоненты сами находились в антистатическом пакете с защелкой (довольно полезная в хозяйстве радиолюбителя вещь:))

Внутри упаковки компоненты были просто насыпом, и при распаковке выглядели примерно так.

Дисплей был обернут пупырчатым полиэтиленом. Примерно с год назад я уже делал такого дисплея с применением, потому останавливаться на нем не буду, скажу лишь что доехал он без происшествий.
В комплекте также присутствовали два BNC разъема, но более простой конструкции чем в обзоре осциллографа.

Отдельно на небольшом кусочке вспененного полиэтилена были микросхемы и панельки для них.
В устройстве применен микроконтроллер ATmega16 фирмы Atmel.
Иногда люди путают названия, называя микроконтроллер процессором. На самом деле это разные вещи.
Процессор это по сути просто вычислитель, микроконтроллер же в своем составе содержит кроме процессора ОЗУ и ПЗУ, и также могут присутствовать различные периферийные устройства, ЦАП, АЦП, ШИМ контроллер, компараторы и т.п.

Вторая микросхема - Сдвоенный операционный усилитель LM358. Самый обычный, массовый, операционный усилитель.

Сначала разложим весь комплект и посмотрим что же нам дали.
Печатная плата
Дисплей 1602
Два BNC разъема
Два переменных резистора и один подстроечный
Кварцевый резонатор
Резисторы и конденсаторы
Микросхемы
Шесть кнопок
Разные разъемы и крепеж

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

Металлизация выполнена качественно, замечаний у меня не возникло, покрытие контактных площадок отличное, паяется легко.

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

Сначала по печатной плате я начал чертить принципиальную схему. Но уже в процессе работы я подумал, что наверняка при создании данного конструктора использовалась какая нибудь уже известная схема.
Так и оказалось, поиск в интернет вывел меня на данного устройства.
По ссылке можно найти, схему, печатную плату и исходники с прошивкой.
Но я все равно решил дочертить схему в именно том виде как она есть и могу сказать, что она на 100% соответствует исходному варианту. Разработчики конструктора просто разработали свой вариант печатной платы. Это означает, что если существуют альтернативные прошивки данного прибора, то они будут работать и здесь.
Есть замечание к схемотехнике, выход HS взят прямо с вывода процессора, никаких защит нет, потому есть шанс случайно сжечь этот выход:(

Раз уж рассказывать, то стоит описать функциональные узлы данной схемы и расписать некоторые из них более расширенно.
Я сделал цветной вариант принципиальной схемы, на котором цветом выделил основные узлы.
Мне тяжело подобрать названия цветам, потом буду описывать как смогу:)
Фиолетовый слева - узел первоначального сброса и принудительного при помощи кнопки.
При подаче питания конденсатор С1 разряжен, благодаря чему на выводе Сброс процессора будет низкий уровень, по мере заряда конденсатора через резистор R14 напряжение на входе Сброс поднимется и процессор начнет работу.
Зеленый - Кнопки переключения режимов работы
Светло фиолетовый? - Дисплей 1602, резистор ограничения тока подсветки и подстроечный резистор регулировки контрастности.
Красный - узел усилителя сигнала и регулировки сдвига относительно нуля (ближе к концу обзора показано что он делает)
Синий - ЦАП. Цифро Аналоговый Преобразователь. Собран ЦАП по схеме , это один из самых простых вариантов ЦАП. В данном случае применен 8 бит ЦАП, так как используются все выводы одного порта микроконтроллера. Изменяя код на выводах процессора можно получить 256 уровней напряжения (8 бит). Состоит данный ЦАП из набора резисторов двух номиналов, отличающихся друг от друга в 2 раза, от этого и пошло название, состоящее из двух частей R и 2R.
Преимущества такого решения - большая скорость при копеечной стоимости, резисторы лучше применять точные. Мы с товарищем применяли такой принцип но для АЦП, выбор точных резисторов был невелик, потому мы использовали немного другой принцип, ставили все резисторы одного номинала, но там где надо 2R, применяли 2 последовательно включенных резистора.
Такой принцип Цифро аналогового преобразования был в одной из первых «звуковых карт» - . Там была также R2R матрица, подключаемая к LPT порту.
Как я выше писал, в данном конструкторе ЦАП имеет разрешение 8 бит, или 256 уровней сигнала, для простого прибора этого более чем достаточно.

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

С основной частью описания закончили, расширенная будет далее по тексту, а мы перейдем непосредственно к сборке.
Как и в прошлых примерах начать я решил с резисторов.
В данном конструкторе резисторов много, но номиналов всего несколько.
Основное количество резисторов имеют всего два номинала, 20к и 10к и почти все задействованы в R2R матрице.
Чтобы немного облегчить сборку, скажу что можно даже не определять их сопротивелние, просто 20к резисторов 9 штук, а 10к резисторов соответственно 8:)

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

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

Дальше берем припой в одну руку, паяльник в другую и пропаиваем все заполненные контактные площадки.
Сильно усердствовать с количеством компонентов не стоит, так как если набить так сразу всю плату, то в этом «лесу» можно и заблудиться:)

В конце обкусываем торчащие выводы компонентов впритык к припою. Бокорезами можно захватывать сразу несколько выводов (4-5-6 штук за один раз).
Лично я такой способ монтажа не очень приветствую и показал его просто ради демонстрации различных вариантов сборки.
Из недостатков такого способа:
После обрезки получаются острые торчащие кончики
Если компоненты стоят не в ряд, то легко получается каша из выводов, где все начинает путаться и это только тормозит работу.

Из достоинств:
Высокая скорость монтажа однотипных компонентов установленных в один - два ряда
Так как выводы сильно не загибаются, то облегчается демонтаж компонента.

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

После монтажа основного количества резисторов у нас останется несколько штук разного номинала.
С парой понятно, это два резистора 100к.
Три последних резистора это -
коричневый - красный - черный - красный - коричневый - 12к
красный - красный - черный - черный - коричневый - 220 Ом.
коричневый - черный - черный - черный - коричневый - 100 Ом.

Запаиваем последние резисторы, плата после этого должна выглядеть примерно так.

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

Для облегчения распознавания маркировки, последняя полоса должна отстоять от остальных, но это в идеальном случае. В реальной же жизни все бывает совсем не так как задумывалось и полоски идут в ряд на одном расстоянии друг от друга.
К сожалению в таком случае помочь может либо мультиметр, либо просто логика (в случае сборки устройства из набора), когда просто убираются все известные номиналы, а уже по оставшимся можно понять что за номинал перед нами.
Для примера пара фото вариантов маркировки резисторов в этом наборе.
1. На двух соседних резисторов попалась «зеркальная» маркировка, где не имеет значения откуда читать номинал:)
2. Резисторы на 100к, видно что последняя полоска стоит чуть дальше от основных (на обоих фото номинал читается слева - направо).

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

О конденсаторах и кварцевом резонаторе я рассказывал в прошлом обзоре, потому просто покажу куда они должны устанавливаться.
Видимо изначально все конденсаторы задумывались одного типа, но конденсаторы на 22 пФ заменили небольшими дисковыми. Дело в том, что место на плате рассчитано под расстояние между выводами 5мм, а мелкие дисковые имеют всего 2.5мм, потому придется выводы им немного разогнуть. Разгибать придется около корпуса (благо выводы мягкие), так как из-за того что над ними стоит процессор, то необходимо получить минимальную высоту над платой.

В комплекте к микросхемам дали пару панелек и несколько разъемов.
На следующем этапе они нам и понадобятся, а кроме них возьмем длинный разъем (мама) и четырехконтактного «папу» (на фото не попал).

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

При установке панелек устанавливаем их также как сделано обозначение на печатной плате.

После установки панелек плата начинает приобретать некоторый вид.

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

Выше я писал что в комплекте дали два переменных резистора, также в комплекте еще был подстроечный резистор. Немного расскажу про эти компоненты.
Переменные резисторы предназначены для оперативного изменения сопротивления, кроме номинала имеют еще маркировку функциональной характеристики.
Функциональная характеристика это то, как будет меняться сопротивление резистора при повороте ручки.
Существует три основные характеристики:
А (в импортном варианте В) - линейная, изменение сопротивления линейно зависит от угла поворота. Такие резисторы, например, удобно применять в узлах регулировки напряжения БП.
Б (в импортном варианте С) - логарифмическая, сопротивление сначала меняется резко, а ближе к середине более плавно.
В (в импортном варианте A) - обратно-логарифмическая, сопротивление сначала меняется плавно, ближе к середине более резко. Такие резисторы обычно применяют в регуляторах громкости.
Дополнительный тип - W, производится только в импортном варианте. S-образная характеристика регулировки, гибрид логарифмического и обратно-логарифмического. Если честно, то я не знаю где такие применяются.
Кому интересно, могут почитать подробнее.
Кстати мне попадались импортные переменные резисторы у которых буква регулировочной характеристики совпадала с нашей. Например современный импортный переменный резистор имеющий линейную характеристику и букву А в обозначении. Если есть сомнения, то лучше искать дополнительную информацию на сайте.
В комплекте к конструктору дали два переменных резистора, причем маркировку имел только один:(

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

Запаиваем резисторы и кнопки и переходим к BNC разъемам.
Если планируется использовать устройство в корпусе, то возможно стоит купить кнопки с более длинным штоком, чтобы не наращивать те, что дали в комплекте, так будет удобнее.
А вот переменные резисторы я бы вынес на проводах, так как расстояние между ними очень маленькое и пользоваться в таком виде будет неудобно.

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

Собственно пайка основной платы завершена, теперь можно установить на свое место операционный усилитель и микроконтроллер.

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

Микросхемы устанавливаем в соответствии ключом на панельке, которая в свою очередь установлена в соответствии с маркировкой на плате.

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

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

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

У меня в работе вработалась привычка после промывки платы покрывать ее защитным лаком, обычно снизу, так как попадание лака на разъемы недопустимо.
В работе я использую лак Пластик 70.
Данный лак очень «легкий», т.е. он при необходимости смывается ацетоном и пропаивается паяльником. Есть еще хороший лак Уретан, но с ним все заметно сложнее, он прочнее и паяльником пропаять его гораздо труднее. ТАкой лак используется для тяжелых условий эксплуатации и тогда, когда есть уверенность в том, что плату паять больше не будем, хотя бы какое то длительное время.

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

Пришла очередь установки дисплея. Для этого в комплекте дали четыре винтика М3 и две монтажные стойки.
Дисплей крепится только со стороны обратной разъему, так как со стороны разъема он держится собственно за сам разъем.

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

Ну все, можно пробовать.
Подаю 5 Вольт на соответствующие контакты разъема и…
И ничего не происходит, только включается подсветка.
Не стоит пугаться и сразу искать решение на форумах, все нормально, так и должно быть.
Вспоминаем что на плате есть подстроечный резистор и он там не зря:)
Данным подстроечным резистором надо отрегулировать контрастность дисплея, а так как он изначально стоял в среднем положении, то вполне закономерно, что мы ничего не увидели.
Берем отвертку и вращаем этот резистор добиваясь нормального изображения на экране.
Если сильно перекрутить, то будет переконтраст, мы увидим все знакоместа сразу, а активные сегменты будут еле просматриваться, в этом случае просто крутим резистор в обратную сторону пока неактивные элементы не сойдут почти на нет.
Можно отрегулировать так, что неактивные элементы вообще не будут видны, но я обычно оставляю их еле заметными.

Дальше мне бы перейти к тестированию, да не тут то было.
Когда я получил плату, то первым делом заметил, что помимо 5 Вольт ей надо +12 и -12, т.е. всего три напряжения. Я прям вспомнил РК86, где надо было +5, +12 и -5 Вольт, причем подавать их надо было в определенной последовательности.

Если с 5 Вольт проблем не было, да и с +12 Вольт также, то -12 Вольт стали небольшой проблемой. Пришлось сделать небольшой временный блок питания.
Ну в процессе была классика, поиск по сусекам того из чего можно его собрать, трассировка и изготовление платы.

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

Я поставил также почти без запаса. Но при этом он достаточен при нормально сетевом напряжении.
Я бы рекомендовал применить трансформатор как минимум на 2 ВА, а лучше на 3-4ВА и имеющий две обмотки по 15 Вольт.
Кстати потребление платы небольшое, по 5 Вольт вместе с подсветкой ток составляет всего 35-38мА, по 12 Вольт ток потребления еще меньше, но зависит от нагрузки.

В итоге у меня вышла небольшая платка, по размерам чуть больше спичечного коробка, в основном в высоту.

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

Так выглядит полный комплект прибора. для соединения БП с платой прибора я спаял небольшой жесткий соединитель 4х4 контакта.

Плата БП подключается при помощи соединителя к основной плате и теперь можно переходить к описанию работы прибора и тестированию. Сборка на этом этапе окончена.
Можно было конечно поставить все это в корпус, но для меня такой прибор скорее вспомогательный, так как я уже смотрю в сторону более сложных DDS генераторов, но и стоимость их не всегда подойдет новичку, потому я решил оставить как есть.

Перед началом тестирования опишу органы управления и возможности устройства.
На плате есть 5 кнопок управления и кнопка сброса.
Но по поводу кнопки сброса думаю все понятно и так, а остальные я опишу более подробно.
Стоит отметить небольшой «дребезг» при переключении правой/левой кнопки, возможно программный «антидребезг» имеет слишком маленькое время, проявляется в основном только в режиме выбора частоты выхода в режиме HS и шага перестройки частоты, в остальных режимах проблем не замечено.
Кнопки вверх и вниз переключают режимы работы прибора.
1. Синусоидальный
2. Прямоугольный
3. Пилообразный
4. Обратный пилообразный

1. Треугольный
2. Высокочастотный выход (отдельный разъем HS, остальные формы приведены для выхода DDS)
3. Шумоподобный (генерируется случайным перебором комбинаций на выходе ЦАП)
4. Эмуляция сигнала кардиограммы (как пример того, что генерировать можно любые формы сигналов)

1-2. Изменять частоту на выходе DDS можно в диапазоне 1-65535ГЦ с шагом 1Гц
3-4. Отдельно есть пункт, позволяющий выбрать шаг перестройки, по умолчанию включается шаг 100Гц.
Изменять частоту работы и режимы можно только в режиме, когда генерация выключена., изменение происходит при помощи кнопок влево/вправо.
Включается генерация кнопкой START.

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

Дальше пойдут результаты тестов.
Все сигналы (кроме шумоподобного и ВЧ) проверялись на четырех частотах:
1. 1000Гц
2. 5000Гц
3. 10000Гц
4. 20000Гц.
На частотах выше был большой завал потому эти осциллограммы приводить не имеет особого смысла.
Для начала синусоидальный сигнал.

Пилообразный

Обратный пилообразный

Треугольный

Прямоугольный с выхода DDS

Кардиограмма

Прямоугольный с ВЧ выхода
Здесь предоставляется выбор только из четырех частот, их я и проверил
1. 1МГц
2. 2МГц
3. 4МГц
4. 8МГц

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

Как показало тестирование, сигналы имеют довольно искаженную форму начиная примерно с 10КГц. Сначала я грешил на упрощенный ЦАП, да и на саму простоту реализации синтеза, но захотелось проверить более тщательно.
Для проверки я подключился осциллографом прямо на выход ЦАП и установил максимально возможную частоту синтезатора, 65535Гц.
Здесь картина получше, особенно с учетом того, что генератор работал на максимальной частоте. Подозреваю что виной простая схема усиления, так как до ОУ сигнал заметно «красивее».

Ну и групповое фото небольшого «стенда» начинающего радиолюбителя:)

Резюме.
Плюсы
Качественное изготовление платы.
Все компоненты были в наличии
Никаких сложностей при сборке не возникло.
Большие функциональные возможности

Минусы
BNC разъемы стоят слишком близко друг к другу
Нет защиты по выходу HS.

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

Фух, вроде все, если накосячил где то, пишите, исправлю/дополню:)

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Планирую купить +47 Добавить в избранное Обзор понравился +60 +126

Этот сайт посвящен моим проектам на PIC контроллерах, доступных для публичного освещения. Все приведенные схемы реализованы в железе и работают в настоящее время в быту или производстве. Для написания программ использован пакет MPLAB/х, свободно распространяемый фирмой MICROCHIP. Используется программатор PICKIT2/3, ICD2/3. Любую конструкцию можно собрать самому, даже если она платная и получить бесплатно код разблокировки. Также можно приобрести в качестве набора для сборки или готового изделия. Принимаются заказы на разработку аналогово-цифровой или цифровой электроники, систем управления и электроники для производства с применением контроллеров.
Вопросы и предложения писать на почту [email protected]
Если у Вас есть интересные предложения, закакзы или вопросы и форум Вам не помог - адрес тот же.


Обзор.

Казалось бы существует великое множество любительских генераторов сигналов, бери да повторяй, но не так все просто. Всегда считал что промышленные генераторы закроют все мои потребности, да и лучше они любительских. Но жизнь расставила все по местам, пришлось делать свой, который бы хоть на немного закрыл мои потребности. При всей своей простоте конструкции, его возможностей достаточно для применения радиолюбителями и не только.. Кроме своей основной функции просто генератора он позволяет измерять емкость, сопротивление, автоматически снимать АЧХ с экспортом на компьютер. Также формировать сигналы ШИМ (PWM) для одноактных и двухтактных схем с автоматической защитой или управляемые по обратной связи. Выполнен на доступных деталях и прост в настройке.

Теперь кратко о технических характеристиках:
- Габариты п/п 67 *88 *19 мм, разработана специально для установки в корпус Z-19
- Дисплей 2*16 символов, светодиодная подсветка.
- Питание 3,7 - 5 вольт. 3 элемента типа ААА или литиевый аккумулятор или внешнее. Максимальное потребление 40 мА
- Выходное напряжение Vp-p аналоговый выход - 3,3v.
- Частота дискретизации DDS -1,6 МГц. Разрешение цифровой части (PWM) 62.5 nS
- Диапазон частот аналоговой части 0-600 кГц, Цифровой 50Гц-320 кГц / PWM-7bit(0-100%).
- Встроенные отключаемые фильтра
- Диапазон измерений емкости: 100pF - 10uF с точностью +/-5%
- Диапазон измерения сопротивления 10 Ом - 200кОм с точностью +/-5%
- Цифровые вход и выход внешней синхронизации, открытый и закрытый входа.
- Аналоговый вход.
- Выходной делитель 1/10 для аналоговой части.
- Управление - энкодер с прогрессивной харракеристикой
- Память на 4 формы сигнала пользователя, импорт и экспорт на компьютер. Есть ручная настройка.
- Автоматическое снятие АЧХ без дополнительных приборов, экспорт на компьютер. Режим просмотра без компьютера.
- Генератор видеосигнала - вертикальные полосы - градации яркости
- Базовые сигналы -синусоида, прямоугольник, пила прямая и обратная, треугольник, ЭКГ, белый шум.
- Свип генератор с настройкой полосы и скорости изменения.
- Формирование пачек импульсов с внешней сихронизацией.
- Контроль источника питания, подзарядка аккумулятора, если есть.

Внешний вид (все картинки кликабельны)

Вариант компоновки в корпусе Z-19. Вместо отсека для батареек можно расположить литиевый аккумулятор.
Гнезда для подключения можно расположить на передней панели и клеммы в плату не запаивать.

DDS генератор сигналов "OSKAR-DDS"
Аппаратная часть

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

Немного подробнее о схеме.
Ядром является микроконтроллер PIC18F26K22 фирмы "MICROCHIP", который собственно и выполняет все функции прибора. Аналоговая часть выполнена на сдвоенном операционном усилителе MCP6022 с полосой единичного усиления 10 МГц, цифровом сдвоенном переменном резисторе MCP41010, сдвоенном ОУ MCP602 и аналоговом коммутаторе.
Сдвоенный переменный резистор используется для регулировки уровня выходного сигнала и регулировки смещения по постоянному току выходного сигнала. Источник опорного напряжения и буфер виртуальной земли (аналоговая земля) выполнен на MCP602.
ЗАПРЕЩАЕТСЯ соединять цифровую и аналоговую земли!!!
В качестве дисплея использован черно-белый символьный индикатор 2*16 BC1602 или совместимые.
Питание всей схемы выполняется от стабилизированного источника 3,3 вольта (LM2950-3.3). Управление питанием выполнено на транзисторах Т1 и Т2.
Питание аналоговой части, несмотря на применение ОУ Rail-to-Rail, выполнено с изюминкой. На D3 сделано смещение в минус, примерно 0,25V, и в плюс до напряжения питания, как минимум 0,2V (падение на LowDrop LM2950), чем обеспечивается высокое качество сигнала во всем диапазоне амплитуд.
Все элементы установлены на двухсторонней печатной плате с одной стороны, а дисплей с подсветкой, клеммы, кварц, гнездо питания и энкодер с другой. В итоге получается компактная, жесткая конструкция.

Расположение элементов (кликабельно)

Для сборки нам понадобятся

Перечень элементов
Питание
Bat1 = 1 x 4-9V Держатель AAA для 3-х 33x51
Конденсаторы
C17 = 1 x 200p
C18 = 1 x 82p
C1,C2,C3,C4,C5,
C8,C9,C10,C13,
C16,C20,C21 = 12 x 0.1
C11,C12 = 2 x 27
C15,C19 = 2 x 1.0
C6,C7 = 2 x 100.0
Кварц
Cr1 = 1 x 20 MHz
Диоды
D1 = 1 x LL4148
D2 = 1 x 5v6
D3 = 1 x SS12
D4 = 1 x BAV99
D5 = 1 x BAT54S
Микросхемы
DA1 = 1 x MCP42010
DA2 = 1 x MCP602
DA3 = 1 x MCP6022
DD = 1 x PIC18F26K22
IC1 = 1 x 74hc4066
ЖКИ
LCD1 = 1 x BC1602(HD44780 и его аналоги)
Резисторы
R2 = 1 x 6k2
R7 = 1 x 220k
R8 = 1 x 11k
R13 = 1 x 910
R14 = 1 x 300
R16 = 1 x 2K
R17 = 1 x 3K
R20 = 1 x 100k
R21 = 1 x 4k7
R23 = 1 x 10K
R27 = 1 x 1
R1,R5 = 2 x 33
R10,R15 = 2 x 22k
R12,R18,R24,
R25,R26 = 5 x 100
R22,R38,R40,
R41,R42,R43,
R44,R45 = 8 x 1k 0,5%
R3,R4,R6,R9,
R11,R19,R28,
R29 = 8 x 10k
R30,R31,R32,
R33,R34,R35,
R36,R37,R39 = 9 x 2k 0,5%
Энкодер
S = 1 x re11ct2
Транзисторы
T1 = 1 x BC807
T4 = 1 x 2N7002
T2,T3 = 2 x BC817
Стабилизатор
VR1 = 1 x lp2950-3.3
Разъем
X1 = 1 x 5mm
Клеммник
126-02P(5.0мм) x5

А также терпение, умение и прямые руки.

DDS генератор сигналов "OSKAR-DDS"
Описание работы и управление.
Описание входов и выходов

Итак, клеммы подключения слева на право:

1 - AGND - Аналоговая виртуальная земля. Не соединять с цифровой землей!!!
2 - AUOT 1/10 - Аналоговый выход с делителем 1/10.
3 - AUOT 1/1 - Аналоговый выход. Максимальное напряжение по отношению к аналоговой земле +3,3/-3,3 вольт.
4 - Аналоговый вход Сх. Универсальный вход. Работает по отношению к цифровой земле. Максимальное входное напряжение без повреждения - 10 вольт. Так же вход RS232 9600 8N1.
5 - PWM - Выход цифрового модуля PWM. Выходные уровни - цифровые CMOS 3,3 вольт.
6 - PWM1 - Выход цифрового модуля PWM1. Выходные уровни - цифровые CMOS 3,3 вольт.
7 - Цифровая земля.
8 - Выход SYN. Выходные уровни - цифровые CMOS 3,3 вольт. Так же выход RS232 9600 8N1.
9 - SYN in - закрытый вход синхронизации. Максимальное входное напряжение без повреждения - 50 вольт. Входное сопротивление более 100кОм.
10 - SYN in - открытый вход синхронизации. Максимальное входное напряжение без повреждения - 50 вольт. Входное сопротивление более 100кОм.
На всех выходах включены защитные резисторы 100 Ом.
На всех входах включены защитные резисторы 10 кОм.

Управление

Все управление сделано одним энкодером. Есть следующие комбинации:
Длинное нажатие (более 1 сек.) Включение и выключение прибора. При выключении запоминаются все настройки и текущий режим. После включения будет в том же месте, с генерацией того же сигнала.
Короткое нажатие - выбор параметра для изменения.
Вращение - смена параметра, отображенного на дисплее. Вправо - увлечение. Влево - уменьшение.
Скорость изменения зависит от скорости вращения, так например в зависимости от скорости вращения изменение частоты может быть и 0,1 Гц и 10000 Гц на один щелчок. Это позволяет оперативно и точно настроить любые параметры и не утомляет оператора.

Питание

Питание от однополярного источника напряжением от 3,7 до 5 вольт. Превышение 5 вольт приводит к порче прибора.
Внутненее питание от стабилизатора 3,3 вольт.
Допустимо использовать:
- три батарейки по 1,5 вольт (конструктив рассчитан на установку батарейного отсека 3*ААА.
- Литиевый аккумулятор со схемой защиты, монтажный или от мобильного телефона.
- Внешний источник стабилизированного напряжения 5 вольт/200мА, благо сейчас полно USB зарядок. Если при этом есть встроенный аккумулятор, то он будет заряжаться. Как такового контроллера заряда нет, зарядка идет ограниченным током. По этому следует ограничивать время заряда и не применять аккумуляторы емкостью не менее 900мА/час. Также обязательным условием является схема защиты на самом аккумуляторе. (от мобильных все имеют).
Изолированное питание позволяет применять генератор для устройств под напряжением, в том числе под напряжением сети. Следует проявлять осторожность и меры защиты от поражения электрическим током.

Частотные характеристики

В генераторе есть два подключаемых активных фильтра НЧ с частотами среза 300 кГц и 20кГц

Частотная характеристика без фильтра (для синусоидального сигнала)

Частотная характеристика с фильтром 300 кГц (для синусоидального сигнала)


Частотная характеристика с фильтром 20 кГц (для синусоидального сигнала)

Включение фильтров для цифровых сигналов будет искажать форму сигнала.

Режимы работы

Генератор синусоиды

Диапазон частот от 0,09 Hz до 600 кГц. Рекомендуется включать соответствуюшие фильтра для качественного сигнала.
- Максимальная амплитуда Vp-p 3.3 вольт. Регулировка 256 шагов
- Смещение по постоянному току +/- 1,65 вольт. Регулировка 256 шагов

Дополнительные режимы

Режим пачек импульсов (PULSE MODE).

1 - Режим пульса с выводом синхросигнала на выход SYN OUT. "PULSE ENABLE"
Генерируется сигнал с установками сделанными ранее, длительностью TIME PULSE.
Окончание генерации сопровождается установкой "0" на выходе SYN OUT.
Выдерживается пауза длительностью TIME PAUSE, причем во время паузы устанавливается уровень по постоянному току PAUSE LEVEL. И так по кругу.
Настройка этих параметров в разделе "SETTING"
Диапазон изменения таймеров паузы и пульса - от 0 до 1,048 секунды с шагом 64 мкс.
Уровень паузы по постоянному току +/- 1,65 вольт. Регулировка 256 шагов
Выход SYN OUT формирует сигнал по отношению к цифровой земле.

2 - Режим пульса (генерации) от внешнего синхро сигнала."ONE PULS SYNC"
Начало по фронту импульса.
Начало генерации сопровождается установкой "1" на выходе SYN OUT.
По внешнему синхро сначала выжидается пауза с установленным PAUSE LEVEL длительностью TIME PAUSE, затем формируется однократно пачка длительностью TIME PULSE ,и потом все сначала, с ожидания фронта синхросигнала.

3 - Режим генерации от внешнего синхро сигнала."START OF SYNC"
Начало по фронту импульса.
Начало генерации сопровождается установкой "1" на выходе SYN OUT.
Окончание генерации сопровождается установкой "0" на выходе SYN OUT. Выход SYN OUT формирует сигнал по отношению к цифровой земле.
По внешнему синхро сначала выжидается пауза с установленным PAUSE LEVEL длительностью TIME PAUSE, затем включается генератор непрерывно. Для запуска сначала надо нажать на энкодер и цикл начнется сначала, с ожидания фронта синхросигнала.

Выбран режим генератора синусоиды, вращение енкодера - смена режима, нажатие - установки режима.
Стрелочки слево и вправо обозначают что при вращении режим будет изменен.

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

Выбор частоты

Сдвиг по постоянному уровню

Выбран режим установок, вращение енкодера - смена режима, нажатие - установки режима.
Стрелочки слево и вправо обозначают, что при вращении режим будет изменен.

Подключение фильтров. Изменение - вращение.
Фильтры отключены. Подключен фильтр 300 кГц. Подключен фильтр 20кГц

Переключение дополнительных режимов пульса. Изменение - вращение.
Режим пульса отключен. Режим запуска от синхро. Режим однократного запуска. Режим авто с выводом синхро.

Глобальные настройки - SETUP. Изменение - вращение.
Начальный экран. Настройка контраста дисплея. Вкл/выкл подсветки. Напряжение питания. Показать серийный номер.

Синусоида 1000 Гц.

Синусоида 90 кГц без применения фильтров. Видны ступеньки.

Синусоида 90 кГц с фильтром на 300 кГц. Теперь все хорошо

Синусоида 300 кГц с фильтром на 300 кГц. Картинка красивая, незначительно упала амплитуда, согласно АЧХ.

Синусоида 600 кГц с фильтром на 300 кГц. Картинка не красивая, упала амплитуда, согласно АЧХ. Частоты свыше 300к - для снятия АЧХ, для полного применения нужен нормальный внешний фильтр НЧ с частотой среза 600к.

Синусоида 5 кГц с фильтром на 300 кГц. Сдвиг по постоянному уровню в плюс.

Синусоида 5 кГц с фильтром на 300 кГц. Сдвиг по постоянному уровню в минус.

Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса, пауза и время 2,1 mS

Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса, пауза и время 1.98 mS, Выход синхросигнала

Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса однократный, пауза и время 1.98 mS, Вход синхросигнала внешнего 100Гц. От фронта выдержка паузы с уровнем, затем пачка.

Размах входящего синхросигнала должен быть не менее 3-х вольт. Если есть постоянная составляющая, использовать закрытый вход.

Генератор прямоугольного, пилообразного, обратного пилообразного, треугольного сигнала.

Диапазон частот от 0,09 Hz до 200 кГц. Рекомендуется отключать фильтра для качественного сигнала.

Иллюстрации отображения на индикаторе

Генератор прямоугольного сигнала


Генератор пилообразного сигнала


Генератор обратного пилообразного сигнала

Генератор треугольного сигнала

Иллюстрации осциллограмм сигнала с генератора

Прямоугольник 5000 Гц.

Пила 5000 Гц.

Обратная пила 5000 Гц.

Треугольник 5000 Гц.


Генератор сигнала ЭКГ.

Иллюстрации

Экран

Осциллограмма


Генератор белого шума.

Рекомендуется подключать фильтр 20 кГц для качественного сигнала.
Настраиваемые параметры: Амплитуда, сдвиг по постоянному уровню, тональность.
Так же доступны все дополнительные режимы и их регулировки.

Иллюстрации

Осциллограмма

Генератор низкочастотного телевизионного сигнала.

Рекомендуется отключать фильтр для качественного сигнала.
Полный Ч/Б видеосигнал из двух полукадров(625 строк), вертикальные полосы - градации серого.
Настраиваемые параметры: Амплитуда, сдвиг по постоянному уровню.

Иллюстрации

Осциллограмма 1 строки

Свип генератор.

Принцип работы - генерация синусоидального сигнала он начальной частоты FRQ START до конечной частоты FRQ END с шагом по частоте FRQ STEP и временем на 1 шаг TIME STEP.
Диапазон перестроек частот и шага 0,09Гц - 600 кГц, времени от 64 мкс до 1 сек.
Также настраиваются параметры: Амплитуда, сдвиг по постоянному уровню, запись лог файла вкл/выкл (LOG ENABLE /LOG DISABLE)
Рекомендуется подключать соответствующий фильтр для качественного сигнала, в зависимости от частотного диапазона.
Уровень постоянной составляющей в паузе так же берется из соответствующей настройки.
Дополнительные режимы не доступны.
Рекомендуется выбирать время шага не менее 10-20 периодов самого низкого сигнала для снятия АЧХ.
Запись лога применяется для автоматического снятия АЧХ исследуемого устройства. Глубина лога - 1280 значений. Для каждого значения записывается частота и измеренная амплитуда постоянного сигнала на аналоговом входе Сх. Максимальное напряжение на входе - 3,3 вольт для максимального отсчета.
Запись начинается всегда сначала с самой маленькой частоты. Для записи всей АЧХ требуется выполнение условия: (Частота конечная - частота начальная)/ шаг частоты
Дополнительно выставляется пауза между циклами, равная установки времени паузы и генерируется синхроимпульс на выходе SYN OUT, длинна которого в высоком состоянии равна времени генерации. В паузе SYN OUT ="0".

Иллюстрации

Осциллограмма

Подробнее об автоматическом получении АЧХ исследуемого устройства и просмотре лога.

Итак, требуется снять АЧХ фильтра пробки, образованной колебательным контуром из индуктивности и емкости. Также путем косвенных измерений узнаем значение индуктивности, при известной емкости.
Соберем схему показанную на рисунке:

Исследуемый колебательный контур состоит из индуктивности и конденсатора C2,нагруженный на резистор R1.
Данная цепочка подключается к выходу генератора - OUT и AGND.
Соберем измерительную схему. Развязку по постоянному току выполняет С3, за ним стоит детектор по схеме удвоения на диодах D1 и D2. Который в свою очередь нагружен на R3 , пульсации сглаживает конденсатор C1.
Измерительная схема подключена к входам Сх и GND.
Настроим генератор, для этого установим в настройках время паузы - 100mS, уровень сигнала во время паузы - минимальный. Переходим в раздел Свип-генератор, устанавливаем частоту старта 10 кГц, частоту окончания 15 кГц, шаг перестройки - 50Гц, время перестройки 20mS, амплитуду максимальную, смещение нулевое, лог -включить, выходим на начало и ждем какое-то время.

Иллюстрации к настройкам







Пока ждем, подключим осциллограф ко входу Сх



Явно импульс стробирования длинной 100 mS, и АЧХ с характерным провалом на резонансе фильтра - пробки.
Значит мы правильно выбрали диапазон перестройки.

Перходим в раздел просмотра лога

Выбираем просмотр

И вращая энкодер, просматриваем частоту и амплитуду. Можно в уме выбрать минимальное значение, можно переписать на листик и по точкам построить АЧХ, но это не наш метод.
Воспользуемся компьютером. Нам понадобится USB-COM TTL преобразователь, например такой


Подключаем
GND - GND
RXD - SYN OUT

На компьютере запускаем программу гипертерминал, выбираем COM порт, который создался при установке преобразователя USB-COM.
Настраиваем скорость 9600 8N1, включаем запись данных с порта в файл, подключаемся к порту.
На генераторе выбираем пердачу данных, и вращением запускаем пердачу.


После окончания выключаем связь, закрывем файл.
Смотрим, что получили
Должно быть чтото типа этого

OSKAR DDS VER=3.0.0 START LOG FRQ-Hz,VOLUME 0010050.39,068 0010100.45,070 0010150.52,069 0010200.59,069 0010250.65,068 0010300.72,068 0010350.79,069 0010400.86,069 0010450.93,068 0010501.00,068 0010551.07,068 0010601.13,069 0010651.20,068 0010701.27,068 0010751.33,068 0010801.40,068 0010851.47,069 0010901.54,068 0010951.61,068 0011001.67,068 0011051.74,068 0011101.81,068 0011151.88,068 0011201.95,067 0011252.01,067 0011302.08,067 0011352.15,067 0011402.22,067 0011452.29,066 0011502.35,066 0011552.42,067 0011602.49,066 0011652.56,065 0011702.63,065 0011752.69,065 0011802.76,065 0011852.83,064 0011902.90,063 0011952.96,063 0012003.03,063 0012053.10,062 0012103.17,061 0012153.24,060 0012203.30,060 0012253.37,058 0012303.44,057 0012353.51,055 0012403.58,054 0012453.64,052 0012503.71,050 0012553.78,048 0012603.85,045 0012653.92,042 0012703.98,040 0012754.05,038 0012804.12,035 0012854.19,033 0012904.26,032 0012954.32,031 0013004.39,030 0013054.46,031 0013104.53,033 0013154.60,034 0013204.66,035 0013254.73,038 0013304.80,040 0013354.86,042 0013404.93,045 0013455.00,047 0013505.07,049 0013555.14,050 0013605.21,053 0013655.27,054 0013705.34,055 0013755.41,057 0013805.48,057 0013855.54,058 0013905.61,059 0013955.68,060 0014005.75,061 0014055.82,061 0014105.88,062 0014155.95,062 0014206.02,063 0014256.09,064 0014306.15,064 0014356.23,064 0014406.29,065 0014456.36,065 0014506.43,066 0014556.49,065 0014606.56,065 0014656.63,066 0014706.70,066 0014756.77,066 0014806.83,067 0014856.90,067 0014906.97,067 0014957.04,067 0015007.11,067 END LOG

Если все в порядке, тогда запускаем EXCEL и строим график

Теперь все очень наглядно, частота резонанса - 13кГц.
Должен сказать,что я примерно знал номинал индуктивности, по этому выбрал именно этот диапазон для снятия АЧХ

Теперь самое время взять калькулятор и рассчитать индуктивность по известной формуле LC резонанса.
У меня получилось 149,9 микрогенри, а сам дроссель взят из коробочки с надписью 150 микрогенри.

Аналогичным образом снимается АЧХ любого четырехполюсника, главное обеспечить сигнал на входе Сх достаточной амплитуды.
В дополнение
- Если у Вас стандартный COM порт, а не TTL то тогда надо выбрать инверсную передачу. Но следует помнить, что не все порты понимают сигнал амплитудой всего 3 вольта.
-Схема детектора должна иметь низкое выходное сопротивление, или шунтировать вход Сх конденсатором на землю. Но в последнем случае требуется не высокая скорость изменения частоты.

Измерение емкости и сопротивления.

Тут все просто,подключаем и смотрим





Режим генерации произвольного сигнала. Редактирование, загрузка и выгрузка формы сигнала.

Диапазон частот от 0,09 Hz до 600 кГц. Рекомендуется включать/отключать фильтра для качественного сигнала, в зависимости от формы и частоты.
Все остальные параметры, режимы, управление соответствуют генератору синусоидального сигнала.
Так же доступны все дополнительные режимы и их регулировки.
Количество форм сигналов - 4, пронумерованных от #0 до #3. Размер таблицы на период - 256 отсчетов. Для каждого отсчета указывается амплитуда от 0 до 255.

Генерация произвольного сигнала.

Перейти в режим USER #x WAVE. Доступны регулировки частоты, амплитуды, сдвига по постоянному уровню и выбор номера сигнала

Иллюстрации к настройкам и предустановленным сигналам



Ручное редактирование произвольного сигнала.

Перейти в режим USER #x EDIT.
В процессе редактирования сигнал продолжает генерироваться с параметрами установленными в предыдущем разделе и его можно наблюдать, например на осциллографе.
Первым делом нужно выбрать номер таблицы,которую будем редактировать, при входе в режим она совпадает с номером, выбранным в предыдущем режиме. И форма сигнала загрузится из той же таблицы.
Если для образца редактирования требуется синусоида, то требуется зайти в меню генерации пользовательского сигнала, выбрать номер таблицы, затем прейти назад в режим свип-генератора и вернуться вперед в редактирование.
В этом случае образцом редактирования будет синус и номер таблицы из предыдущего меню. Если в режиме редактирования изменить номер таблицы, то и форма сигнала будет перезагружена из пользовательских данных.

Следующим пунктом выбирается редактирование сигнала.
Выбирается вращением позиция в таблице POS от 0 до 255

Нажимаем и выбираем амплитуду в этой позиции

Нажимаем и попадаем в выбор следующей позиции.
Для выхода требуется переход позиции из значения 255 в 0.
Появится приглашение сохранения в память данной таблицы

Вращением сохраним, или нажимаем и идем дальше.
Следующее приглашение на экспорт на компьютер данной таблицы. Подключение к COM порту такое же как и в случае экспорта АЧХ. Также доступен экспорт в инверсии сигнала порта, как описано ранее, в следующем пункте.


Сохранив аналогично описанному ранее получим масив данных,например такой

START TABLE #3 OSKAR DDS VER=3.0.0 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, END TABLE

В этом режиме сигнал не генерируется, а идет ожидание данных с компьютера в формате
#001:127 0x0D 0x0A
Где # - признак начала, затем номер позиции - 3 цифры от 000 до 255, затем двоеточие - разделитель
затем значение амплитуды 3 цифры от 000 до 255, затем коды конца строки и перевода каретки.
Можно передавать сколько угодно данных пока не выйти из режима нажатием.
Подключение только через USB-TTL переходник, TXD соединяется с клеммой SYN OUT после входа в режим загрузки.
Подключение
GND - GND
TXD - SYN OUT

В процессе ввода на индикаторе будут отображаться номер позиции, который изменен.
Далее не меняя номер таблицы прейти в редактирование, где можно посмотреть введенные данные.Также можно посмотреть осциллограмму на выходе и затем сохранить.
Без сохранения таблица хранится только в оперативной памяти и после выключения будет потеряна

Цифровая часть генератора

Модуль PWM , общая информация.

Генератор обеспечивает сигналы для всех типовых схем преобразователей в диапазоне частот от 50Гц до 320кГц.
Типовые схемы преобразователей (упрощенные) и их подключение.

Типовые временные диаграммы.

Эта диаграмма для полумостового преобразователя.
В обратноходовом отсутствует сигнал PWM1 и заполнение (FILL) может достигать 100% от периода.
Для гарантированного отсутствия сквозных токов генератор формирует регулируемое время задержки от 0 до 7,937 микросекунды с шагом 62,2 nS для высокочастотного модуля и 1/200 периода для низкочастотного.
Заполнение регулируется от 0 до 100% с шагом 1%.

Предусмотрено два основных режима работы - стандартный и авто.
В стандартном режиме сигнал с датчика тока R поступает на вход Сх и если он превышает 200mV то Модуль PWM отключится (выходной сигнал =0 на PWM и PWM1) до момента прекращения перегрузки. Если защита от перегрузки не нужна, вход Сх оставить не подключенным или соединить с GND для устранения наводок..

В автоматическом режиме используется датчик выходного напряжения и через оптопару подается на вход Сх. Питание оптопары можно взять с аналоговой земли (если установлено нулевое смещение в аналоговом генераторе).
При росте выходного напряжения оптопара открывается и напряжение на входе Сх растет. Генератор автоматически уменьшает заполнение вплоть до нуля. Чувствительность входа для полного выключения порядка 1 вольта.
Для предотвращения перегрузки заполнение не может превысить установленного значения для основного режима. Таким образом если установить FILL = 50% и режим Авто то заполнение будет автоматически регулироваться в предела 0-50%

Если обратная связь не требуется, вход Сх оставить не подключенным или соединить с GND для устранения наводок.
Для высокочастотного преобразователя вместо параметра FILL выступает параметр Delay.

К выходу генератора напрямую можно подключать только транзисторы в управлением по логическому уровню и небольшой емкостью затвора. На выходах уже присутствуют резисторы 100 Ом.
Во всех остальных случаях требуется применение драйверов. Также они нужны для полумостовой схемы сетевого преобразователя, как в компьютерном блоке питания.
Выходное напряжение выходов PWM "0" - 0V "1" - 3V
Входное сопротивление входа Сх - 10 кОм.

Модуль PWM LF HB, LF - низкая частота, Half Bridge - полумост

Частоты - 50, 60 и 400 Гц.

Заполнение 0-100%
Гарантированный защитный интервал 1/200 периода.

Типовая осциллограмма

Регулируемые параметры
Частота
Заполнение
Режим

Иллюстрации отображения на индикаторе



Переключение в ручной, автоматический, заполнение в автоматическом





Основное применение - инверторы промышленной частоты.

Модуль PWM LF FL, LF - низкая частота, FL - flyback – обратноходовый

Диапазон частот 50 Гц - 4800 Гц с переменным шагом
Режим работы - стандартный и авто.
Заполнение 0-100%
Гарантированный защитный интервал 1/100 периода.

Типовая осциллограмма

Сигнал генерируется на выходе PWM и дублируется на аналоговом выходе с возможностью регулировки амплитуды и смещения. Регулируемые параметры
Частота
Заполнение
Режим
Амплитуда
Смещение

Иллюстрации отображения на индикаторе

Выбор режима, частоты, заполнения



Переключение в ручной, автоматический, установка амплитуды



Установка смещения, режим автоматической работы


В автоматическом режиме - заполнение всегда не более установленного в стандартном режиме.
В стандартном режиме - выключение при появлении сигнала на входе Сх
Основное применение - обратноходовые преобразователи низкой частоты, ШИМ управление на низкой частоте.

Модуль PWM HF HB, HF - высокая частота, Half Bridge - полумост

Диапазон частот 3906Гц - 250кГц
Режим работы - стандартный и авто.
Защитный интервал (DELAY TIME) 250 nS - 7397 nS c шагом 62,5 nS в автоматическом режиме
Защитный интервал (DELAY TIME) 0 - 7397 nS c шагом 62,5 nS в стандартном режиме
Уменьшение мощности на выходе при обратной связи производится путем увеличения защитного интервала. На частотах 60 кГц и выше обеспечивается 100% шим регулирование, на более низких ШИМ заполнение не уменьшается до нуля.

Типовая осциллограмма

Регулируемые параметры
Частота
Время защитного интервала
Режим

Иллюстрации отображения на индикаторе

Выбор режима, частоты, времени

Стандартный, автоматический. Добавляется буква А.

В автоматическом режиме - защитный интервал всегда не менее установленного в стандартном режиме.
В стандартном режиме - выключение при появлении сигнала на входе Сх
Основное применение - полумостовые преобразователи низкого и высокого напряжения, ШИМ регулирование, сетевые источники питания, повышающие преобразователи.

Модуль PWM HF FL, HF - высокая частота, FL - flyback – обратноходовый

Диапазон частот 5 кГц - 320 кГц с переменным шагом
Режим работы - стандартный и авто.
Заполнение 0-100%
Регулируемый защитный интервал (DELAY TIME) 0 - 7397 nS c шагом 62,5 nS

Типовая осциллограмма

Сигнал генерируется на выходе PWM. Дополнительно генерируется сигнал на PWM1. Высокий уровень во время выключенного PWM, с защитным интервалом, например для управления синхронным выпрямителем. Регулируемые параметры
Частота
Заполнение
Время защитного интервала
Режим

Иллюстрации отображения на индикаторе

Стандартный режим, автоматический режим

Установка частоты, заполнения

В автоматическом режиме - заполнение всегда не более установленного в стандартном режиме.
В стандартном режиме - выключение при появлении сигнала на входе Сх
Основное применение - обратноходовые преобразователи, источники питания, ШИМ управление.

В разделе HELP информация, если вдруг забыли, что куда подключать. Картинок не будет, Почитаете.

DDS генератор сигналов "OSKAR-DDS"
Калибровка, настройка.

Правильно собранный генератор из исправных деталей необходимой точности не нуждается в настройке.
Что следует проверить
Линейность работы ЦАП на матрице R-2R.
Для этого запустить генератор пилообразного напряжения и проверить линейность наклонного участка. Если видна большая нелинейность то следует применить резисторы R30-R45 более высокого класса точности или подобрать. Для 8-битного ЦАП требуемая точность 0,5%. Но реально подобрать из вдвое большего количества обычных, 5%.
Также проверить точность измерения резисторов и конденсаторов. Если не в допуске - подобрать R28. Или применять 1%. Он одновременно влияет и на измерение резисторов, и на измерение конденсаторов. Других настраиваемых элементов нет. Точность остальных резисторов и конденсаторов,кроме блокировочных по питанию и переходных достаточна 5%.
Еще замечание, как оказалось 74HC4066 не все одинаково хороши, с микросхемами некоторых фирм наблюдается завал на ВЧ участке. Я стараюсь применять ST.
Теперь осталось только одно, установить в корпус,по желанию. У меня прижилось в половинке корпуса Z-19 с литиевым аккумулятором и пружинными клеммами.

DDS генератор сигналов "OSKAR-DDS"
Прошивка.

Для тех, кто осилил прочтение до конца -

Всем доброго времени суток!
Сегодня хочу представить вниманию читателей обзор генератора сигналов произвольной формы JDS6600.
Данная модель генератора способна выводить информацию на цветной TTF дисплей 2,4 inch, выдавать сигнал на два независимых канала частотой до 15 МГц синусоидальной, прямоугольной, треугольной формы и частотой до 6МГц сигналов CMOS/TTL логики, импульсов и сигналов произвольной формы с размахом от 0 до 20 Вольт, имеет вход для измерения частоты, периода, длительности, скважности. Прибор позволяет изменять фазу сигнала от 0 до 359,9 градусов с шагом в 0,1 градуса, смещать сигнал от -9,99 до + 9,99 Вольт (в зависимости от амплитуды сигнала). В памяти генератора прописаны 17 стандартных сигналов, а так же имеется возможность редактировать (создавать/рисовать) необходимую форму сигнала и записывать в 60 ячеек памяти.
Генератор много чего может и, как радиогубитель средней руки, вряд ли всем буду пользоваться.
В линейке генераторов JDS6600 пять модификаций прибора с диапазонами частот – 15 МГц, 30 МГц, 40 МГц, 50 МГц и 60 МГц. В обзоре младшая модель – 15 МГц.
За подробностями приглашаю под кат (много фото).
Начну, пожалуй, не с красивых картинок, а с фотографии, которая дает представление о настольном или полочном рабочем позиционировании генератора с указанием габаритных размеров и таблицы с характеристиками всей линейки генераторов серии JDS6600. Таблица взята из мануала.




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


Комплект состоит из генератора, блока питания 5 Вольт 2 Ампера с заграничной вилкой, весьма приличного сетевого переходника, диска с ПО, кабеля для подключения к ПК и двух шнуров BNS-крокодилы. Генератор был замотан в пупырку, а все остальные составляющие упакованы в индивидуальные пакеты.

Подключение по USB в качестве источника питания тут не предполагается и потому БП с обычным штекером 2,1*5,5*10 мм. Но позже мы попробуем запитать генератор от другого БП, чтобы выяснить ток потребления на случай питания от Powerank.


Кабель USB тип A - USB тип B для подключения генератора к ПК длиной 1,55 метра.

Шнуры BNS-крокодилы длиной 1,1 метра, с гибкими проводами, припаянными к крокодилам.

Ну, и собственно, виновник обзора в разных ракурсах.
На передней панели расположились кнопка вкл/выкл, экран, ряд серых кнопок справа от него для управления параметрами сигнала, выбора режимов измерений и модуляции, кнопка WAVE выбора вида генерируемого сигнала, MOD активации режима модуляции, SYS системных установок, MEAS выбора режима измерений, стрелки выбора разряда значения частоты и т.д., кнопка ОК для подтверждения кучи всего и включения/отключения двух каналов, СН1/2 кнопки включения/выключения каждого канала, энкодер, измерительный вход и выходы двух каналов.
На тыльной стороне TTL коннектор, разъемы USB и питания, наклейка с наименованием модели и модификации 15М (15МГц), вентиляционные отверстия.


На боковых гранях кроме вентиляционных щелей ничего интересного. Верхняя крышка глухая.

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


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

Как и предполагал, места внутри предостаточно. Блок питания легко бы мог поместиться внутри корпуса, но видимо на его внешний вариант есть свои причины.
Платы соединены шлейфом, разъемы которого плотно сидят в гнездах.
Плата генератора чистая, будто и не пачкали флюсом.

При первом приближении на плате видим, что компонентов довольно много. Из выдающихся – чип мозговой деятельности фирмы Lattice, релюшки Omron, небольшой радиатор, логотип, наименование производителя и модели с ревизией – JDS6600Rev.11. Номер ревизии дает основание полагать, что производитель основательно занимается моделью, постоянно ее совершенствуя.

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

Остальное уберу под спойлер.











Чуть подробнее остановлюсь на компонентах скрытых под радиатором. Это пара высокоскоростных усилителей .

Радиатором их накрыли без термопасты, может и не критично, но при сборке ее добавил.
Плата управления вмещает куда меньше элементов. Следы флюса только в местах ручной пайки кнопки вкл/выкл, энкодера, шлейфа дисплея и разъема.


Кнопки тут вполне себе механические и должны служить долго.


Переходим к сути устройства.
Включение генератора сопровождается сообщением на экране о выборе языка – китайского или английского, процессе загрузки, модели, номере партии. Загрузка длится буквально 1-2 секунды.

Сразу после загрузки на экране появляется информация о предустановленных сигналах подаваемых на оба выхода генератора. Об активности выходов генератора свидетельствует надпись ON на экране и свечение зеленых светодиодов над разъемами выходов. Выключить оба выхода сразу можно нажатием кнопки ОК или по отдельности каждый канал кнопками СН1/2.
Информация о параметрах сигналов на каналах идентична для первого (верхнего) и второго (нижнего) каналов за исключением изображения формы сигнала.

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

Суть отображаемой информации и кнопок справа от экрана.

Назначение функциональных кнопок

После включения на двух выходах по умолчанию присутствует синусоидальный сигнал частотой 10 кГц, размахом 5 Вольт, заполнением 50%, смещением 0 Вольт и фазовым сдвигом между каналами 0 градусов. Серыми кнопками справа эти параметры меняются и рассказывать тут особо нечего. Выбрали нужный параметр, далее кнопками со стрелками выбрали разряд изменяемого параметра и энкодером меняем значение.
Наибольший интерес вызывают кнопки WAVE выбора вида генерируемого сигнала, MOD активации режима модуляции, SYS системных установок, MEAS выбора режима измерений.
При нажатии на кнопку WAVE на экране появляется следующее изображение и становится доступен выбор формы сигнала.

К серым кнопкам привязаны 4 основных сигнала (синусоида, меандр, импульс, треугольник) и произвольная форма, прописанная в первой ячейке памяти, зарезервированной для этого.
Гораздо большее количество сигналов можно выбрать, вращая ручку энкодера. Этот способ дает возможность выбрать:
17 предустановленных сигналов – Sine, Sguare, Pulse, Triangle, PartialSine, CMOS, DC, Half-Wave, Full-Wave, Pos-Ladder, Neg-Ladder, Noise, Exp-Rise, Exp-Decay, Multi-Tone, Sinc, Lorenz
и 15 произвольных сигналов Arbitrary. С завода эти 15 ячеек пустые, в них ничего не записано – на выходе 0 Вольт, 0 Герц. Их заполнение рассмотрим после установки ПО.
В мануале идет речь о амплитуде сигнала и ее регулировке от 0 до 20 Вольт. На самом деле о регулировке амплитуды можно говорить только для отдельных сигналов, в основном речь идет о размахе.

Синусоида размахом 5В (на генераторе ampl 5V, осциллограф показывает значение размаха, хоть и пишет про амплитуду).

Меандр 5В (на генераторе ampl 5V, осциллограф показывает значение размаха, но пишет про амплитуду).

Разницы между Sguare и Pulse на осциллограмме не заметил. Как был меандр, так и остается при переключении, поэтому скрин не выкладываю.
Исправлено благодаря qu1ck
До тех пор не видно разницы пока не начнешь менять коэффициент заполнения DUTY. DUTY меняется только в Pulse, в режиме меандр Sguare коэффициент заполнения меняется только на экране генератора - на осциллограмме это никак не отражается.

Треугольный сигнал (на генераторе ampl 5V, осциллограф показывает значение размаха, но пишет про амплитуду).

Следующий сигнал Partial Sine – частичный синус, но разницы с Sineна осциллограмме так же не заметил и скрин не выкладываю.
Исправлено благодаря qu1ck
Здесь ситуация, как и с сигналом Pulse, изменяем коэффициент заполнения и получаем изменения синусоиды. DUTY меняется только в Partial Sine, в режиме Sine коэффициент заполнения меняется только на экране генератора - на осциллограмме это никак не отражается.

Следующий сигнал CMOS.Здесь размах/амплитуда регулируется от 0,5 до 10 Вольт, несмотря на то что ручкой энкодера на экране выставляется до 20 Вольт.

Следующим идет сигнал DC, но на осциллограмме тишина.

Далее сигнал Half-Wave вот тут как раз мы видим амплитуду. Для сравнения на втором канале установил синусоиду. Хоть на генераторе указана амплитуда 5 вольт и осциллограф пишет ampl, но мы видим, что как раз измеряется размах синусоиды и амплитуда Half-Wave.

На Full-Wave так же видим измерение амплитуды и, при установленной частоте на генераторе 10 кГц, 20 кГц по осциллограмме.

Сигналы Pos-Ladder и Neg-Ladder задал на первом и втором каналах, соответственно. Снова видим размах.

Шумы на обоих каналах шумят независимо друг от друга с разными параметрами.

Снова для наглядности и экономии времени читателей сигналы Exp-Rise и Exp-Decay на разных каналах.

По той же схеме Multi-Tone и Sinc.

Сигналы Lorenz.

Что можно сказать исходя из вышеприведенных скринов предустановленных сигналов?
1. Есть треугольник, но нет пилы;
2. Измеряемая амплитуда/размах на разных сигналах даже на двух каналах одновременно отличается от установленных на генераторе 5 Вольт.
3. Не заметил разницы между Sguare и Pulse, Partial Sine и Sine

Следующая полезная функция прибора – функция измерения/счетчика. Прибор позволяет измерять сигнал частотой до 100 МГц. Активируется функция кнопкой Meas. Переключение между измерениями и счетчиком можно сделать тремя способами – кнопкой Funk, кнопками со стрелками и энкодером.

Кнопкой Coup выбираем открытый или закрытый вход, кнопкой Mode – частоту или периоды подсчета.
Обозреваемый JDS6600 позволяет измерять то, что он же и генерирует. Задаем параметры сигнала на выходе генератора и подключаем к измерительному входу.

Следующая функция модуляции. Активируется кнопкой MOD. Здесь доступны три режима: генератор качающейся частоты - Sweep Frequency, генератор импульсов – Pulse Generator и генератор пачки импульсов – Burst. Режимы выбираются кнопкой Func.
Свипирование возможно на двух каналах, но не одновременно - либо первый, либо второй.

Стрелками или энкодером выбираем канал, устанавливаем начальную и конечную частоту сигнала (форму сигнала выбираем заранее в режиме Wave), линейную или логарифмическую зависимость и включаем ON.
Логарифмическая.

Линейная

Режим Pulse Generator (только первый канал).


Режим генерации пачек импульсов Burst (первый канал).

Здесь можно задать количество импульсов в пачке от 1 до 1 048 575 и выбрать режимы
Две пачки импульсов

Сто пачек импульсов

471 пачка.

Обратите внимание на изменение Vmin, Vmax с ростом количества пачек. При малом их количестве импульсы имеют отрицательную полярность, дальше картина иная. Кто может объяснить, прошу прояснить в комментариях.
Исправлено благодаря qu1ck , который указал на ошибку в выборе режима AC coupling на осциллографе. При изменении на DC все встало на свои места, за что прошу отметиться в карме qu1ck.

В режиме Burst четыре вида синхронизации (Как я понял. Если ошибаюсь поправьте) – от второго канала генератора – CH2 Trig, внешняя синхронизация – Ext.Trig (AC) и Ext.Trig (DC) и Manual Trig – ручная.
Следующая функциональная кнопка – это кнопка SYS, открывающая доступ к установкам генератора. Возможно следовало описать эту часть в начале, но двигался по наибольшей востребованности функций.

Кроме включения/отключения звуковых сигналов при нажатии кнопок, регулировки яркости экрана, выбора языка (китайский, английский) и сброса до заводских настроек, здесь можно поменять количество отображаемых/вызываемых ячеек произвольных сигналов (с завода 15, можно установить все 60), загрузить/записать 100 ячеек памяти и синхронизировать каналы по форме сигнала, частоте, амплитуде (размаху), заполнению, смещению.

Суть 60 ячеек и 100 ячеек станет понятна чуть позже, после подключения к ПК.
Для подключения генератора к компьютеру необходимо с диска из комплекта установить ПО.
Распаковав архив, сначала нужно установить драйвер CH340Q из папки h340 drive (архив Ch340.rar), далее установить программый драйвер VISA из папки VISA (установщик setup.exe), а уже потом установщик управляющей программы из папки English\JDS6600 application\Setup.exe
При подключенном к компьютеру генераторе и запуске программы необходимо выбрать виртуальный СОМ, куда подключен прибор и кликнуть кнопку Connect. Если порт выбран правильно, то увидим такую картинку.

Оболочка интерфейса представлена четырьмя вкладками – первая Configuration для соединения c ПК.
Вторая вкладка – Control Panel – панель управления генератором. Здесь все тоже самое, что и при управлении с лицевой панели прибора, но гораздо удобнее.

Все опции собраны на одном экране и привычные манипуляции мышью очень облегчают манипуляции с генератором. Кроме того, на этой вкладке одновременно с операциями над сигналами доступна синхронизация каналом, что с лицевой панели генератора нужно было делать через системные настройки генератора.
Далее вкладка Extend Function – аналог действиям кнопок MEAS и MOD на лицевой панели прибора, только на одном экране. Но есть и разница – не нашлось места в виртуальной среде для функции Pulse Generator в режиме Modulation Mode (MOD). С лицевой панели в режиме MOD доступны три функции – качения частоты, генератор импульсов и генератор пачек импульсов. С компьютера доступны только Sweep Frequency и Burst.

И последняя вкладка Arbitrary позволяет создавать свои формы сигналов и записывать их в изначально пустые ячейки памяти генератора (60 штук).

Можно начать с чистого листа, как на скрине выше, а можно взять за основу предустановленный сигнал (17 штук) и изголяться над ним, а потом записать в одну из 60 ячеек произвольных сигналов.

Для наглядности записал в ячейку памяти Arbitrary 01 такой сигнал.

И на осциллограмме видим следующее:

Здесь можно поменять амплитуду, смещение, фазу, но почему-то нельзя изменить коэффициент заполнения.
Вот теперь хочу вернуться к 60 и 100 ячейкам. Методом научного тыка и сравнений результатов вычислил, что кнопкой SYS на панели генератора можно открыть и сделать доступными до 60 ячеек произвольных сигналов (с завода 15), которые можно создать с помощью ПО и записать их в эти 60 ячеек.
Таким образом, становится доступны с панели генератора и вкладки Control Panel 17 стандартных и 60 произвольных сигналов.
Но, если и этот набор не достаточен, если какие-то сигналы Вами востребованы, а каких-то нет вообще (как, например, отсутствие прямой и обратной пил) и их нельзя создать с помощью ПО (например, из-за невозможности манипуляций с коэффициентом заполнения из программной оболочки), то новый сигнал можно создать с панели генератора, изменив любой параметр. Далее нужно в меню SYS выбрать номер ячейки от 00 до 99 (те самые 100) и кнопкой SAVE записать сигнал в эту ячейку. Теперь, когда он Вам понадобится, заходим в SYS, выбираем номер ячейки с этим сигналом и кнопкой LOAD загружаем его из памяти.
Т.е. по факту можно использовать 177 сигналов!!! 17 предустановленных + 60 произвольных + 100 загружаемых из памяти, когда это требуется.

В завершающей части обзора посмотрим, до каких частот генератор сохраняет приличные формы сигнала.
Синусоида 100 кГц 5В и 1 МГц 5В.

Синусоида 6 МГц 5В и 10 МГц 5В

Как видим, имеет место снижение размаха сигнала и оно не зависит от величины нагрузки. Без нагрузки вовсе, 1 кОм, 10 кОм, 47 кОм – снижение размаха есть всегда, но всегда в районе 0,5 Вольта.
В районе 13 МГц размах снижается на 0,7 вольт, но далее, при установленных 5 Вольтах размаха, падение не увеличивается.

Синусоида 15 МГц 10 Вольт – тут снижение размаха уже больше. Но это уже 15 МГц.

Дальше была выявлена особенность генератора JDS6600-15M – заявленная амплитуда в 20 Вольт, касается только сигналов (любой формы) частотой до 10 МГц. Ожидаемо амплитуда/размах ниже установленных значений. Щуп 1/10.

В диапазоне 10-15 МГц максимально возможная амплитуда/размах составляет 10 Вольт. Энкодером или в программе устанавливаем 20 Вольт (на экране генератора видим установленные 20 Вольт), потом частоту выше 10 МГц и показания амплитуды на экране прибора переключаются на 10 Вольт. Соответственно на выходе 10 Вольт. Такая особенность.

С формой синусоиды будто бы все в порядке, посмотрим меандр.
10 кГц 5В и 100 кГц 5В.

1МГц 5В и 6 Мгц 5 В.

6МГц 10В и 6 МГц 20В.
Здесь уже видно, что на высоких частотах меандр стремится к синусоиде, что присуще многим генераторам.

Треугольник 100 кГц 5В и 1 МГц 5В.

С повышением частоты и амплитуды форма сигнала начинает изменяться.
5 МГц 5В и 5 МГц 12В.

Формы сигналов на больших частотах далеки от идеальных, но к этому был готов. Опытным людям цена прибора многое скажет, для не искушенных пользователей материал изложил – надеюсь, он будет полезен. В описании генератора присутствует маркетинг и я, наверняка изложил, не все, что можно выжать из прибора, но основное показал. Возможно, старшие модели в линейке 6600 грешат меньше, но и стоят они дороже. Предоставленный экземпляр можно охарактеризовать как, генератор начального, бюджетного уровня для своего круга задач – ознакомление, обучение, радиолюбительство, быть может, какое-то не особо сложное и требовательное производство.
Из минусов отмечу снижение амплитуды/размаха сигнала с ростом частоты, отсутствие пил (но можно самому сгенерировать, изменив коэффициент заполнения и записав в ячейку).
Разработчику хотелось бы пожелать не увлекаться маркетингом, допилить чуть ПО.
Из плюсов все таки широкий фукнционал, возможность редактировать сигналы, записывать их в ячейки памяти, интуитивно понятное управление, два независимых канала.
В завершении замена штатного блока питания и измерение тока потребления.

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

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Планирую купить +14 Добавить в избранное Обзор понравился +42 +55

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

Данный генератор базируется на алгоритме DDS-генератора Jesper , программа была модернизирована под AVR-GCC C с вставками кода на ассемблере. Генератор имеет два выходных сигнала: первый - DDS сигналы, второй - высокоскоростной (1..8МГц) "прямоугольный" выход, который может использоваться для оживления МК с неправильными фузами и для других целей.
Высокоскоростной сигнал HS (High Speed) берется напрямую с микроконтроллера Atmega16 OC1A (PD5).
DDS-сигналы формируются с других выходов МК через резистивную R2R-матрицу и через микросхему LM358N, которая позволяет осуществить регулировку амплитуды (Amplitude) сигнала и смещение (Offset). Смещение и амплитуда регулируются при помощи двух потенциометров. Смещение может регулироваться в диапазоне +5В..-5В, а амплитуда 0...10В. Частота DDS-сигналов может регулироваться в пределах 0... 65534 Гц, это более чем достаточно для тестирования аудио-схем и других радиолюбительских задач.

Основные характеристики DDS-генератора V2.0:
- простая схема с распространенными и недорогими радиоэлементами;
- односторонняя печатная плата;
- встроенный блок питания;
- отдельный высокоскоростной выход (HS) до 8МГц;
- DDS-сигналы с изменяемой амплитудой и смещением;
- DDS-сигналы: синус, прямоугольник, пила и реверсивная пила, треугольник, ЭКГ-сигнал и сигнал шума;
- 2×16 LCD экран;
- интуитивная 5-ти кнопочная клавиатура;
- шаги для регулировки частоты: 1, 10, 100, 1000, 10000 Гц;
- запоминание последнего состояния после включения питания.

На представленной ниже блок-схеме, приведена логическая структура функционального генератора:

Как вы можете видеть, устройство требует наличие нескольких питающих напряжений: +5В, -12В, +12В. Напряжения +12В и -12В используются для регулирования амплитуды сигнала и смещения. Блок питания сконструирован с использованием трансформатора и нескольких микросхем стабилизаторов напряжения:

Блок питания собран на отдельной плате:

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

LCD-экран

Все действия отображаются через LCD-экранчик. Управление генератором осуществляется пятью клавишами

Клавиши вверх/вниз используются для перемещения по меню, клавиши влево/вправо для изменения значения частоты. Когда центральная клавиша нажата - начинается генерирование выбранного сигнала. Повторное нажатие клавиши останавливает генератор.

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

Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand() непрерывно подающиеся на выход DDS-генератора.

Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц.

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

Схема функционального генератора простая и содержит легкодоступные элементы:
- микроконтроллер AVR Atmega16, с внешним кварцем на 16 МГц;
- стандартный HD44780-типа LCD-экранчик 2×16;
- R2R-матрица ЦАП из обычных резисторов;
- операционный усилитель LM358N (отечественный аналог КР1040УД1);
- два потенциометра;
- пять клавиш;
- несколько разъемов.

Плата:

Функциональный генератор собран в пластиковом боксе:


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

Как я уже говорил выше, в основе своей программы я использовал алгоритм DDS-генератора Jesper . Я добавил несколько строчек кода на ассемблере для реализации останова генерирования. Теперь алгоритм содержит 10 ЦПУ циклов, вместо 9.

void static inline Signal_OUT(const uint8_t *signal, uint8_t ad2, uint8_t ad1, uint8_t ad0){
asm volatile("eor r18, r18 ;r18<-0″ "\n\t"
"eor r19, r19 ;r19<-0″ "\n\t"
"1:" "\n\t"
"add r18, %0 ;1 cycle" "\n\t"
"adc r19, %1 ;1 cycle" "\n\t"
"adc %A3, %2 ;1 cycle" "\n\t"
"lpm ;3 cycles" "\n\t"
"out %4, __tmp_reg__ ;1 cycle" "\n\t"
"sbis %5, 2 ;1 cycle if no skip" "\n\t"
"rjmp 1b ;2 cycles. Total 10 cycles" "\n\t"
:
:"r" (ad0),"r" (ad1),"r" (ad2),"e" (signal),"I" (_SFR_IO_ADDR(PORTA)), "I" (_SFR_IO_ADDR(SPCR))
:"r18″, "r19″
);}

Таблица форм DDS-сигналов размещена во флэш памяти МК, адрес которой начинается с 0xXX00. Эти секции определены в makefile, в соответствующих местах в памяти:
#Define sections where to store signal tables
LDFLAGS += -Wl,-section-start=.MySection1=0x3A00
LDFLAGS += -Wl,-section-start=.MySection2=0x3B00
LDFLAGS += -Wl,-section-start=.MySection3=0x3C00
LDFLAGS += -Wl,-section-start=.MySection4=0x3D00
LDFLAGS += -Wl,-section-start=.MySection5=0x3E00
LDFLAGS += -Wl,-section-start=.MySection6=0x3F00

Максимальная частота - 65534 Гц (и до 8 МГц HS выход с меандром). И тут я подумал, что генератор - отличная задача, где ПЛИС сможет показать себя в лучшем виде. В качестве спортивного интереса я решил повторить проект на ПЛИС, при этом по срокам уложиться в два выходных дня, а параметры получить не строго определенные, а максимально возможные. Что из этого получилось, можно узнать под катом

День нулевой

До того, как наступят выходные, у меня было немного времени подумать над реализацией. Чтобы упростить себе задачу, решил сделать генератор не в виде отдельного устройства с кнопками и LCD экраном, а в виде устройства, которое подключается к ПК через USB. Для этого у меня есть плата USB2RS232 . Плата драйверов не требует (CDC), поэтому, я думаю, что и под Linux будет работать (для кого-то это важно). Так же, не буду скрывать, что с приемом сообщений по RS232 я уже работал. Модули для работы с RS232 буду брать готовые c opencores.com .

Для генерации синусоидального сигнала потребуется ЦАП. Тип ЦАП я выбрал, как и в исходном проекте - R2R на 8 бит. Он позволит работать на высоких частотах, порядка мегагерц. Убежден, что ПЛИС с этим должна справиться

По поводу того, на чем написать программу для передачи данных через COM порт я задумался. С одной стороны, можно написать на Delphi7, опыт написания такой программы уже есть, к тому же размер исполняемого файла будет не большим. Еще попробовал набросать что-то для работы с Serial в виде java скрипта в html страничке, но более менее заработало только через Chrome serial API, но для этого надо устанавливать плагин… в общем тоже отпадает. В качестве новшества для себя попробовал PyQt5, но при распространении такого проекта, нужно тащить кучу библиотек. Попробовав собрать PyQt проект в exe файл, получилось больше 10 мб. То есть, будет ничем не лучше приложения, написанного на c++\Qt5. Стоит еще учесть, что опыта разработки на python у меня нет, а вот на Qt5 - есть. Поэтому выбор пал на Qt5. С пятой версии там появился модуль для работы с serial и я с ним уже работал. А еще приложение на Qt5 может быть перенесено на Linux и Mac (для кого-то это важно), а с 5.2 версии, приложения на QWidgets может быть перенесено даже на смартфон!

Что еще нужно? Естественно плата с ПЛИС. У меня их две (Cyclone iv EP4CE10E22C8N на 10 тыс. ячеек, и Cyclone ii EP2C5 на 5 тыс. ячеек). Я выберу ту, что слева, исключительно по причине более удобного разъема. В плане объема проект не предполагает быть большим, поэтому уместится в любую из двух. По скорости работы они не отличаются. Обе платы имеют «на борту» генераторы 50 МГц, а внутри ПЛИС есть PLL , с помощью которого я смогу увеличить частоту до запланированных 200 МГц.

День первый

В связи с тем, что модуль DDS я уже делал в своем синтезаторном проекте, то я сразу взялся за паяльник и начал паять ЦАП на резисторах. Плату взял макетную. Монтаж делал с применением накрутки . Единственное изменение, которое коснулось технологии - я отказался от кислоты Ф38Н для лужения стоек в пользу индикаторного флюс-геля ТТ . Суть технологии проста: в печатную плату впаиваю стойки, на них со стороны печатного монтажа припаиваю резисторы. Недостающие соединения выполняю накруткой. Еще, стойки удобны тем, что я их могу вставить прямо в плату ПЛИС.

К сожалению, дома в наличии не оказалось резисторов 1 и 2 килоома. Ехать в магазин было некогда. Пришлось поступиться одним из своих правил, и выпаять резисторы из старой не нужной платы. Там применялись резисторы 15К и 30К. Получился вот такой франкенштейн:


После создания проекта нужно задать целевое устройство: Меню Assigments -> Device


В проекте я «нахадркодил» неуправляемый главный модуль DDS на фиксированную частоту.

Модуль генератора на 1000 Гц

module signal_generator(clk50M, signal_out); input wire clk50M; output wire signal_out; wire clk200M; osc osc_200M reg accumulator; assign signal_out = accumulator; //пробуем генерировать 1000 Гц //50 000 000 Hz - тактовая частота внешнего генератора //2^32 = 4 294 967 296 - разрядность DDS - 32 бита //делим 1000Hz / 50 000 000 Hz / 2 * 4294967296 => 42949,67296 always @(posedge clk50M) begin accumulator <= accumulator + 32"d42949; end endmodule


После этого нажал «Start Compilation», чтобы среда разработки задалась вопросом, какие у нас линии ввода вывода есть в главном модуле проекта и к каким физическим PIN"s они подключены. Подключить можно практически к любому. После компиляции назначаем появившиеся линии к реальным PIN микросхемы ПЛИС:

Пункт меню Assigments -> Pin Planner

На линии HS_OUT, key0 и key1 прошу пока не обращать внимание, они появляются в проекте потом, но скрин в самом начале я сделать не успел.

В принципе, достаточно «прописать» только PIN_nn в столбце Location, а остальные параметры (I/O standart, Current Strench и Slew Rate) можно оставить по умолчанию, либо выбрать такие же, что предлагаются по умолчанию (default), чтобы не было warning"ов.

Как узнать какому PIN соответствует номер разъема на плате?

Номера контактов разъема подписаны на плате


А пины ПЛИС, к которым подключены контакты разъема, описаны в документации, которая идет в комплекте с платой ПЛИС.




После того, как пины назначены, компилирую проект еще раз и прошиваю с помощью USB программатора. Если у вас не установлены драйверы для программатора USB Byte blaster, то укажите Windows, что они находятся в папке, куда у вас установлен Quartus. Дальше она сама найдет.

Подключать программатор нужно к разъему JTAG. А пункт меню для программирования «Tools -> Programmer» (либо нажать значек на панели инструментов). Кнопка «Start», радостное «Success» и прошивка уже внутри ПЛИС и уже работает. Только не выключайте ПЛИС, а то она все забудет.

Tools -> Programmer


ЦАП подключен к разъему платы ПЛИС. К выходу ЦАП подключаю осциллограф С1-112А. В результате должна получиться «пила» потому что на выход 8 бит выводится старшая часть слова DDS аккумулятора фазы. А оно всегда увеличивается, пока не переполнится.

Каких-то 1.5 часа и для частоты в 1000 Гц я вижу следующую осциллограмму:

Хочу заметить, что «пила» по середине имеет небольшой перелом. Он связан с тем, что резисторы имеют разброс значений.

Еще один важный момент, который нужно было выяснить - это максимально возможная частота, с которой будет работать DDS генератор. При правильно настроенных параметрах TimeQuest, после компиляции в «Compilation Report» можно увидеть, что скорость работы схемы выше 200 МГц с запасом. А это значит, что частоту генератора 50 МГц я буду умножать с помощью PLL на 4. Увеличивать значение аккумулятора фазы DDS буду с частотой 200 МГц. Итоговый диапазон частот, который можно получить в наших условиях 0 - 100 МГц. Точность установки частоты:

200 000 000 Гц (clk) / 2^32 (DDS) = 0,047 Гц
То есть, это лучше, чем ~0.05 Гц. Точность в доли герца для генератора с таким диапазоном рабочих частот (0...100 МГц) считаю достаточной. Если кому-то потребуется повысить точность, то для этого можно увеличить разрядность DDS (при этом не забыть проверить TimeQuest Timing Analyzer, что скорость работы логической схемы укладывалась в CLK=200 МГц, ведь это сумматор), либо просто снизить тактовую частоту, если такой широкий диапазон частот не требуется.

TimeQuest Timing Analyzer


После того, как я увидел на экране «пилу», семейные дела заставили меня ехать на дачу (выходной же). Там я косил, варил, жарил шашлык и не подозревал о том сюрпризе, что ждал меня вечером. Уже ближе к ночи, перед сном, я решил посмотреть форму сигнала для других частот.

Для частоты 100 КГц

Для частоты 250 КГц

Для частоты 500 КГц

Для частоты 1 МГц

День второй

В связи с тем, что было интересно, как будет работать ЦАП на резисторах 100 и 200 Ом, я сразу взялся за паяльник. На этот раз ЦАП получился более аккуратным, а времени на его монтаж ушло меньше.

Ставим ЦАП на плату ПЛИС и подключаем к осциллографу

Проверяем 1 МГц - ВО! Совсем другое дело!

Пила 10 МГц

Пила 25 МГц


Форма пилы на 10 МГц еще похожа на правильную. Но на 25 МГц она уже совсем «не красивая». Однако, у С1-112а полоса пропускания - 10 МГц, так что в данном случае причина может быть уже в осциллографе.

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

Assign hs_out = accumulator;

Меандр 1 МГц

Меандр 5 МГц

Меандр 25 МГц

Меандр 50 МГц уже практически не виден


Но считаю, что выход ПЛИС стоило бы нагрузить на сопротивление. Возможно, фронты были бы круче.

Синус делается по таблице. Размер таблицы 256 значений по 8 бит. Можно было бы взять и больше, но у меня уже был готовый mif файл. С помощью мастера создаем элемент ROM с данными таблицы синуса из mif-файла.

Создание ROM - Tools -> Mega Wizard Plugin manager


Выбираем 1 портовую ROM и задаем название модулю

Соглашаемся

Тут тоже соглашаемся

С помощью browse находим наш mif файл с таблицей синуса

Тут тоже ничего не меняем

Снимаем галочку с модуля sine_rom_bb.v - он не нужен. Дальше finish. Квартус спросит добавить модуль в проект - соглашаемся. После этого, модуль можно использовать так же, как любой другой модуль в Verilog.


Старшие 8 бит слова аккумулятора DDS будут использоваться в качестве адреса ROM, а выход данных - значение синуса.

Код

//sine rom wire sine_out; sine_rom sine1(.clock(clk200M), .address(accumulator), .q(sine_out));


Осциллограмма синуса на разных частотах выглядит… одинаково.

При желании, можно рассмотреть проблемы ЦАП, связанные с разбросом резисторов:

Чтож, на этом выходные кончились. А ведь еще не написано ПО для управления с ПК. Вынужден констатировать факт, что в запланированные сроки я не уложился.

День третий

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

Интерфейс

Ссылки с аналогами

Далеко не полный список
Функциональный DDS генератор. Создан базе AVR. Частоты 0… 65534 Гц.
Обзор DDS-генератора GK101. Создан с применением ПЛИС Altera MAX240. Частоты до 10 МГц.
Многофункциональный генератор на PIC16F870. Частотный диапазон: 11 Гц - 60 кГц.
генераторы Добавить метки
Похожие статьи

© 2024 dvezhizni.ru. Медицинский портал.