{ Регистр SPORT0_Control_Reg = 0x3FF6 (Регистр управления SPORT0)    }

{ Биты:     FEDCBA9876543210                                         }

{ Исх.сост: 0000000000000000                                         }

    ax0 = b#1100011100110111; DM(SPORT0_Control_Reg) = ax0;

{ Регистр SPORT0_SCLKDIV = 0x3FF5 (Модуль деления последов. такт. импульсов) }

{           частота CLKOUT внутренняя удвоенная частота процессора           }

{ SCLKDIV = ------------------------------------------------------ - 1;      }

{(кадр.с.и.)      2*(частота SCLK синхронизация бит порта)                   }

{                                                                            }

{ SCLKDIV =(( 2*16384КГц ) / ( 2*2048КГц )) -1=8-1=7                         }

      ax0 = 7; DM(SPORT0.SCLKDIV) = ax0;

{Регистр SPORT0_RFSDIV = 0x3FF4 (Модуль деления последоват. такт. импульсов) }

{          частота SCLK                                                      }

{ RFSDIV = ------------ - 1;                                                 }

{          частота RFC                                                       }

{ RFSDIV = 2048КГц / 8КГц - 1 = 256-1 = 255                                  }

     ax0 = 255; DM(SPORT0_RFSDIV) = ах0;

{Регистр SPORT0_Autobuf = 0x3FF3 (Регистр управления автобуферизацией SPORT0)}

{ Биты:     FEDCBA9876543210                                                 }

{ Исх.сост: 0000XXXXXXXXXX00                                                 }

    ax0 = b#0000011110101011; DM(SPORT0_Autobuf) = ах0;

{ Регистр SPORT1_Control_Reg = 0x3ff2 (Регистр управления SPORT1)            }

{ Биты:     FEDCBA9876543210                                                 }

{ Исх.сост: 0000000000000000                                                 }

    ax0 = b#0111101001001001; DM(SPORT1_Control_Reg) = ах0;

{Регистр 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++

В этой части книги говорится об установке на компьютер современного средства разработки программ для сигнальных процессоров — программного пакета Visual DSP++, его запуске и работе. Приводятся примеры программ и их отладка в среде разработки. Демонстрируется спектральный анализ сигнала с помощью Visual DSP++. Рассказывается о программировании на Си в данной среде разработки.

Глава 22. Установка

В этой главе говорится об установке на компьютер современного средства разработки программ для сигнальных процессоров — программного пакета Visual DSP++.

Введение

После знакомства с архитектурой и аппаратными блоками сигнального процессора, а также с его

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

1

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×