Сегодня устройства прямого цифрового синтеза аналоговых сигналов - синтезаторы DDS-все шире применяются в радиоэлектронных системах, причем как для работы в высокочастотном диапазоне (до сотен мегагерц), так и на низких частотах, вплоть до единиц герц. Благодаря развитию электроники и технологии микросхемы-синтезаторы DDS становятся весьма недорогими компонентами, в то же время обеспечивающими высочайшее качество генерируемых сигналов. Фирма Analog Devices является одним из лидеров в данной области и выпускает широкую номенклатуру синтезаторов DDS. Предлагаем вашему вниманию перевод статьи о синтезаторах DDS из журнала Analog Dialogue. Журнал Analog Dialogue посвящен продукции фирмы Analog Devices, в нем публикуются материалы как прикладного, так и теоретического характера. Данный журнал бесплатно доступен на сайте www.analog.com, в настоящее время он выпускается только в электронном виде.
Прямой цифровой синтез (DDS) - метод, позволяющий получить аналоговый сигнал (обычно это синусоидальный сигнал) за счет генерации временной последовательности цифровых отсчетов и их дальнейшего преобразования в аналоговую форму посредством ЦАП. Так как сигнал сначала синтезируется в цифровой форме, такое устройство может обеспечить быстрое переключение частоты, высокое разрешение по сетке частот, работу в широком диапазоне частот. Благодаря развитию микросхемотехники и технологии на сегодняшний день синтезато- ры DDS представляют собой очень компактные микросхемы с низким энергопотреблением.
В различных электронных устройствах часто требуется синтезировать сигналы различной частоты и формы, и с высокой точностью управлять параметрами этих сигналов. Необходим ли источник высококачественного сигнала с низким уровнем фазового шума и с быстрой перестройкой частоты (для телекоммуникационных систем) или же требуется просто синтезировать сигнал определенной частоты для промышленного тестового оборудования или для медицинских систем - в любом случае важными для разработчика параметрами являются удобство применения, компактность и низкая стоимость.
Существует много способов синтеза сигналов - от генераторов на основе петли ФАПЧ (такой подход доминирует при синтезе сигналов высокой частоты) до динамического цифрового управления цифро-аналоговым преобразователем (при синтезе низкочастотных сигналов). Но технология DDS быстро завоевывает популярность в качестве средства синтеза сигналов как в телекоммуникационных, так и в низкочастотных промышленных системах благодаря тому, что стало возможным реализовать на одной микросхеме программируемый генератор с высоким разрешением по частоте и с высоким качеством сигнала.
Кроме того, непрерывное совершенствование технологии и схемотехники привело к тому, что стоимость микросхем и их энергопотребление снизились до величин, немыслимых в прошлом.
Например, программируемый генератор DDS AD9833 (рис. 1), при работе от источника питания 5,5 В и при частоте кварцевого резонатора 25 МГц, потребляет не более 20 мВт.
Рис. 1. Однокристальный DDS синтезатор AD9833
Синтезаторы DDS, подобные вышеупомянутой ИС AD9833, управляются посредством быстродействующего последовательного порта SPI, при этом для генерации синусоидального сигнала требуется только тактовый сигнал. Доступные в настоящее время синтезаторы DDS способны генерировать сигнал на частотах от 1 Гц до 400 МГц (при тактовой частоте 1 ГГц). Преимущества, предоставляемые малым энергопотреблением, низкой стоимостью и малыми размерами корпусов, в сочетании с отличным качеством сигнала и возможностью цифрового управления, делают синтезаторы DDS чрезвычайно привлекательными приборами по сравнению с гораздо менее гибкими схемами на дискретных элементах.
Синтезаторы DDS способны генерировать не только синусоидальный сигнал. На рис. 2 показаны прямоугольный, треугольный и синусоидальный сигналы на выходе ИС AD9833.
Рис. 2. Прямоугольный, треугольный и синусоидальный сигналы на выходе синтезатора DDS
На рис. 3 показана функциональная схема синтезатора DDS: его основными узлами являются накопитель значения фазы (аккумулятор фазы), средство преобразования значения фазы в амплитуду (обычно это ПЗУ с табличными значениями функции синуса) и ЦАП.
Рис. 3. Функциональная схема синтезатора DDS
Схема DDS генерирует синусоидальный сигнал с заданной частотой. Частота выходного сигнала определяется двумя параметрами: частотой тактового сигнала и двоичным числом, записанным в регистр частоты.
Это двоичное число, записанное в регистр частоты, подается на вход аккумулятора фазы. Если используется ПЗУ с табличными значениями синуса, то аккумулятор фазы вычисляет адрес (соответствующий мгновенному значению фазы) и подает его на вход ПЗУ, при этом на выходе ПЗУ мы получаем текущее значение амплитуды в цифровом виде. Далее ЦАП преобразует это цифровое значение в соответствующее значение напряжения или тока. Для генерации синусоиды с фиксированной частотой постоянная величина (приращение фазы, определяемое двоичным числом, записанным в регистр частоты) прибавляется к значению, хранящемуся в аккумуляторе фазы, с каждым импульсом тактового сигнала. Если значение приращения велико, аккумулятор фазы будет быстро пробегать всю таблицу синуса, хранящуюся в ПЗУ, и частота сигнала при этом будет высока. Если значение приращения фазы мало, аккумулятору фазы понадобится больше шагов, чтобы пройти всю таблицу ПЗУ, и соответственно частота сигнала на выходе будет низкой.
Цифро-аналоговый преобразователь (ЦАП), выполненный на одном кристалле со схемой генерации цифровых отсчетов (DDS) представляет собой законченный интегральный DDS-синтезатор. Таковыми являются все DDS-синтезаторы фирмы Analog Devices.
Мгновенное значение фазы непрерывного синусоидального сигнала циклически изменяется в диапазоне от 0 до 2π. π Значение фазы генерируется в цифровом виде. Функция переноса, которой обладает счетчик, позволяет реализовать в синтезаторе DDS непрерывное циклическое изменение величины фазы.
Чтобы понять, каким образом осуществляется генерация, представьте себе синусоидальные колебания в виде вектора, вращающегося по окружности (рис. 4). Каждая точка на окружности соответствует определенной точке синусоиды. Вектор вращается по окружности, при этом величина синуса угла является выходным сигналом. Один оборот вектора с постоянной скоростью обеспечивает генерацию одного периода синусоиды. Аккумулятор фазы генерирует значения угла с одинаковыми приращениями, величина, находящаяся в аккумуляторе фазы, соответствует определенной точке окружности.
Рис. 4. Циклическое вычисление фазы
определенной точке окружности. Аккумулятор фазы представляет собой счетчик по модулю М, значение которого увеличивается с каждым приходом тактового импульса. Величина приращения задается двоичным числом М. Это число определяет величину приращения значения фазы с каждым тактовым импульсом, в сущности, этим числом определяется число пропущенных отсчетов при движении по окружности. Чем больше размер шага, тем быстрее происходит переполнение аккумулятора фазы и более коротким получается период синусоиды. Разрядностью аккумулятора фазы (n) определяется общее число возможных значений фазы, что в свою очередь обусловливает разрешение сетки частот синтезатора DDS. Для 28-разрядного аккумулятора фазы при М = 0000...0001 аккумулятор будет переполняться после 228 циклов (тактовых импульсов). При М = 0111...1111 аккумулятор фазы будет переполняться всего за 2 цикла (это минимальное число циклов, удовлетворяющее критерию Найквиста). Эти соотношения описываются следующей простой формулой:
f out = (М x f c)/2 n
где f out - частота выходного сигнала DDS; М- двоичное число, определяющее частоту сигнала; f c - частота сигнала тактирования; n- разрядность аккумулятора фазы.
При изменении значения М частота на выходе синтезатора меняется сразу и при этом сигнал не имеет разрывов. Здесь отсутствует переходный процесс захвата частоты, присущий генераторам с петлей ФАПЧ.
При увеличении выходной частоты число отсчетов на один цикл уменьшается. Так как теорема отсчетов требует наличия как минимум двух отсчетов на период для полного восстановления выходного сигнала, максимальная частота синтезируемого сигнала DDS будет составлять f c /2. Однако на практике частота синтезируемого сигнала ограничивается несколько меньшим значением, что способствует улучшению качества синтезируемого сигнала и облегчению его фильтрации.
При генерировании сигнала постоянной частоты код на выходе аккумулятора фазы увеличивается по линейному закону, что соответствует линейному пилообразному аналоговому сигналу.
Для преобразования выходного кода аккумулятора фазы (в случае ИС AD9833 - это 28-разрядный код) в мгновенные значения амплитуды используется ПЗУ с табличными значениями отсчетов синуса. Младшие разряды 28-разрядного кода отбрасываются; на выходе табличного ПЗУ мы получаем 10-разрядный код, который подается на ЦАП. Так как синусоида обладает симметричностью, в синтезаторе DDS хранятся табличные данные только об 1/4 части синусоиды. Табличное ПЗУ генерирует полный цикл синусоиды за счет чтения данных сначала в прямом, затем в обратном порядке. Схематически принцип работы синтезатора проиллюстрирован на рис. 5.
Рис. 5. Сигналы в синтезаторе DDS
Области применения синтезаторов DDS делятся на две категории: разработчикам теле-коммуникационных устройств требуются генераторы с мгновенной перестройкой частоты, с низким уровнем фазового шума и с низким уровнем гармоник и интермодуляционных составляющих. В таких случаях часто применяются синтезаторы DDS как обладающие хорошими характеристиками с точки зрения спектра выходного сигнала и высоким разрешением по частоте. В этих областях синтезаторы DDS применяются для модуляции сигнала, в качестве источников опорного сигнала для генераторов с петлей ФАПЧ, в качестве генераторов-гетеродинов, и даже для прямого синтеза радиосигнала.
Другая категория - это различные промышленные и медицинские системы, где синтезаторы DDS используются в качестве программируемых генераторов. Так как синтезатор DDS программируется с помощью цифрового сигнала, фазой и частотой сигнала легко управлять без переключения внешних компонентов, которое требовалось бы в случае применения аналоговых генераторов. Синтезатор DDS позволяет легко перестраивать частоту в реальном времени для настройки на резонансную частоту или для компенсации температурного дрейфа. Синтезаторы DDS применяются в подобных случаях для измерения импеданса (например, при работе с датчиками, у которых изменяется импеданс), для генерации импульсных сигналов для стимуляции, или для измерения затухания в локальных сетях или в телефонном кабеле.
Современные недорогие, высокопроизводительные и высокоинтегрированные синтезаторы DDS становятся очень популярными как в коммуникационных системах, так и в устройствах с датчиками. Среди привлекательных для разработчика свойств можно отме- тить следующие:
Двоичная модуляция со сдвигом частоты (FSK, frequency-shift keying) является одним из простейших способов кодирования данных. Данные передаются за счет переключения не- сущей частоты между двумя различными зна- чениями. Одна частота - f 1 (предположим, та, которая выше) обозначает логическую еди- ницу, а другая - f 0 - логический ноль. На рис. 6 показан исходный двоичный сигнал и полученный модулированный сигнал.
Рис. 6. Модуляция FSK
Такой алгоритм кодирования легко реализовать при помощи синтезатора DDS. Для этого устанавливается двоичное число, определяющее частоту сигнала f0 или f1, соответствующую единице или нулю передаваемого кода. Пользователь задает соответствующие значения частот. В микросхеме AD9834 для пользователя доступны два регистра программирования частоты, что облегчает получение сигнала FSK. В данной микросхеме имеется специальный вход (FSELECT), на который можно подавать модулирующий сигнал и выбирать одно из двух значений частоты (точнее, один из двух регистров частоты). Функциональная схема на рис. 7 иллюстрирует процесс получения сигнала FSK.
Рис. 7. Генератор сигнала FSK на базе синтезатора DDS
Кодирование со сдвигом фаз (PSK) - еще один простой способ кодирования. При модуляции PSK частота несущей остается постоянной, а фаза передаваемого сигнала меняется в соответствии с передаваемым кодом.
Из разновидностей модуляции PSK наиболее простой является двоичная импульсно-кодовая модуляция (BPSK) - в ней применяется только два значения фазы сигнала, 0° и 180°. Спомощью фазового сдвига 0° передается логическая единица, а при фазовом сдвиге 180° - логический ноль. Состояние каждого передаваемого разряда определяется по отношению к предыдущему разряду. Если фаза сигнала не меняется, это означает, что передаваемый сигнал находится постоянно в одном из логических состояний - 0 или 1. Если фаза изменилась на 180°, это значит, что состояние изменилось - с 0 на 1 или с 1 на 0.
Кодирование PSK легко реализовать с помощью микросхемы-синтезатора DDS. Большинство из них обладают отдельным регистром фазы, в который можно записать величину фазы. Эта величина прибавляется к фазе несущей частоты без изменения значения частоты. Изменение значения регистра фазы приводит к изменению фазы несущей частоты, таким образом, мы получаем сигнал с модуляцией PSK. Для тех случаев, где требуется модуляция с высокой скоростью, имеется ИС AD9834, в которой предусмотрены регистры, куда можно заранее записать величину фазы сигнала, а затем выбрать одно из двух значений фазы с помощью входа PSELECT, в результате чего мы получим требуемый сигнал с фазовой модуляцией.
Более сложные виды модуляции PSK подразумевают 4 или 8 различных значений фазы. При этом скорость передачи данных гораздо выше, чем при простейшей двоичной модуляции (BPSK). При модуляции с четырьмя значениями фазы (квадратурной модуляции, или QPSK) фаза может принимать значения 0°, +90°, –90° или 180°; таким образом, каждое значение фазы передает 2 бита информации. В микросхемах AD9830, AD9831, AD9832 и AD9835 имеется четыре регистра фазы, позволяющих реализовать сложные схемы модуляции за счет выбора одного из четырех значений сдвига фазы.
Рис. 8. Синхронизация синтезаторов DDS
Можно применить два отдельных синтезатора DDS, работающих от одного источника тактирования, для получения двух выходных сигналов, фазы которых можно затем установить в соответствии с требуемой величиной. На рис. 8 две микросхемы AD9834 работают от общего источника тактовых импульсов и их входы сброса объединены. При такой конфигурации можно реализовать модуляцию I-Q.
Сигнал сброса должен быть подан на соответствующие входы микросхем после включения питания и до подачи данных на входы синтезаторов DDS. Этот сигнал установит синтезаторы DDS в исходное состояние с известной начальной фазой, что позволит синхронизировать несколько синтезаторов DDS. Когда в микросхемы одновременно загружаются новые данные, обеспечивается когерентность фаз выходных сигналов; соотношения фаз устанавливаются с помощью регистров сдвига фаз. Микросхемы AD9833 и AD9834 обладают 12-разрядными регистрами фазы, эффективная разрешающая способность составляет 0,1. Более детально синхронизация нескольких синтезаторов DDS описана в руководстве AN-605.
Это фазовый шум, дрожание фронтов (джиттер) и SFDR (динамический диапазон, свободный от гармоник). Фазовый шум (заданный в виде плотности dBc/Hz) является мерой нестабильности частоты генератора на коротких промежутках времени. Он измеряется в одной боковой полосе (в децибелах относительно основного сигнала, в полосе 1 Гц) при различной величине отстройки от основной частоты генерации. Этот параметр особенно важен для разработчиков телекоммуникационных систем.
Шум в системе с дискретными данными зависит от многих факторов. Дрожание фазы (джиттер) тактового сигнала в системе DDS можно рассматривать как фазовый шум основного сигнала; кроме того, погрешность может вносить округление величины фазы, эта погрешность зависит от значения кода, задающего частоту сигнала. Если соотношение таково, что величина фазы точно равна величине после округления, то ошибка округления фазы отсутствует. Если величина фазы для точного выражения требует больше разрядов, чем имеется, то округление величины фазы будет проявляться в виде дополнительных пиков в спектре выходного сигнала. Величина этих пиков и их расположение зависит от заданного кода. Цифро-аналоговый преобразователь (ЦАП) также вносит дополнительные шумы в систему. Погрешности квантования и нелинейность ЦАП проявляются в виде шумов и гармоник в выходном сигнале. На рис. 9 показан спектр фазового шума, типичный для синтезатора DDS - в данном случае это ИС AD9834.
Рис. 9. Типичный спектр фазового шума выходного сигнала синтезатора DDS AD9834. Частота выходного сигнала 2 МГц, частота тактирования 50 МГц
Дрожание фронтов (джиттер) - это динамическое отклонение фронта сигнала от среднего положения фронта, измеренного за продолжительный период времени. Идеальный генератор обеспечивал бы абсолютно точное положение фронтов сигнала в определенные моменты времени, и это положение никогда бы не менялось. Такое, конечно, невозможно, и даже лучшие генераторы созданы из реальных элементов, обладающих шумами и другими несовершенствами. Высококачественный кварцевый генератор обладает величиной джиттера, не превышающей 35 пс.
Джиттер возникает за счет температурного шума, нестабильности параметров элементов генератора, внешних помех по питанию, по земле и даже через соединение выхода. Кроме того, оказывают влияние внешние магнитные и электрические поля, такие как поля от близко расположенных передатчиков. Даже простой усилитель, инвертор или буфер будет вносить дополнительный джиттер в выходной сигнал.
Таким образом, некоторое дрожание фазы будет присутствовать в выходном сигнале синтезатора DDS. Так как любому источнику тактового сигнала присущ некоторый джиттер, для начала необходимо выбрать тактовый генератор с минимальным джиттером. Один из способов уменьшить величину джиттера - получать тактовый сигнал посредством деления частоты высокочастотного тактового сигнала. При делении частоты та же величина джиттера распределяется на больший период времени, что снижает относительную величину джиттера.
В целом, чтобы минимизировать величину дрожания фазы, необходимо выбрать хороший источник тактовых импульсов, избегать сигналов с медленными фронтами и схем с низкой скоростью нарастания импульсов и работать при максимально возможной частоте тактирования, чтобы иметь достаточно большой запас по частоте.
SFDR - динамический диапазон, свободный от гармоник, - представляет собой соотношение (в децибелах) между величиной основного сигнала и величиной максимального пика в спектре выходного сигнала, включая гармоники, интермодуляционные составляющие и продукты наложения спектров.
SFDR является важным параметром для многоканальных систем. Если передатчик обладает недостаточно низким уровнем гармоник, эти гармоники могут являться источником помех для соседних каналов.
Типичный спектр выходного сигнала ИС AD9834 (10-разрядный DDS) при частоте тактирования 50 МГц показан на рис. 10. На рис. 10а частота выходного сигнала составляет ровно 1/3 от частоты тактирования (MCLK). Поэтому в данном случае в полосе 25 МГц практически отсутствуют гармоники, эффекты наложения спектров минимальны и спектр выглядит превосходно; все максимумы в спектре как минимум на 80 дБ слабее сигнала (SFDR = 80 дБ). На рис. 10b показан спектр выходного сигнала при более низкой частоте на выходе; здесь на один период приходится большее число отсчетов (но недостаточное для того, чтобы получить по-настоящему чистую синусоиду) и спектр выходного сигнала гораздо дальше отстоит от идеального; максимальная гармоника - вторая - имеет величину –50 дБ относительно основного сигнала (SFDR = 50 дБ).
рис 10 Спектр выходного сигнала синтезатора AD9834 при частоте тактирования 50 МГц и выходной частоте f out = MCLK/3 = 16,667 МГц (a) и f out = 4,8 МГц (b)
Существует интерактивный помощник разработчика, доступный через веб-интерфейс, позволяющий рассчитать коды частоты и фазы при заданной частоте тактирования, частоте и фазе выходного сигнала. Программа показывает спектр выходного сигнала, помогающий рассчитать выходной восстанавливающий фильтр. Пример показан на рис. 11. Кроме того, программа выводит в виде таблицы перечень всех основных гармоник и продуктов наложения спектров и их значения.
Рис. 11. Программа помощник разработчика систем на базе DDS
Все необходимые исходные данные - это требуемая частота выходного сигнала и частота источника тактового сигнала. Программа на основе этих данных выдаст все коды, необходимые для программирования синтезатора DDS. В примере, показанном на рис. 12, частота тактирования MCLK=25 МГц, требуемая частота выходного сигнала - 10 МГц. Нажав на кнопку, мы получаем строчку Init Sequence, полностью отображающую последовательность программирования синтезатора DDS.
Рис. 12. Получение кода для программирования синтезатора DDS
Для каждой микросхемы-синтезатора DDS, выпускаемой фирмой Analog Devices, выпускается также соответствующая оценочная плата (Evaluation Board). По поводу приобретения продукции и оценочных плат обращайтесь к дистрибьюторам. К оценочным платам прилагается программное обеспечение, позволяющее инженеру ознакомиться с работой платы в течение считанных минут после получения комплекта. К плате прилагается также техническое описание, содержащее схему и рекомендации по проектированию устройства и разводке платы.
Главная страница, посвященная синтезаторам DDS: www.analog.com/dds.
Средства разработки: http://www.analog.com/Analog_Root/static/techSupport/interactiveTools/#dds.
Углубленный курс по изучению технологии DDS: http://www.analog.com/UploadedFiles/Tutorials/450968421DDS_Tutorial_rev12-2-99.pdf.
Руководство по применению AN-605 (упоминавшееся выше): http://www.analog.com/UploadedFiles/Application_Notes/3710928535190444148168447035AN605_0.pdf.
Руководство по выбору микросхемы DDS: http://www.analog.com/IST/SelectionTable/?selection_table_id=27
В первой части статьи рассматривается схемотехническое решение, устройство и конструкция DDS генератора (генератор с прямым цифровым синтезом формы сигнала) на микроконтроллере ATmega16 . В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала.
Основные характеристики прибора:
За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen . Предложенный алгоритм был немного переработан и адаптирован под компилятор WinAVR-GCC
Сигнальный генератор имеет два выхода: выход DDS сигнала и выход высокочастотного сигнала (1 - 8 МГц) прямоугольной формы, который может использоваться для «оживления» микроконтроллеров с неправильными установками Fuse-битов или для других целей.
Высокочастотный сигнал поступает непосредственно с микроконтроллера, с вывода OC1A (PD5). DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R (ЦАП), регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LM358N .
Блок-схема DDS генератора
Как видно, для питания устройства необходимо три напряжения: +5 В, +12 В, -12 В. Напряжения +12 В и -12 В используются для аналоговой части устройства на операционном усилителе для регулировки смещения и амплитуды.
Принципиальная схема источника питания изображена на рисунке ниже.
В источнике питания используются стабилизаторы напряжения LM7812 , LM7805 , LM7912 (стабилизатор отрицательного напряжения -12 В).
Внешний вид источника питания для генератора
Возможно использование компьютерного блока питания форм-фактора ATX, для этого необходимо распаять переходник в соответствии со схемой:
Принципиальная схема прибора
Для сборки прибора потребуется:
Рисунок печатной платы
Примененные компоненты, за исключением микроконтроллера и разъемов, в корпусах для поверхностного монтажа (smd).
Прибор смонтированный в корпусе
Тестовый запуск
Загрузки
Принципиальная схема и печатная плата (формат Eagle) -
Проект для симуляции в среде Proteus -
Стоимость: $15,3
Прежде всего, DDS — Direct Digital Synthesizer или цифровой синтезатор сигналов или электронный прибор, предназначенный для синтеза сигналов произвольной формы и частоты из опорной частоты.
Зачем в хозяйстве радиолюбителя нужен генератор объяснять не буду. Готовые генераторы стоят недешево и весят прилично, поэтому их пересылка тоже дорогая. Поэтому решено было присмотреться к DDS модулям без корпуса и блока питания.
Выбор DDS-модулей на просторах интернет оказался невелик. Из более-менее недорогих и с нормальным набором функций я нашел только 2 вида. Они одинаковые по функционалу, отличаются только расположением органов управления и питанием. Для работы одного из них было нужно три напряжения (+12В, -12В и +5В), второй работает от одного напряжения 7-9В. Это было решающим, проще потом запитать его от готового блока питания и не придется специально городить схему питания.
Из описания на сайте:
Operating voltage: DC7-9V
DDS frequency range: 1HZ-65534Hz.
High-speed frequency (HS) output up to 8MHz;
DDS signal amplitude of the offset amount can be adjusted separately by two potentiometers;
DDS signals: sine wave, square wave, sawtooth, reverse sawtooth, triangle wave, the ECG wave and noise wave.
1602 LCD menu;
Intuitive keyboard.
Section into the value: 1,10,100,1000,10000 Hz;
The power automatically restore the last used configuration.
Offset: 0.5pp-5Vpp
Amplitude amount: 0.5Vpp-14Vpp
Сама плата сделана очень качественно, пайка приличная, флюс смыт.
Так как под руками не нашлось блока питания на 9В с подходящим разъемом подключил блок питания на 5В. Как ни странно, все заработало. Пришлось только чуть подкорректировать контрастность LCD дисплея. Для этого под самим дисплеем имеется подстроечный резистор.
У генератора удобный алфавитно цифровой LCD дисплей 1602 с синей подсветкой и немало кнопок управления и 2 ручки настройки. Пойдем по порядку. Разъем питания 8-9В (как уже выяснили и от 5В работает уверенно). Кнопка включения/выключения питания. Светодиод, сигнализирующий включение.
Две рукоятки управления:
Сбоку 2 BNC разъема. Один для вывода DDS, второй для высокочастоного сигнала.
Генератор может формировать следующие формы импульсов:
Продолжая тему электронных конструкторов я хочу и в этот раз рассказать о одном из устройств для пополнения арсенала измерительных приборов начинающего радиолюбителя.
Правда измерительным это устройство не назовешь, но то что оно помогает при измерениях это однозначно.
Довольно часто радиолюбителю, да и не только, приходится сталкиваться с необходимостью проверки разных электронных устройств. Это бывает как на этапе отладки, так и на этапе ремонта.
Для проверки бывает необходимо проследить прохождение сигнала по разным цепям устройства, но само устройство не всегда позволяет это сделать без внешних источников сигнала.
Например при настройке/проверке многокаскадного НЧ усилителя мощности.
Для начала стоит немного объяснить о чем пойдет речь в данном обзоре.
Рассказать я хочу о конструкторе, позволяющим собрать генератор сигналов.
Генераторы бывают разные, например ниже тоже генераторы:)
Но собирать мы будем генератор сигналов. Я много лет пользуюсь стареньким аналоговым генератором. В плане генерации синусоидальных сигналов он очень хорош, диапазон частот 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Максимальная частота - 65534 Гц (и до 8 МГц HS выход с меандром). И тут я подумал, что генератор - отличная задача, где ПЛИС сможет показать себя в лучшем виде. В качестве спортивного интереса я решил повторить проект на ПЛИС, при этом по срокам уложиться в два выходных дня, а параметры получить не строго определенные, а максимально возможные. Что из этого получилось, можно узнать под катом
По поводу того, на чем написать программу для передачи данных через 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 МГц.
К сожалению, дома в наличии не оказалось резисторов 1 и 2 килоома. Ехать в магазин было некогда. Пришлось поступиться одним из своих правил, и выпаять резисторы из старой не нужной платы. Там применялись резисторы 15К и 30К. Получился вот такой франкенштейн:
После создания проекта нужно задать целевое устройство: Меню Assigments -> Device
Модуль генератора на 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
Пункт меню Assigments -> Pin Planner
На линии HS_OUT, key0 и key1 прошу пока не обращать внимание, они появляются в проекте потом, но скрин в самом начале я сделать не успел.
В принципе, достаточно «прописать» только PIN_nn в столбце Location, а остальные параметры (I/O standart, Current Strench и Slew Rate) можно оставить по умолчанию, либо выбрать такие же, что предлагаются по умолчанию (default), чтобы не было warning"ов.
Как узнать какому PIN соответствует номер разъема на плате?
Номера контактов разъема подписаны на плате
Подключать программатор нужно к разъему JTAG. А пункт меню для программирования «Tools -> Programmer» (либо нажать значек на панели инструментов). Кнопка «Start», радостное «Success» и прошивка уже внутри ПЛИС и уже работает. Только не выключайте ПЛИС, а то она все забудет.
Tools -> Programmer
Каких-то 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 МГц
Ставим ЦАП на плату ПЛИС и подключаем к осциллографу
Проверяем 1 МГц - ВО! Совсем другое дело!
Пила 10 МГц
Пила 25 МГц
В принципе, на этом вопрос с ЦАП можно считать закрытым. Теперь снимем осциллограммы высокоскоростного выхода. Для этого, выведем старший бит на отдельный PIN ПЛИС. Данные для этой линии будем брать со старшего бита аккумулятора DDS.
Assign hs_out = accumulator;
Меандр 1 МГц
Меандр 5 МГц
Меандр 25 МГц
Меандр 50 МГц уже практически не виден
Синус делается по таблице. Размер таблицы 256 значений по 8 бит. Можно было бы взять и больше, но у меня уже был готовый mif файл. С помощью мастера создаем элемент ROM с данными таблицы синуса из mif-файла.
Создание ROM - Tools -> Mega Wizard Plugin manager
Соглашаемся
Тут тоже соглашаемся
С помощью browse находим наш mif файл с таблицей синуса
Тут тоже ничего не меняем
Снимаем галочку с модуля sine_rom_bb.v - он не нужен. Дальше finish. Квартус спросит добавить модуль в проект - соглашаемся. После этого, модуль можно использовать так же, как любой другой модуль в Verilog.
Код
//sine rom wire sine_out; sine_rom sine1(.clock(clk200M), .address(accumulator), .q(sine_out));
При желании, можно рассмотреть проблемы ЦАП, связанные с разбросом резисторов:
Чтож, на этом выходные кончились. А ведь еще не написано ПО для управления с ПК. Вынужден констатировать факт, что в запланированные сроки я не уложился.
Интерфейс