{Регистр SPORT1_SCLKDIV = 0x3FF1 (Модуль деления последоват. такт. импульсов)}
{ частота CLKOUT внутренняя удвоенная частота процессора }
{ SCLKDIV = ------------------------------------------------------ - 1; }
{(кадр.с.и.) 2*(частота SCLK синхронизация бит порта) }
{ }
{ SCLKDIV = (( 2 *16384КГц ) / ( 2*115200 Гц )) -1 = 142-1 = 852 }
ax0 = 141; DM(SPORT1_SCLKDIV) = ax0; { 115200 бод }
{ Регистр SPORT1_RFSDIV = 0x3FF0 (Модуль деления последоват. такт, импульсов)}
{ частота SCLK }
{ RFSDIV = ------------ - 1; (или число бит в пакете -1) }
{ частота RFC }
{ RFSDIV = 19200 Гц / 1920 Гц - 1 = 10-1 = 9 }
ax0 = 9; DM(SPORT1_RFSDIV) = ax0;
{Регистр SPORT1_Autobuf = 0x3FEF (Регистр управления автобуферизацией SPORT1)}
{ Биты: FEDCBA9876543210 }
{ Исх.сост: 0000XXXXXXXXXX00 }
ax0 = b#0000000000000000; DM(SPORT1_Autobuf) = ax0;
В первых двух блоках программы разрешается работа первого канала приемника SPORT0. В следующих двух блоках программы разрешается работа нулевого и первого канала передатчика SPORT0. Далее в регистр SPORT0_Control_Reg заносится информация о длине слова, формате данных, выравнивании слова, типе компандирования, инвертировании кадровых импульсов и др. режимов работы порта. После чего вычисляется коэффициент деления для тактовой частоты синхронизации SCLK и записывается в регистр SPORT0_SCLKDIV. Аналогично, в следующем блоке программы, производится вычисление коэффициента деления для тактовой частоты кадровых импульсов и запись этого значения в регистр SPORT0_RFSDIV. Завершается конфигурирование SPORT0 записью режима работы порта в регистр управления автобуферизацией SPORT0_Autobuf. Аналогично производится конфигурирование порта SPORT1.
Прием и передача данных через порты могут осуществляться с помощью регистров передатчика TX0, TX1 и регистров приемника RX0, RX1 в портах SPORT0 и SPORT1 соответственно. Эти регистры не отображены в карте памяти процессора, но распознаются мнемоникой ассемблера. Доступ к этим регистрам обеспечивается в произвольный момент во время выполнения программы. Например, следующая команда записывает данные из регистра AX0 в регистр передатчика SPORT1:
TX1 = AX0; {Содержимое регистра AX0 передается в порт SPORT1}
Естественно, что перед этим SPORT1 должен быть программно сконфигурирован ранее описанными командами.
Следующая команда запишет принятые данные из регистра приемника порта SPORT0 в регистр AX0:
AX0 = RX0; {Содержимое регистра приема SPORT0 записывается в регистр AX0}
Часть IV. Среда разработки Visual DSP++
Глава 22. Установка
После знакомства с архитектурой и аппаратными блоками сигнального процессора, а также с его системой команд и директивами языка программирования, пришло время познакомиться с программами, реализующими различные методы математической обработки с помощью сигнального процессора.
В предыдущих материалах мы рассмотрели средства программирования сигнальных процессоров для операционной системы MS DOS. В настоящее время существует более мощное и современное средство программирования для операционной системы Windows, которое носит название Visual DSP++.
Для знакомства с новыми примерами программ удобнее использовать Visual DSP++, поскольку он имеет интегрированный интерфейс разработчика и обладает мощными средствами визуализации и отладки программ. В этом читатели вскоре смогут убедиться самостоятельно.
Программный пакет Visual DSP++ свободно распространяется фирмой Analog Device со своего сервера в Интернете. Он представляет собой тестовую (trial) версию и может быть загружен по адресу http://www.analog.com/processors/resources/crosscore.
Кроме самого программного пакета, необходимо скачать инсталлятор лицензий и пройти бесплатную регистрацию на сервере для получения лицензии.