HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

Цифровой функциональный генератор

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Photo

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

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

Принцип DDS

Непрерывный сигнал и Дискретный сигнал

Fig.1

Когда цифровая схема обрабатывает непрерывный во времени сигнал, она делает выборки с постоянным интервалом и затем квантует их что бы преобразовать в цифровые данные подобно тому, как показано на Рисунке 1. Значения дискретизированного сигнала существуют только в точках дискретизации, между ними их нет. Эта форма сигналов называется дискретными сигналами, таким образом, цифровая обработка сигналов обрабатывает сигналы в форме дискретного сигнала.

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

Если представить дискретный сигнал как «импульсный сигнал с частотой fs, который модулирован входным сигналом», его характеристики, такие как бесконечно повторяющийся спектр, могут быть легко найдены.

Цифровой синтез формы сигнала

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

e = Ep * sin(θ) = Ep * sin(ωt) = Ep * sin(2πft) ---(1)

где Ep пиковое значение, ω угловая скорость [рад/с], f частота [Гц] и t время [с]. Данные для сигнала синусоидальной формы могут быть получены путем вычисления значений для каждой точки дискретизации. Для сигналов формы, отличной от синусоидальной все происходит точно так же.

Практическая DDS система

Fig.2

Что бы реализовать DDS, вычислять синусоидальную функцию каждый раз не рационально с точки зрения вычислительной скорости и размера аппаратных ресурсов. Однако синусоидальная функция периодическая и поэтому может храниться в таблице и вычисляться путем табличного преобразования угла θ, как показано на Рисунке 2. При таком подходе аппаратная часть становится простой и может работать очень быстро. Частота синтезированного сигнала будет:

f = fs * (1 / Ns) ---(2)

где fs частота дискретизации, Ns длинна таблицы. Чтобы изменить выходную частоту следует изменить fs. Однако изменение частоты дискретизации fs увеличивает сложность аналоговой части (выходной фильтр, и т.д.), поэтому это плохой путь управления выходной частотой. Выходная частота также может быть изменена путем увеличения потока обращений к таблице преобразования (Δs) вместо изменения fs.

f = fs * (Δs / Ns) ---(3)

Рисунок 3 показывает этот процесс. Регистр ω  увеличивает значение регистра θ каждую выборку, выходная частота может быть изменена с помощью регистра ω. В дополнение к этому, выходная частота пропорциональна ω и это преимущество перед использованием делителя 1/N. Структурная схема на рисунке 3 показывает основной принцип DDS. На практике эти два регистра обычно имеют дробную часть. Это позволяет DDS задавать выходную частоту с чрезвычайно высоким частотным разрешением. Однако из за округления, при обращении к таблице с хранимым сигналом случается фазовая ошибка. Как результат выходной сигнал содержит много ошибочных выборок. В этом заключается неудобство систем с DDS. Для уменьшения фазовой ошибку эффективны интерполяция при обращении к таблице и увеличение длинны таблицы.

В соответствии со спецификацией

Я определил нижеследующую специфику функционального генератора:

  1. Генерация сигналов методом DDS.
  2. Использование для измерений в звуковых системах.
  3. Полное управление с микроконтроллера и максимальное уменьшение аналоговой части.
  4. Способность генерировать сигналы произвольной формы, отличной от синусоидальной.

Причинами, такого решения стали: 1 цель проекта, 2 область планируемого использования, 3 то, что аналоговая часть не точная.

Как реализовать DDS

Есть два метода составления DDS систем, один заключается в реализации чисто аппаратной логики, другой в программной обработке с помощью цифрового сигнального процессора (DSP) или микроконтроллера. В аппаратном методе используется Микросхема DDS или ПЛИС. Микросхемы DDS разработаны для цифровой связи и не могут генерировать сигналов произвольной формы, не имеют цифрового аттенюатора и их вертикальное разрешение не достаточное для применения в аудио системах, поэтому они не могут использоваться в этом проекте. Реализация DDS с помощью ПЛИС решает эту проблему. Однако микроконтроллер должен использоваться хотя бы для управления системой, поэтому я размышлял, может ли обычный микроконтроллер реализовать DDS или нет?

Для аудио измерений требуется вертикальное разрешение в 16 бит и частота выборок хотя бы 100 кГц. Исходя из этого я вычислил, что DDS может быть реализован на AVR с загрузкой в 80 процентов. Это область цифровых сигнальных процессоров или 32 битных процессоров, но это так же может быть реализовано на AVR, дорогостоящий процессор не потребуется в этом проекте.

Выход

Я использовал стерео ЦАП, который откопал в ящике с запчастями . Это позволяет генерировать два сигнала индивидуальной формы. Возможны эксперименты с фазой, сложными сигналами и измерением интермодуляционных искажений.

Пользовательский интерфейс

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

Аппаратная часть

Fig.4

На рисунке 4 показана схема функциональных блоков функционального генератора. Далее приведено описание каждого блока.

Принципиальная схема (контроллер) | Принципиальная схема (аналоговая часть)

Микроконтроллер

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

 

ПЛИС

Fig.5

