Лабораторный генератор сигналов на DDS » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Лабораторный генератор сигналов на DDS
    Автор публикации: alex Просмотров: 14981 Добавлен: 7-08-2012, 08:21 Комментарии: 0

         Генератор синусоидального напряжения — один из наиболее необходимых в любой лаборатории приборов. Однако генераторы промышленного производства имеют большие габариты, вес и довольно дороги. Самодельные аналоговые генераторы сложны по конструкции и не обеспечивают высокой точности установки и стабильности частоты выходного сигнала. Автор предлагает разработанную им конструкцию генератора на основе микросхемы прямого цифрового синтеза (DDS — Direct Digital Synthesizer), лишенного этих недостатков.
         С появлением микросхем прямого синтеза появилась возможность изготовить лабораторный генератор сигналов синусоидальной формы, имеющий довольно высокие параметры при относительно простой схеме и конструкции. Номинальный диапазон частот этого генератора — 0,1 Гц...6 МГц с возможностью увеличения верхнего предела до 11 МГц. Максимальная амплитуда сигнала — 7 В на нагрузке сопротивлением 50 Ом.

         Схема генератора показана на рис. 1. Его основа — микросхема AD9832BRU (DD2). Выбор обусловлен тем, что это одна из самых дешевых микросхем DDS. Синусоидальный сигнал формируется на выводе 14 микросхемы (DD2). Пассивный ФНЧ L1L2C8C9C10 с частотой среза 10 МГц очищает его спектр. Поскольку микросхема DD2 работает с однополярным питанием, необходимо сдвинуть к нулю среднее значение генерируемого ею сигнала. Это делает широкополосный дифференциальный усилитель AD8130AR (DA2). Напряжение сдвига уровня подается с резистивного делителя R4R15 на вывод 8 DA2, а входной сигнал — на его вывод 1. На том же усилителе реализован активный ФНЧ второго порядка с частотой среза 10 МГц и коэффициентом передачи 2.
         С выхода DA2 симметричный относительно нулевого уровня сигнал поступает на регулятор амплитуды R14. Применение здесь обычного переменного резистора, а не электронного аттенюатора, обусловлено стремлением упростить и удешевить конструкцию. Да и в практической работе гораздо удобнее вращать ручку, а не многократно нажимать на кнопки.
         С движка переменного резистора R14 сигнал подан на вход микросхемы DA3 для дальнейшего усиления. Коэффициент передачи усилителя определяется соотношением номиналов резисторов R21 и R22 в цепи обратной связи. Для изменения постоянной составляющей выходного сигнала в пределах от -5 до +5 В на вывод 4 DA3 подается напряжение с движка переменного резистора R17. Разомкнув контакты выключателя SA1, можно оперативно сделать сигнал симметричным относительно нуля.

         Неприятная особенность дифференциальных усилителей AD8130AR — склонность к самовозбуждению при работе на емкостную нагрузку. Для устранения этого эффекта в выходную цепь усилителя DA3 включен последовательно резистор R25. Он, конечно, уменьшает амплитуду сигнала при низкоомной нагрузке, но с этим в любительских условиях вполне можно смириться. Ведь входное сопротивление низкочастотной аппаратуры редко бывает меньше нескольких сотен ом.
         Хотя выходной ток усилителя AD8130AR может достигать 40 мА, длительная работа в таком режиме ведет к перегреву микросхемы и выходу ее из строя. Дополнительный защитный резистор R26 ограничивает выходной ток до безопасного даже при длительном замыкании выхода значения. При работе на низкоомную нагрузку этот резистор можно исключить выключателем SA2. Повышение надежности работы микросхем DA2 и DA3 достигается также снижением напряжения их питания до +9 и -9 В при допустимом +12,6 и -12,6 В.
         Работой микросхемы DDS управляет микроконтроллер DD1. К нему же подключен ЖКИ HG1 (две строки по 16 символов, встроенный контроллер HD44780). В нижней строке ЖКИ с точностью 0,1 Гц отображается заданное значение частоты выходного сигнала генератора. Его устанавливают с помощью кнопок SB1—SB4. Прежде всего, нажатиями на кнопки SB3 и SB4 переводят курсор на одну из отображаемых на табло цифр. Ее "вес" (0,1 Гц; 1 Гц; 10 Гц и т. д. до 1 МГц) определит шаг, с которым будет изменяться частота при нажатии и удержании кнопки SB1 или SB2. В верхней строке ЖКИ выводится значение периода генерируемого сигнала — в микросекундах, если частота менее 300 Гц, или в наносекундах, если она больше.

         Схема блока питания генератора изображена на рис. 2. Его выходные напряжения +5, +9 и -9 В стабилизированы соответственно микросхемами DA4—DA6. Резистор R27 ограничивает ток в цепи подсветки табло ЖКИ HG1. Подключение этой цепи к минусовому выходу выпрямителя объясняется стремлением равномернее распределить нагрузку между выходами.
         Частота генерируемого микросхемой DDS сигнала F определяется по формуле

    ,где Fmclk — тактовая частота; dPhase — 32-разрядный код частоты. Значения F и FMCLk выражены в одних и тех же единицах, например в герцах. Поскольку dPhase может быть только целым числом, при тактовой частоте 25 МГц дискретность установки частоты получается около 0,006 Гц.
         Программа, загруженная в микроконтроллер DD1, исходя из заданной частоты, вычисляет код dPhase и загружает его в микросхему DD2. Затем по этому значению рассчитывает и выводит на индикатор период генерируемого сигнала. Из-за описанной выше дискретности результат при частоте менее 10 Гц может заметно отличаться от полученного по формуле T=1/F.
         Вопреки распространенному мнению о примитивности и несовершенстве системы команд микроконтроллеров PIC, двух килобайт внутренней памяти и 35 команд оказалось вполне достаточно для проведения всех расчетов без каких-либо упрощений и округлений. Поэтому точность установки частоты определяется лишь разрядностью внутренних регистров микросхемы DDS, а также точностью и стабильностью частоты интегрального кварцевого генератора G1.
         Микроконтроллер DD1 сконфигурирован на работу от встроенного тактового RC-генератора с внешней частотозадающей цепью. Тактовая частота должна быть равна 4 МГц. Ее можно проконтролировать на выводе 15 микроконтроллера, а при необходимости подкорректировать подборкой элементов R3 и С3. На точность установки выходной частоты прибора отклонение тактовой частоты микроконтроллера от номинала не влияет.
         Если в течение примерно 3 с не нажимать ни на одну из кнопок SB1 — SB4, микроконтроллер перейдет в "спящий" режим, при этом останавливается и его тактовый генератор. Однако микросхема DDS продолжает работать, сигнал на выходе прибора остается прежним, а ЖКИ показывает его частоту. С нажатием на любую кнопку работа микроконтроллера возобновляется.
         В генераторе можно использовать как устаревший, но широко распространенный микроконтроллер PIC16F84A, так и более новый, имеющий такое же число и назначение выводов PIC16F628. Последний предпочтителен, так как в нем имеется встроенный тактовый генератор на 4 МГц, не требующий для своей работы внешних элементов. Так что резистор R3 и конденсатор СЗ в этом случае не нужны, вывод 16 микроконтроллера оставляют свободным. Разработаны и прилагаются к статье варианты программы для микроконтроллеров обоих типов.
         Детектор понижения напряжения DA1 подключен нетрадиционно — не к входу начальной установки микроконтроллера, а к входу запроса прерывания программы INT (RBO). В случае предшествующего, как правило, полному выключению прибора снижения напряжения питания микроконтроллера выполняется подпрограмма обработки прерывания, записывающая в EEPROM текущее значение частоты. При следующем включении генератора эта частота будет восстановлена. Детектор PST529C может быть заменен другим с напряжением срабатывания 4,3...4,7 В. Например, отечественным КР1171СП47.

         ЖКИ МТ16S2Q-2YLG в настоящее время снят с производства, производитель рекомендует заменять его на MT16S2R-2YLG. При использовании других аналогичных ЖКИ (например, WH-1602) может потребоваться отключить вывод 3 индикатора от общего провода и с помощью подстроечного резистора номиналом 10 кОм подобрать напряжение на нем в пределах 0...+5 В, обеспечивающее наилучшую контрастность изображения.
         Печатная плата генератора и его блока питания изображена на рис. 3. Некоторые элементы (микросхемы DD2, DA2, DA3, резисторы и конденсаторы типоразмера 0805 для поверхностного монтажа) размещены на стороне печатных проводников.
         Катушки L1 и L2 индуктивностью 6 мкГн можно намотать проводом ПЭВ-2 диаметром 0,15...0,2 мм на ферритовых кольцах с начальной магнитной проницаемостью 100...400 и внешним диаметром 5...7 мм. Число витков лучше подобрать экспериментально с помощью измерителя индуктивности или добиваясь резонанса параллельного контура, составленного из катушки и конденсатора емкостью 51 пФ, на частоте около 10 МГц. На плате предусмотрена и возможность установки готовых катушек индуктивности в оформлении для поверхностного монтажа. Контактные площадки для них обозначены L1' и L2'. Дроссель L3 —ДМ-0,1.
         Некоторые резисторы, как показано на рис. 4, смонтированы непосредственно на выводах переменных резисторов, кнопок и переключателей, размещенных на верхней крышке корпуса генератора. Конденсатор С15 составлен из двух меньшей емкости, соединенных параллельно. Также из двух параллельных резисторов составлен резистор R27.
         Трансформатор Т1 должен давать напряжение 2x12 В при токе 100 мА. Переменный резистор R14 — СП5-20ВБ. Увеличивать его номинал более 1,5 кОм не следует, это приведет к сильной зависимости амплитуды выходного сигнала от частоты.
         Налаживание генератора заключается в установке подстроечным резистором R4 симметричного относительно нуля синусоидального напряжения на верхнем по схеме выводе переменного резистора R14. При необходимости максимальную амплитуду сигнала на выходе генератора можно изменить подборкой резистора R21, а пределы регулирования его постоянной составляющей — подборкой резистора R19.
         Теоретически максимальная генерируемая DDS частота равна половине тактовой. На практике выше 1/4 тактовой частоты начинается резкий спад амплитуды сигнала, который в какой-то степени можно скомпенсировать, усложняя выходной фильтр. Но налаживание генератора при этом также резко усложнится. В данной конструкции максимальная частота выбрана равной 6 МГц. Однако учитывая, что радиолюбители предпочитают реализовывать возможности своих приборов по максимуму, программа микроконтроллера позволяет установить частоту и 11 МГц, но амплитуда и форма выходного сигнала при этом не гарантируются.

    В архиве исходный код программы на ассемблере, прошивка и схема в формате SprintLayout

    gendds.rar [54,25 Kb] (cкачиваний: 773)

    Комментарии