42462

Пример работы с АЦП 5101НВ015 на отладочной плате 1967ВН044

Дата последнего изменения: 30.07.2021 16:00:22
В данной статье рассмотрен пример работы с АЦП 5101НВ015 на отладочной плате для процессора 1967ВН044. Проект для среды CM-LYNX приложен в конце статьи - "Файлы для скачивания".

В процессоре 1967ВН044 реализовано два LINK-порта связи, работающих по стандарту LVDS. LINK-порты связи позволяют обеспечить взаимодействие с различными внешними устройствами, например, АЦП, ЦАП, процессоры 1967ВН028 и 1967ВН044. Для работы с микросхемами АЦП и ЦАП в контроллер портов связи процессора 1967ВН044 были добавлены специальные функции, позволяющие выполнять гибкую настройку приёмника и передатчика. Так, например, при приёме данных от АЦП есть возможность выбрать разрядность данных (10, 12, 14 или 16 бит), порядок приёма данных (четные биты передаются по фронту, нечетные по срезу), а также установить аппаратное преобразование из смещённого в дополнительный код (спецификация, таблица 127 – «Регистр LRCTL»).

Для демонстрации возможностей процессора 1967ВН044 по работе с внешним АЦП на отладочных платах установлена микросхема 5101НВ015.

Описание примера работы с АЦП 5101НВ015

В примере показана процедура настройки процессора 1967ВН044 и АЦП 5101НВ015. Для приёма данных от АЦП настраивается LINK-порт связи 0, для копирования полученных отсчётов из буфера порта связи в внутреннюю ОЗУ настраивается 8 канал DMA.

Инициализация АЦП выполняется по интерфейсу SPI. Так как подключение SPI сигналов от АЦП выполнено к выводам процессора, не имеющих функции для работы с контроллером SPI, то для взаимодействия с АЦП используется программная реализация SPI-интерфейса. В процессе инициализации АЦП также выполняется процедура калибровки.

После настройки процессора и АЦП осуществляется следующий алгоритм работы:
  1. Ожидается завершение работы DMA (флаг adc_dma_done).
  2. DMA копирует принятые данные из буфера порта связи в ОЗУ. По окончании передачи заданного количества данных (ADC_DMA_BUF_SIZE) DMA останавливается и возникает прерывание.
  3. В обработчике прерывания от DMA устанавливается флаг adc_dma_done, а также переключается состояние на выводе FLAG0. Переключение светодиода FLAG0 позволяет определить время выполнения одного цикла.
  4. В основном цикле вызывается функция для анализа полученных данных.
  5. В качестве анализа выполняется вычисление частотного спектра с помощью алгоритма БПФ, после чего определяется частота основной гармоники. Если частота основной гармоники совпадает с одной из указанных в примере (это 2 МГц, 4 МГц, 8 МГц), то загорается один из светодиодов FLAG1-FLAG3.
  6. После анализа запускается DMA для приёма данных и цикл повторяется.
Отсчёты, получаемые от АЦП, представляют собой знаковые 16-разрядные данные (12 бит выравнены по левой границе). После копирования во внутреннее ОЗУ отсчёты упакованы в 32-битные слова, по два отсчёта на слово. В файле "config.h" задаётся количество копируемых DMA 32-разрядных слов - ADC_DMA_BUF_SIZE, при этом количество полученных отсчётов составит 2*ADC_DMA_BUF_SIZE.

Параметры, используемые при анализе полученных данных, приведены в файле "analyze_adc_data.h":
SAMPLE_RATE_CLK = 20 МГц – тактовая частота АЦП;
INPUT_FREQ_1- INPUT_FREQ_3 = {2, 4, 8 МГц} – искомые частоты основных гармоник.

Особенности работы с АЦП 5101НВ015 на отладочной плате

Рисунок 1 - Микросхема АЦП 5101НВ015 на модуле процессорном

В качестве тактовой частоты АЦП используется сигнал, поданный на разъём X1. Входной сигнал для преобразования подаётся на разъём X17. Опорное напряжение АЦП задаётся внутренним источником UREFI = 1 В.

Вход АЦП OEN (разрешение выходов Q[13:0], CLKO, nCLKO) подтянут на плате с помощью резистора к шине общий, поэтому пока процессор не подаст на OEN напряжение высокого логического уровня, АЦП не будет выдавать данные.

Подключение шины данных АЦП 5101НВ015 к процессору 1967ВН044 выполнено по интерфейсу LVDS к LINK-порту 0, поэтому режим LVDS выбран по умолчанию (LVDSEN = 1). При передаче данных от АЦП к процессору есть особенность: АЦП передаёт чётные биты по срезу CLKO, а нечётные по фронту CLKO, при этом процессор ожидает получить данные наоборот - четные биты по фронту, а нечетные по срезу. На плате для обеспечения аппаратной совместимости тактовый сигнал CLKO от АЦП инвертирован (CLKO подключен к L0CLKIN, а nCLKO подключен к L0CLKIP).

Вывод Q12SEL подтянут на плате с помощью резистора R116 к питанию 1,8 В, поэтому АЦП работает в 12-разрядном режиме выходов (Q0 и Q1 находятся в высокоимпедансном состоянии). Необходимо отметить, что к процессору 1967ВН044 подключены все выходные линии Q0-Q13, а вывод Q12SEL имеет внутреннюю подтяжку к шине общий. Таким образом можно выбрать 14-разрядный режим работы выходов АЦП, убрав резистор R116.

Сохранить статью в PDF

Файлы для скачивания

Документация

Теги

Была ли статья полезной?