На Рисунке 5 показана функциональная схема ПЛИС. Я использовал ПЛИС ispLSI1016E фирмы Lattice, что нашел в коробке с запчастями. Она может быть заменена любой другой ПЛИС, имеющей 64 макроячейки. Она используется в основном как параллельно-последовательный преобразователь, чтобы посылать данные в ЦАП. Соединительная логика, необходимая для подключения внешней памяти к AVR контроллеру, так же включена в ПЛИС. Сигнал LRCK, идущий к ЦАП, используется для прерываний дискретизации, чтобы синхронизировать процесс синтеза сигнала и ЦАП.

ЦАП

Здесь используется NEC μPD63210. Это 16 битный стерео аудио ЦАП на основе цепочки резисторов, со встроенным цифровым фильтром избыточной дискретизации. Цифровой фильтр уменьшает шумы, вызванные ступенчатостью, так что выходной фильтр может быть упрощен и форма сигнала будет без искажений даже около частоты Найквиста. μPD63210 может работать на частоте входных выборок 96 кГц, таким образом может быть охвачен диапазон в 40 кГц, что в два раза больше самой высокой частоты аудио сигнала. Конечно подойдет любой другой ЦАП, поддерживающий частоту дискретизации 96 кГц. В этом проекте тактовая частота ЦАП изменена, чтобы обеспечить частоту прохода по всей таблице 12.5 Гц (12.5 × 8192=102400) и поэтому ЦАП работает с частотой преобразований 102.4 кГц. Линия питания ЦАП не должна содержать помех так как они могут стать причиной ошибок в выходном сигнале, поэтому напряжение питания создается с помощью последовательности регуляторов и разделено на напряжения питания для аналоговой (AVDD) и цифровой (DVDD) частей, каждое из которых проходит через отдельный LC фильтр.

Аналоговая часть

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

Программная часть

Процесс цифрового синтеза сигнала (DDS)

Fig.6

На рисунке 6 показана диаграмма потоков данных в процессе DDS. Этот процесс приводится в действие в прерывании дискретизации, сигналом LRCK как показано ниже:

V1 = WaveTable1 [(θ1 += ω1) % 8192] * Gain1;
V2 = WaveTable2 [(θ2 += ω2) % 8192] * Gain2;

Результаты (V1 и V2) посылаются в ЦАП через параллельно-последовательный преобразователь. Регистры DDS ω и θ имеют разрядность 13.7 с фиксированной точкой. Для частоты дискретизации 102.4 кГц и между соседними двумя выборками остается 192 такта тактовой частоты. Подпрограмма, осуществляющая DDS может и не справиться со своей задачей за это время.

Fig.7

В процессе экспериментирования я достиг результата в 157 тактов процессора между выборками. Загрузка процессора при этом была 82% и мощность процессора, приблизительно в 3 МГц оставалась для основного процесса, при работающем DDS. На рисунке 7 показана временная диаграмма процесса DDS и выходных данных. В коде программы статические регистровые переменные определены для того, чтобы исключить временные задержки в процессе записи чтения данных при входе и выходе из подпрограммы обработки прерывания. Время ответа на прерывание для процесса DDS должно быть минимизировано, чтобы сохранить непрерывность формы сигнала, таким образом, другие подпрограммы обработки прерываний должны позволять вложенное прерывание, что достигается путем назначения прерыванию DDS наивысшего приоритета. Однако эти соображения не применяются к модулю доступа к файлам, потому как DDS всегда отключается при доступе к файлам (загрузке формы сигнала).

Управление формами сигнала

Данные о форме сигнала хранятся на карте памяти как обычный csv файл. Данные представлены в формате двух столбцов (ch1, ch2) для каждой строчки, 8192 строчки, диапазон целочисленных значений от -32767 до 32767, пиковые значения соответствуют 32767 или -32767. Эти файлы управляются с помощью индексного файла, задающего форме сигнала имя при отображении на дисплее и устанавливающего порядок их следования в меню.

Фалы форм сигнала используют csv формат, однако изменение (перезагрузка) формы сигнала занимает около 2х секунд из-за процесса обработки текста. Для решения этой проблемы загружаемые формы сигналов и их характеристики (такие как пик - фактор и уровень от минимума к максимуму) кэшируются в бинарный файл (.bin) и в следующий раз загружается именно этот файл.

Пользовательский интерфейс

На фотографии вверху страницы изображена передняя панель. Параметры синтезируемого сигнала, такие как название формы, выходное напряжение, частота канала 1, частота канала 2 и его фаза, отображаются на LCD дисплее. Эти параметры могут быть изменены с помощью кнопок и углового кодера. Чтобы изменить форму сигнала, выберите ее с помощью углового кодера и установите с помощью левой кнопки со стрелкой.

На этом фото показан режим контроля фаз. В этом режиме частота канала 2 отслеживает изменения частоты канала 1 и фазовая задержка может быть задана с разрешением в 1 градус. Когда изменяется частота канала 2, устройство переходит в двух тональный режим. В этом режиме вместо фазы на дисплее отображается "***" и частота для каждого канала может быть задана индивидуально. Если вы измените фазовую задержку, устройство перейдет в режим контроля фазы и частота канала 2 установится равной частоте канала 1.

