exos
>
о компании 
>
бытовая электроника 
>
электроника для PC 
>
измерения 
>
kuChronos 





     


Генератор на PIC16F84A и AD9850


Автор: С. Кулешов
Опубликовано: Журнал "Радио", 3/2004

Измерительные генераторы, в которых требуемое значение частоты устанавливают с помощью клавиатуры, читателям журнала известны (см., например статью Пискаева А. "Частотомер-генератор-часы" в "Радио, 2002, ј 7, с. 31, 32). Как правило, эти приборы выполнены на микроконтроллере, диапазон генерируемых частот ограничен несколькими мегагерцами, а получение точного значения частоты невозможно. Описываемый в статье генератор тоже содержит микроконтроллер, но использован он только для управления специализированной микросхемой - синтезатором частоты AD9850. Применение этой микросхемы позволило расширить диапазон генерируемых частот от долей герца до 60 МГц, в пределах которого можно получить любое значение частоты с точностью 1 Гц.

Предлагаемый генератор выполнен на базе микросхемы AD9850 фирмы Analog Devices, представляющей собой полный DDS (Direct Digital Synthesis) синтезатор частоты с встроенным компаратором. Такие синтезаторы уникальны своей точностью, практически не подвержены температурному дрейфу и старению (единственным элементом, который обладает свойственной аналоговым устройствам нестабильностью, является цифроаналоговый преобразователь). Благодаря высоким техническим характеристикам DDS синтезаторы в последнее время вытесняют обычные аналоговые синтезаторы частоты. Их основное преимущество - очень высокое разрешение по частоте и фазе, управление которыми осуществляется в цифровом виде. Цифровой интерфейс позволяет легко реализовать микроконтроллерное управление. С более подробным описанием принципов прямого цифрового синтеза частоты можно познакомиться, например, в [1].
рис.1 Структурная схема синтезатора AD9850 изображена на рис. 1. Его основа - аккумулятор фазы, формирующий код мгновенной фазы выходного сигнала. Этот код преобразуется в цифровое значение синусоидального сигнала, который с помощью ЦАП превращается в аналоговый и подвергается фильтрации. Компаратор позволяет получить выходной сигнал прямоугольной формы. Его частота fout (в герцах) определяется формулой Fout = d * Fin/2^32, где fin - тактовая частота, Гц, а d - 32-битное значение кода частоты. Максимальное значение fout не может превосходить половины тактовой частоты.

Основные технические характеристики AD9850 (при напряжении питания 5В) следующие:
Частота тактового генератора, МГц 1..125
Максимальный потребляемый ток (при Fin = 125 МГц), мА 96
Число разрядов ЦАП 10
Максимальный выходной ток ЦАП (при Rset = 3,9 кОм), мА 10,24
Максимальная интегральная нелинейность ЦАП, МЗР 1
Напряжение на выходе компаратора, В:  
   минимальное высокого уровня 4,8
   максимальное низкого уровня 0,4

Для загрузки данных в микросхеме AD9850 предусмотрены параллельный и последовательный интерфейсы. В последнем случае данные (слово длиной 40 бит) вводят через ее вход D7. Каждый бит данных сопровождают импульсом положительной полярности на входе синхронизации W_CLK. После загрузки управляющего слова по импульсу положительной полярности на входе FQ_UD происходит замена параметров генерации новыми. Назначение бит управляющего слова приведено в табл. 1. табл.1
Принципиальная схема генератора изображена на рис. 2. Управляет синтезатором DD2 микроконтроллер DD1. Он опрашивает клавиатуру SB1_SB16, выводит информацию на ЖК индикатор HG1, вычисляет значение кода частоты и передает его по последовательному интерфейсу в синтезатор DD2. Звукоизлучатель HA1 служит для подтверждения нажатия кнопок клавиатуры. Микросхема AD9850 (DD2) использована в стандартном включении [2]. На выходе ее ЦАПа включен фильтр Z1. После фильтра сигнал синусоидальной формы подается на гнездо XW2 и на вход компаратора микросхемы DD2 (вывод 16). С выхода последнего сигнал прямоугольной формы поступает на гнездо XW1. В качестве тактового генератора для DDS применен кварцевый генератор G1. Подстроечным резистором R7 регулируют контрастность изображения на индикаторе HG1.
После сброса микроконтроллера производится настройка ЖК индикатора HG1 на режим обмена по шине 4 бита, что необходимо для уменьшения числа линий ввода/вывода, требуемых для записи информации.
рис.2
Управляют генератором с помощью клавиатуры, состоящей из кнопок SB1-SB16. Поскольку все линии порта B, являющиеся входными, подключены к источнику питания через резисторы, необходимости во внешних резисторах, "подтягивающих" порты RB5-RB7 к линии питания, нет. Резисторы R1-R4 защищают выходы микроконтроллера от перегрузки при случайном нажатии нескольких кнопок одновременно.
Требуемую частоту устанавливают с клавиатуры. Для этого, нажимая на кнопки с соответствующими цифрами, вводят нужное значение (в герцах) и нажимают кнопку "*". Если частота не превышает максимально допустимой, на индикаторе на короткое время появляется сообщение "OK" и генератор переходит в рабочий режим, а если превышает, - сообщение "Error". В этом случае нужно нажать кнопку "C" ("Сброс") и заново набрать правильное значение. Точно так же поступают и при ошибке в процессе ввода частоты. Двукратное нажатие этой кнопки переводит прибор в рабочий режим с установленным ранее значением частоты.
В рабочем режиме в крайнем правом знакоместе индикатора мигает символ звездочки. Если текущее значение частоты введено с внешнего блока управления (например, с компьютера), то чтобы вернуться к частоте, отображаемой на индикаторе, достаточно нажать кнопку "*".
Кнопки "U" (Up - вверх) и "D" (Down - вниз) позволяют ступенчато изменять выходную частоту генератора, соответственно увеличивая или уменьшая значение десятичного разряда на единицу. Требуемый десятичный разряд выбирают, перемещая курсор кнопками "L" (Left - влево) и "R" (Right - вправо).
При нажатии кнопки "*" значение частоты и позиция курсора сохраняются в энергонезависимой памяти микроконтроллера, благодаря чему при следующем включении питания прерванный режим работы автоматически восстанавливается.
Поскольку вычислительные способности микроконтроллера ограничены, значение выходной частоты выставляется с точностью порядка 1 Гц, что достаточно для большинства случаев. Чтобы в полной мере реализовать возможности синтезатора, им можно управлять с помощью ПК. Для этого генератор необходимо доработать, дополнив его узлом, схема которого показана на рис. 3. ПК (или иное управляющее устройство) подключают к розетке XS1. При низком логическом уровне на адресных входах A мультиплексоры микросхемы DD3 подключают входы управления синтезатором к микроконтроллеру DD1, а при высоком - к внешнему устройству. Сигналы управления поступают через контакт "ENABLE" розетки XS1. Резистор R19 обеспечивает низкий логический уровень на адресных входах DD3 при неподключенном устройстве управления. рис.3
Генератор собран и испытан на макетной плате. Если не удастся приобрести плату под корпус SSOP для микросхемы DD2, можно использовать для подключения ее выводов к соответствующим контактным площадкам короткие (длиной 10_15 мм) отрезки луженого провода диаметром 0,2 мм. Выводы 1, 2, 5, 10, 19, 24, 26, 27, 28 соединяют с общим проводом одним отрезком большей длины.
ЖК индикатор HG1 - ITM1601 (16-символьный однострочный с встроенным контроллером). HA1 - любой пьезоэлектрический излучатель звука с встроенным генератором, рассчитанный на напряжение 5 В. В качестве тактового генератора (G1) можно использовать микросборку кварцевого генератора на частоту до 125 МГц, допустимо применение подобного узла с кварцевой стабилизацией и на дискретных элементах.
Управляющая программа микроконтроллера зависит от частоты тактового генератора. При программировании микроконтроллера в конфигурационном слове устанавливают следующие значения бит: тип генератора (OSC) - RC, сторожевой таймер (WDT) - выключен, задержка после включения питания (PWRTE) - разрешена.

Литература

1. Ридико Л. DDS: прямой цифровой синтез частоты. - Компоненты и технологии, 2001, ј 7, с.50-54.

2. AD9850, Complete DDS Synthesizer. - http://www.analog.com

> Скачать generatorAD9850.zip
  Генератор на PIC16F84A и AD9850)   







Все материалы, находящиеся на этом сайте, являются авторскими.
© 1997-2005 exos tech.
© 1997-2011 Кулешов С.В.