Регистры управления работой последовательных портов
Регистры конфигурирования и управления работой последовательных портов являются частью множества регистров IOP-процессора. Каждый последовательный порт имеет собственный набор 32-битных регистров управления и буферов данных.
Последовательный порт программируется путем записи нужных значений по соответствующим адресам памяти, в которых отображаются регистры последовательного порта. При модификации значений регистров управления последовательным портом изменения вступают в силу через один такт после операции записи. Таким образом, SPORTn будет готов начать передачу или прием данных через два цикла после того, как он будет разрешен установкой соответствующего бита в STCTLn или SRCTLn.
Регистр | Функция |
STCTLn | регистр управления передачей через SPORTn |
TXn | буфер данных при передаче |
TDIVn | тактовый и кадровый делители частоты при передаче |
MTCSn | выбор каналов при многоканальной передаче |
MTCCSn | режим компандирования для каждого канала при многоканальной передаче |
SRCTLn | регистр управления приемом |
RXn | буфер данных при приеме через SPORTn |
RDIVn | тактовый и кадровый делители частоты при приеме |
MRCSn | выбор каналов при многоканальном приеме |
MRCCSn | режим компандирования для каждого канала при многоканальном приеме |
SPATHn | длина пути (для многопроцессорной системы). Разрядность – 16 бит |
KEYWDn | режим сравнения (только для ADSP-21061) |
KEYMASKn | маска для режима сравнения (только для ADSP-21061) |
Основными регистрами управления последовательным портом являются его регистры STCTL и SRCTL.
Регистр STCTL
Биты | Поле | Функция |
SPEN | разрешение передачи через последовательный порт | |
1-2 | DTYPE | формат передаваемых данных |
SENDN | направление передачи (=1 – с младших битов слова; =0 – со старших битов слова) | |
4-8 | SLEN | = длина передаваемых слов – 1 |
PACK | распаковка данных (передавать одно 32-битное слово как два 16-битных) | |
ICLK | внутренняя генерация сигнала синхронизации данных на передачу | |
--- | зарезервировано | |
CKRE | синхронизация по переднему/заднему фронту сигналов синхронизации данных и кадров при передаче | |
TFSR | режим кадровой синхронизации при передаче | |
ITFS | внутренняя генерация сигнала кадровой синхронизации при передаче | |
DITFS | зависимость сигнала кадровой синхронизации от данных при передаче | |
LTFS | активный уровень сигнала кадровой синхронизации (=0 – высокий, =1 – низкий) при передаче | |
LAFS | поздний сигнал кадровой синхронизации при передаче | |
SDEN | включение DMA-пересылки при передаче | |
SCHEN | разрешение цепочечной DMA при передаче | |
20-23 | MFD | задержка кадра в многоканальном режиме при передаче |
24-28 | CHNL | статус текущего канала при передаче |
TUVF | флаг потери значимости (underflow) в буфере передачи | |
30-31 | TXS | статус буфера передачи (=11 – буфер полон, =00 – буфер пуст, =10 – буфер частично заполнен) |
Регистр SRCTL
Биты | Поле | Функция |
SPEN | разрешение приема через последовательный порт | |
1-2 | DTYPE | формат принимаемых данных |
SENDN | направление приема (=1 – с младших битов слова; =0 – со старших битов слова) | |
4-8 | SLEN | = длина принимаемых слов – 1 |
PACK | упаковка данных (принимать два 16-битных слова как одно 32-битное) | |
ICLK | внутренняя генерация сигнала синхронизации данных при приеме | |
--- | зарезервировано | |
CKRE | синхронизация по переднему/заднему фронту сигналов синхронизации данных и кадров при приеме | |
RFSR | режим кадровой синхронизации при приеме | |
IRFS | внутренняя генерация сигнала кадровой синхронизации при приеме | |
IMODE | режим сравнения при приеме данных (только для ADSP-21061) | |
LRFS | активный уровень сигнала кадровой синхронизации (=0 – высокий, =1 – низкий) при приеме | |
LAFS | поздний сигнал кадровой синхронизации при приеме | |
SDEN | включение DMA-пересылки при приеме | |
SCHEN | разрешение цепочечной DMA при приеме | |
IMAT | режим принятия значения в режиме со сравнением (=1 – принять слово, если результат сравнения ложный, =0 –если истинный) | |
D2DMA | разрешить режим 2-мерной DMA | |
SPL | подавать на вход значения с выхода того же порта (режим loopback, используется для тестирования) | |
MCE | разрешение многоканального режима | |
24-28 | NCH | количество каналов – 1 (в многоканальном режиме) |
ROVF | флаг переполнения (overflow) буфера приема | |
30-31 | RXS | статус буфера приема (=11 – буфер полон, =00 – буфер пуст, =10 – буфер частично заполнен) |
Для тестирования программ, использующих обмен данными через последовательный порт, может использоваться режим зацикливания порта, устанавливаемый битом SPL в регистре SRCTLn. В этом режиме сигналы на линиях DRx, RCLKx и RFSx порта всегда равны сигналам DTx, TCLKx и TFSx того же порта. Активными являются только сигналы передающей части последовательного порта, тогда как сигналы его приемной части игнорируются. Многоканальный режим при зацикливании не поддерживается.