Выходное напряжение отображается в вольтах ЭДС так как большинство аудио систем имеют высокий входной импеданс. Чтобы изменить эту установку, переместите курсор на выводимое напряжение и выберите нужный вариант с помощью углового кодера. Форма отображения выходного напряжения в dBm соответствует нагрузке в 600 Ом, так 0 дБм будет соответствовать 775 мВ с.к.з. При подключении нагрузки в 600 Ом, выходное напряжение падает на 0.7 дБ, так как выходное сопротивление Zo составляет 50 Ом. Максимальное выходное напряжение 5 с.к.з., однако допустимое напряжение ограничено пик - фактором выбранного сигнала.

Изготовление печатной платы

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

Регулировка

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

Во первых остановите генерацию и с помощью подстроечных резисторов VR1 и VR2, задающих напряжение смещения, задайте напряжение на входе коммутатора 0 вольт (на постоянном токе). Затем, запустите генерацию синусоидального сигнала напряжением 5 VRMS подстроечными резисторами VR3 и VR5 добейтесь значения выходного напряжения (переменного) 5 вольт, после чего подстроечными резисторами VR4 и VR6 настройте выходное напряжение в 0.34 В, после переключения аттенюатора (с высокого уровня на низкий). Наконец, настроечным конденсатором VC1 настройте тактовую частоту 19,660,800 Гц. Хотя этот конденсатор можно вообще исключить, так как для аудио измерений точности вполне хватает.

Результаты и соображения

Формы сигналов

Здесь представлены формы сигнала в режиме_контроля_фазы  и в двухтоновом_режиме. Также может быть генерирован сложный_сигнал так как для каждого канала имеется своя независимая таблица преобразования. Частота может быть изменена мгновенно при сохранении  постоянной_фазы. Форма сигнала может быть изменена за 50 миллисекунд из-за бинарного кэширования. Когда выходной сигнал прямоугольной_формы, в выходном сигнале появляются колебания около кромок, характерные для цифрового фильтра. Когда частота установлена в  40_кГц_синусоиды, что близко к частоте Найквиста, в точках дискретизации (возникающих по фронту сигнала LRCK) сигнал становится очень грубым.

Но форма остается гладко синусоидальной из за цифрового фильтра 8-го порядка (фильтр избыточной дискретизации).

Аудио параметры

Я мерил_аудио_характеристики. Общий коэффициент нелинейных искажений (THD+N) варирует циклически между  0.01% и 0.03% из за ошибки округления. Отношение сигнал/шум (SNR) было 85 дБ на 1 кГц, 1 В с.к.з. Заметьте, эти измерения были сделаны до выходного фильтра. Производительность выглядит вполне достаточной если взять аналогичные показатели голого ЦАП (без цифрового фильтра) для сравнения.

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

Замечания

Необходимы ссылки

 Цифровой функциональный генератор  Цифровой функциональный генератор  Цифровой функциональный генератор
Печатная плата (верх) Печатная плата (низ) Вид изнутри корпуса
 
 Цифровой функциональный генератор
X-Y осцилограмма сложного сигнала

Характеристики функционального генератора с DDS

Основные микросхемы

Контроллер: ATmega64 (ATMEL)
ПЛИС: ispLSI1016E (Lattice)
ЦАП: μPD63210 (NEC)

Параметры DDS

Количество каналов: 2
частота дискретизации: 102.4 кбит/с
вертикальное разрешение: 16 бит
длинна таблицы преобразования: 8192 чисел на канал

Аналоговый выход

Zo=50 Ом, 2 канала

Частотный диапазон
(Ch1/Ch2 независимы)

0.01 Гц - 45,000.00 Гц (с шагом 0.01 Гц)

Диапазон выходных напряжений
(Ch1/Ch2 одновременно)

0.001 - 20.000 В с.к.з. (шаг 0.001 В с.к.з.)
0.001 - 20.000 В пик-пик (шаг 0.001 В пик-пик)
-60.00 - +20.00 дБВ (шаг 0.01 дБВ)
-60.00 - +20.00 дБм (шаг 0.01 дБм)
(Все отображается в ЭДС и пиковое значение <= ±7.5 В)

Фаза канала 2 (Ch2)

-180° ... +179°
(относительно Ch1, шаг 1°)

Пользовательский интерфейс

LCD модуль символьного типа (20 столбцов, 4 строки),
4 кнопки и угловой кодер, а также звук нажатия при работе с кнопками и угловым кодером.

Хранение данных о форме сигнала

MMC или SDC

Питание

Сеть 220 В

Перевод: [IMG]/i/Image/wand.gif[/IMG] по заказу РадиоЛоцман

На английском языке: DDS Function Generator

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • У меня возник вопрос, кто-нибудь пробовал скомпилить файлы исходники для микроконтроллера данного проекта? У меня в WinAVR вылезает ошибка (при выполнении make), но hex-файл получаю... работать скорее всего не будет конечно... Предлагайте варианты, как и где можно скомпилировать :)