Меню Рубрики

Генератор частоты на микроконтроллере

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Браузер нагружает процессор на 100 процентов

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

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

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

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

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

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

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

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

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

FUSE:

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

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

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

Сколько я занимаюсь электроникой, всегда хотел заиметь генератор сигналов различной формы. Недавно мне понадобилось получить синусоидальный сигнал с помощью цифровых методов, и я решил что сделаю себе хороший генератор! В итоге я сделал простой, но функциональный генератор сигналов который может генерировать: меандр, треугольник, синус, шум и пилообразный сигналы. Максимально генерируемая частота – 60kHz (килогерц). Пока что в настоящей прошивке, частоту можно устанавливать только при генерации меандра, для остальных сигналов можно устанавливать лишь задержку в микросекундах. Основой устройства является AVR микроконтроллер ATtiny2313, сигнал генерируется с помощью 8 битного цифро-аналогового преобразователя (ЦАП), данные о частоте, сигнале или задержки отображаются на ЖК индикаторе 8×2. Вот собственно принципиальная схема:

Читайте также:  Водяные тэны с регулятором

Для сборки понадобятся детали:
1. Микроконтроллер Attiny2313 – 1шт.
2. ЖК индикатор WH0802 или с HD44780 совместимом – 1шт.
3. Микросхема LM324 – 1шт.
4. Тактовые кнопки без фиксации – 3шт.
5. Резистор 10 кОм – 1шт.
6. Резистор 300 Ом – 1шт.
7. Резистор 2 кОм – 8шт.
8. Резистор 1 кОм – 9шт.

ЦАП собран на резисторах и подключён напрямую к порту B микроконтроллера, сигнал после ЦАПа усиливается с помощью операционного усилителя LM324. ЖК индикатор я применил WH0802 c HD44780 совместимом контроллером, данный ЖКИ имеет 2 строки по 8 знакомест каждая. Существенно применение любого ЖК индикатора с совместимом контроллером с HD44780. Микроконтроллер применить Attiny2313 можно с любыми буквенными индексами, в любых корпусах. Кнопки можно применить любые тактовые, без фиксации. Кнопкой "Выбор" выбирается тип генерируемого сигнала. Кнопками "Плюс" и "Минус" устанавливается частота или задержка. При включении устройства оно сразу начинает генерировать сигнал, по умолчанию это меандр. Напряжение питания: 5 вольт. Вот осциллограммы генерируемых генератором сигналов:

Меандр

Шум

Пила

Синус

Треугольник

Я собрал свой генератор сигналов в пластмассовом корпусе ZIV, вот что получилось:

Первые испытания вместе с самодельным осциллографом:

Схему я собрал на печатной плате сделанной с помощью ЛУТ, рисунок печатной платы в Sprint Layout 4.0 можно найти в файлах к статье. На плате я использовал детали в SMD корпусах, исключение лишь составляет микросхема LM324, она использована в DIP корпусе. Прошивку для устройства я писал в среде BASCOM-AVR исходник прилагается. Также прилагается проект устройства в программе Proteus. Кстати, после прошивки не забудьте установить следующие фьюз биты (для программы SinaProg):

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

Основные характеристики прибора:

  • простое схемотехническое решение, доступные компоненты;
  • односторонняя печатная плата;
  • сетевой источник питания;
  • специализированный выход частоты от 1 МГц до 8 МГц;
  • DDS выход с регулировкой амплитуды и смещения;
  • форма выходного DDS сигнала: синусоида, прямоугольные импульсы, пилообразные импульсы, треугольные импульсы, ЭКГ, шум;
  • для отображения текущих параметров используется двухстрочный ЖК дисплей;
  • пятикнопочная клавиатура;
  • шаг перестройки частоты: 1, 10, 10, 1000, 10000 Гц;
  • восстановление последней конфигурации при включении;
  • регулировка смещения: –5 В … +5 В;
  • регулировка амплитуды: 0 … 10 В;
  • регулировка частоты: 0 … 65534 Гц.
Читайте также:  В каком возрасте начинает плодоносить яблоня

За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка 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, для этого необходимо распаять переходник в соответствии со схемой:

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

Для сборки прибора потребуется:

  • микроконтроллер ATmega16;
  • кварцевый резонатор 16 МГц;
  • стандартный двухстрочный ЖК индикатор на базе контроллера HD44780;
  • R2R ЦАП выполненный в виде цепочки резисторов;
  • сдвоенный операционный усилитель LM358;
  • два потенциометра;
  • пять кнопок;
  • несколько коннекторов и разъемов.

Рисунок печатной платы

Примененные компоненты, за исключением микроконтроллера и разъемов, в корпусах для поверхностного монтажа (smd).

Прибор смонтированный в корпусе

Тестовый запуск

Загрузки

Принципиальная схема и печатная плата (формат Eagle) – скачать
Проект для симуляции в среде Proteus – скачать

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

Дополниельно имеется второй вариант конструкции DDS генератора на микроконтроллере ATmega16.

Перевод: Vadim по заказу РадиоЛоцман

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *