/*************************************************************************************************************
  Copyright (C) 2016-2022 JSC "ICC Milandr" 

*************************************************************************************************************/

/*
 *
 *  Файл:      readme.txt
 *  Описание:  Описание примера DOWN_ADC_5101NV015
 *
 *  История:
 *             06.10.22  - cоздан
 *
 */


/* Описание примера ----------------------------------------------------------------------------------------*/

В данном примере приведено, как настроить модуль DOWN для обработки данных, полученных портом связи от АЦП.

В примере выполняется настройка следующах блоков:
1) по интерфейсу SPI (реализован программно) конфигурируется АЦП 5101НВ015;
2) инициализируется порт связи 0 на приём данных от внешнего АЦП, при этом полученные данные передаются 
   напрямую в модуль DOWN;
3) инициализируется модуль DOWN 0 на приём и обработку данных от порта связи 0;
4) инициализируется контроллер DMA для сбора выходных данных от модуля DOWN в adc_dma_buf1 и adc_dma_buf2.

Приём данных от АЦП идёт непрерывно, поэтому в целях отладки анализируются только отсчёты из adc_dma_buf1. 
Полученные отсчёты с модуля DOWN перепаковываются процессором в формат complex_float - буфер adc_buf_cf, после 
чего для полученного массива данных формируется спектр - буфер adc_cfft_buf. В примере после построения спектра 
идёт команда NOP, на которой можно поставить точку останова для анализа полученных данных. С помощью функционала 
"Memory -> Data Chart" можно визуализировать буферы adc_buf_cf (данные, полученные с модуля DOWN) и 
adc_cfft_buf (спектр сигнала из adc_buf_cf).

В файле "config.h" выбирается частота дискретизации АЦП - FREQ_FS, а также частота ПЧ (частота цифрового 
гетеродина) - HETERODIN_FREQ. Для модуля DOWN установлен коэффициент децимации равный 128, таким образом
частота дискретизации сигнала, полученного на выходе модуля DOWN, будет составлять FREQ_FS/128.

По умолчанию в примере установлены следующие параметры:
* частота дискретизации АЦП: FREQ_FS = 20 МГц;
* частота ПЧ (частота цифрового гетеродина): HETERODIN_FREQ = 2 МГц;
* частота дискретизации сигнала, полученного на выходе модуля DOWN: 20 МГц / 128 = 156,25 кГц.

Обратите внимание, что частота гетеродина для блока DOWN рассчитывается по формуле Fпч = Fsc*STEP/65536 
(спецификация, п. "Модуль цифровой обработки UP/DOWN"), где Fsc - частота дискретизации. Не всегда полученная 
частота гетеродина Fпч точно соответствует заданной частоте HETERODIN_FREQ. Для данного примера STEP = 6553, 
поэтому частота Fпч = 1,999816 МГц, таким образом частотная расстройка между ПЧ и гетеродином составит 183 Гц.


/* Содержание каталога -------------------------------------------------------------------------------------*/

    - main.c               Основная программа
    - init.c, init.h       Функции инциализации блоков процессора
    - 5101HB015			   Библиотека для настройки АЦП 5101НВ015
    - project.ldf          Файл сценария для компоновщика
    - session.lldbinit     Файл инициализации периферии до запуска отладки
    - .cproject, .project  Файлы конфигурации проекта


/* Аппаратная и программная среда --------------------------------------------------------------------------*/

    - Интегрированная среда разработки CM-LYNX.
    - Отладочная плата для процессора 1967ВН044.

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

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


/* Использование -------------------------------------------------------------------------------------------*/

Для запуска примера необходимо выполнить следующие действия:
    - Создать новое или открыть существующее рабочее пространство (Workspace).
    - Выполнить импорт проекта "DOWN_ADC_5101NV015" в соответствии с 
      "ML_GUI_Руководство_пользователя_R_Vx", п. "Импорт существующего проекта".
    - Выполнить сборку проекта.
    - Создать конфигурацию отладки в соответствии с "ML_GUI_Руководство_пользователя_R_Vx", п. "Настройка 
      конфигурации и запуск отладки".
    - Запустить пример в режиме отладки.

Подробное описание библиотеки HAL с примерами использования функций приведено в каталоге по пути:
"CM-LYNX.x.yy.zz\toolchain\1967VN044\HAL\doc".
