Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Генератор на DDS AD9851

После того, как была проверена работоспособность модуля на AD9851, мною было принято решение попробовать уместить два генератора в одном: генератор синуса на основе AD9851 с частотой от 1 Гц до 90 МГц (теоретически, реально же, как заявлено, около 70 МГц) и НЧ-генератор DDS сигналов произвольной формы с частотой от 1 Гц до 100 кГц.

Кнопку Run/stop решено было перенести на тот же порт управления клавиатурой и в ту же часть программы – добавился один диод, но ушел один резистор. Светодиод и пьезокерамический буззер объединил на одну ногу (если применять другой тип буззера, то лучше использовать буферный транзистор через развязывающий конденсатор). Испытания показали, что для формирования сигнала Reset для AD9851 вполне подходит RC-цепочка – экономим еще одну ножку процессора. В итоге у нас остается порт D для формирования DDS 8-ми битного сигнала низкой частоты и три ноги порта С для последовательного управления модулем DDS AD9851. Схема приведена ниже:



Сдвоенный операционный усилитель общего назначения используется как выходной буфер для формирования сигнала произвольной формы (верхняя по схеме половинка) и в качестве цифрового выхода (нижняя половинка). Питание операционника ±12 Вольт (обусловлено наличием у меня именно такого питания в корпусе).


Плата разведена под корпус TQFP с шириной дорожек 0,32, резисторы для матрицы R-2R отобраны из ряда 10 кОм типоразмер 1206, остальные пассивные элементы в корпусах 1206 и 0805. Кварц на 12 МГц был найден в закромах – мелкий в корпусе SMD и на плате отмечен тремя круглыми контактными площадками с левой стороны:



В принципе, подойдет любой из номинала от 8 МГц до 16 МГц – надо только в программе выставить нужную частоту. Резисторы номиналом на схеме 5 кОм (с левого края 7 шт. получены параллельным соединением резисторов по 10 кОм – запаяны бутербродом). На плате присутствуют 4 перемычки 1206, переменный резистор для регулировки контрастности дисплея после замеров заменен двумя постоянными резисторами. Ввиду относительной простоты схемы на плате номера элементов и выводов не подписаны – разобраться несложно. С правой стороны микросхемы выведены три контактные площадки для аналоговых ножек – опорника и двух входов АЦП – на всякий случай. Плата получилась размером 45*36 мм., изготавливалась методом ЛУТ. Фотография готовой платы приведена ниже:




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

НЧ генератор DDS на данный момент формирует 8 сигналов: стандартных – синус, меандр, пила, треугольник и не очень – псевдошум, функцию типа cos(x) * sin(5x), затухающие волны синуса и прямоугольный сигнал с изменяющейся скважностью с шагом в ≈1%. Последние три таблицы были случайно найдены в недрах Интернета и вставлены для коллекции – при желании их можно поменять на что-то более полезное. Прямоугольный сигнал с изменяющейся скважностью – более полезная вещь и под него была написана подпрограмма. 

Как это работает.

Теоретический принцип работы DDS описан во многих статьях, но для нашего случая теорию можно опустить и довольствоваться следующими постулатами: выходная частота генератора AD9851 зависит от тактовой частоты, управляющего двоичного 32-х разрядного слова, задающего частоту, и 8-ми битовой посылки для конфигурации микросхемы прямого синтеза. Итого – 40-битная последовательная посылка DATA и CLOCK с защелкой данных по сигналу FQUD. Таким образом, задав нужную частоту для генератора AD9851, мы получаем на его выходах синусоидальный и прямоугольный сигналы, которые генерируются в дальнейшем самостоятельно до принудительной смены. Для генерации сигнала произвольной формы непосредственно микроконтроллером после нажатия кнопки Run/stop в его оперативную память загружается таблица данных и на порт D в замкнутом цикле выводятся значения формы сигнала. Выход из цикла осуществляется при повторном нажатии кнопки Run/stop. 

На приведенных ниже картинках показаны некоторые выходные результаты:

 


Внимание: Так как у меня в корпусе TQFP были только Atmega88P, соответственно выходной файл скомпилирован под них же. Немножко был обескуражен отсутствием поддержки данного камня в Pony Prog под STK200, но проблему удалось решить программированием непосредственно из-под Васика. Версия 11.9.8 не поддерживает тип данных типа DWord. Для желающих перекомпилировать можно предложить следующее решение – поменять в строке данных Dta последние значения и тип переменной DWord поменять на Long. Или в принципе поменять алгоритм расчета на предложенный камрадом Aleks8383 - до частот 70 МГц он будет работать.

Файлы проекта:

Источник: www.avrproject.ru


C этой схемой также часто просматривают:

Генератор видеосигнала на микроконтроллере PIC16F84
Генератор телевизионных сигналов на простых микросхемах
ПРОСТОЙ ГЕНЕРАТОР СИГНАЛОВ НЧ И ВЧ
ГЕНЕРАТОР ИМПУЛЬСОВ НА PIC-КОНТРОЛЛЕРЕ
Широкодиапазонный функциональный генератор
Часы, термометр, барометр, гигрометр в одном флаконе
Стрелочный индикатор загрузки ЦП и оперативной памяти ПК
Детектор утечки бытового газа на датчике MQ-4
Собираем солнечную зарядку для устройств

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


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


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Паяльная станция на ручке паяльника

Повышающий регулятор мощности паяльника

Выключатель для настольной лампы

Схема регулятора температуры для паяльника на 36В

Аналоговый блок управления паяльной станции

Схема генератора сигналов специальной формы

Ограничитель мощности для паяльника без термопары

4 способа получения нужной температуры паяльника

СВАРОЧНЫЙ МАЛОГАБАРИТНЫЙ...

ПРОСТОЙ РЕГУЛЯТОР ТЕМПЕРАТУРЫ ЖАЛА ПАЯЛЬНИКА



© 2003—2024 «KAZUS.RU - Электронный портал»