Найти в Дзене
Tcukavin13

AD9833 – программируемый генератор сигналов от Analog Devices

Подключение микросхемы прямого цифрового синтеза AD9833 к микроконтроллерам STM32.

AD9833 представляет собой программируемый генератор сигналов способный воспроизводить синусоидальные, треугольные и прямоугольные сигналы заданной частоты и фазы. При частоте тактирования микросхемы равной 25 МГц может быть достигнуто разрешение настройки по частоте 0,1 Гц (28-битная разрешающая способность).

Микросхема AD9833 на оценочной плате.
Микросхема AD9833 на оценочной плате.

Программирование осуществляется через трехпроводной последовательный интерфейс SPI с частотой тактового сигнала до 40 МГц. Данные загружаются в устройство кадрами по 16-бит. Вход FSYNC (активный низкий уровень) используется для синхронизации кадров, а также как chip select микросхемы. Данные могут быть переданы в устройство только если FSYNC находится в логическом нуле. Для запуска последовательной передачи FSYNC нужно перевести в логический ноль при условии, что на SCLK находится логическая единица.

Микросхема содержит два 28-разрядных регистра частоты FREQ0 и FREQ1 и два 12-разрядных регистра фазы PHASE0 и PHASE1. Регистры, которые используются для генерации выходного сигнала в данный момент определяются битами FSELECT и PSELECT регистра управления. Если бит FSELECT = 0 – работаем с регистром FREQ0, если FSELECT = 1 – работаем с регистром FREQ1. Аналогично для фазы.

На выходе микросхемы будет сигнал с частотой:

-2

Fout - частота на выходе микросхемы (в герцах), Fmclk - частота тактирования микросхемы (в герцах), FREQx - значение выбранного регистра частоты.

Фаза сигнала на выходе микросхемы:

-3

φ - фаза выходного сигала (в радианах), PHASEx - значение выбранного регистра фазы.

Регистр управления (Control Register).

AD9833 содержит один 16-битный регистр управления. С помощью этого регистра и настраивается микросхема.

Control Register AD9833.
Control Register AD9833.

Бит D13 Так как регистры частоты у нас 28-битные, то для загрузки полного слова в любой из регистров частоты требуются две 16-битные операции записи. Установка бита D13 в единицу позволяет загрузить полное слово (28 бит) в регистр частоты двумя следующими друг за другом операциям записи. Первая запись содержит 14 LSB (14 младших бит) слова частоты, вторая запись содержит 14 MSB (14 старших бит).

Первые 2 бита каждого 16-битного кадра SPI определяют тот регистр частоты, в который должно быть загружено слово, и таким образом, эти первые 2 бита должны быть одинаковыми для обоих следующих друг за другом записей.

Запись в регистр частоты происходит после того, как будут загружены оба слова, таким образом, регистр никогда не получит промежуточную величину частоты.

Когда D13 равно нулю, 28-битный регистр частоты работает как два 14-битных регистра, один из которых содержит 14 MSB, а другой 14 LSB. Это означает, что 14 MSB слова частоты может быть поменяно независимо от 14 LSB, и наоборот.

Бит D12 – этот бит управления позволяет отдельно загрузить биты MSB или биты LSB регистра частоты. Это полезно, если не требуется полная 28-битная разрешающая способность.

Бит HLB показывает, куда попадут загружаемые 14 бит - в MSB или LSB адресованного регистра частоты. Бит D13 должен быть установлен в 0, чтобы можно было раздельно менять биты MSB и LSB слова частоты. Когда D13 = 1, этот бит управления игнорируется. HLB = 1 позволяет записать 14 MSB адресованного регистра частоты, и соответственно HLB = 0 позволяет записать 14 LSB адресованного регистра частоты.

Бит D11 – определяет, какой из регистров частоты используется.

Бит D10 – определяет, какой из регистров фазы используется.

Бит D8 – установка бита D8 в единицу сбросит внутренние регистры микросхемы в 0, при этом аналоговый выход перейдет в среднее состояние. Сброс не сбрасывает регистры фазы, частоты или управления.

Бит D7 – когда бит установлен в 1, действие внутренней частоты MCLK запрещается, и выход DAC остается в своем текущем состоянии.

Бит D6 – установка бита D6 в единицу выключает встроенный DAC. Это полезно, например, когда AD9833 используется для формирования прямоугольного сигнала на выходе и DAC нам не ужен.

Бит D5 – этот бит совместно с битом D1 (mode) управляют, формой сигнала на выходе VOUT. Когда D5 = 1, на ножку VOUT выводится прямоугольный сигнал, с частотой смены состояния бита MSB (старший бит) данных DAC (или с частотой в два раза меньше если бит D4 сброшен).

Когда бит D5 = 0, выход DAC подключается к VOUT. Бит D1 (mode) определяет, какая будет форма сигнала на выходе - синусоидальная или треугольная.

Бит D3 – используется вместе с битом D5 (OPBITEN). Используется для деления частоты прямоугольного сигнала в 2 раза.

Бит D1 – Этот бит используется вместе с битом D5 (OPBITEN). Он управляет, какой сигнал появляется на выводе VOUT, когда для формирования сигнала используется выход DAC. Этот бит должен быть установлен в 0, если управляющий бит OPBITEN = 1. Когда D1 = 1, SIN ROM пропускается, в результате на выходе DAC появляется треугольная форма сигнала. Когда D1 = 0, SIN ROM используется для преобразования информации фазы в информацию амплитуды, в результате чего на выходе появляется синусоидальный сигнал.

Формирование 16-битного кадра SPI.

Старшие два бита D15 и D14 используются для адресации регистра, в который ведётся запись. В битах D13…D0 содержатся данные.

При этом если необходимо поменять все содержимое регистра частоты, необходимы две следующие друг за другом операции записи по одному и тому же адресу, потому что регистры частоты имеют разрядность 28 бит. Первая запись содержит 14 младших бита (LSB), и вторая запись содержит 14 старших битов (MSB). Для этого режима работы должен быть установлен бит D13 в регистре управления (Control Register).

При необходимости поменять только 14 MSB, либо только 14 LSB регистра частоты (грубая/тонкая настройка), нужно сбросить управляющий бит D13 в регистре управления (Control Register). Тогда 28-битный регистр частоты работает как два 14-битных регистра, в одном из которых содержатся 14 MSB, а в другом содержатся 14 LSB. Это означает, что 14 бит MSB слова частоты можно поменять независимо от 14 бит LSB, и наоборот. Бит D12 (HLB) в регистре управления (Control Register) выбирает, какие из этих 14 бит будут изменены.

При записи фазы, бит D13 кадра указывает какой регистр фазы будет загружен PHASE0 или PHASE1

Адресация регистров с помощью битов D15 и D14.
Адресация регистров с помощью битов D15 и D14.

Написание библиотеки и тестирование с STM32f4 в следующей статье: https://zen.yandex.ru/media/id/5fe304c1a715f22974d3be05/ad9833--programmiruemyi-generator-signalov-ot-analog-devices-programmirovanie-600a8a402004fb39325c2998