Скачиваний:
180
Добавлен:
13.06.2014
Размер:
6.55 Mб
Скачать

29.7 Пользовательский интерфейс последовательно - параллельного интерфейса (spi)

Табл. 29-3. Карта регистров ППИ

Смещение

Регистр

Название регистра

Доступ

Значение после перезагрузки

0x00

Регистр управления

SPI_CR

Только запись

-

0x04

Регистр установки режима

SPI_MR

Чтение/запись

0x0

0x08

Регистр данных приемника

SPI_RDR

Только чтение

0x0

0x0C

Регистр данных передатчика

SPI_TDR

Только запись

-

0x10

Регистр состояния

SPI_SR

Только чтение

0x000000F0

0x14

Регистр разрешения прерываний

SPI_IER

Только запись

-

0x18

Регистр запрещения прерываний

SPI_IDR

Только запись

-

0x1C

Регистр маски прерываний

SPI_IMR

Только чтение

0x0

0x20 - 0x2C

Зарезервировано

-

-

-

0x30

Регистр выбора корпуса 0

SPI_CSR0

Чтение/запись

0x0

0x34

Регистр выбора корпуса 1

SPI_CSR1

Чтение/запись

0x0

0x38

Регистр выбора корпуса 2

SPI_CSR2

Чтение/запись

0x0

0x3C

Регистр выбора корпуса 3

SPI_CSR3

Чтение/запись

0x0

0x004C - 0x00F8

Зарезервировано

-

-

-

0x004C - 0x00FС

Зарезервировано

-

-

-

0x100 - 0x124

Зарезервировано для Периферийного ПДП контроллера

-

-

-

29.7.1 Регистр управления Последовательным периферийным интерфейсом.

Название: SPI_CR

Вид доступа: Только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

LASTXFER

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

-

7

6

5

4

3

2

1

0

SWRST

-

-

-

-

-

SPIDIS

SPIEN

  • SPIEN: разрешение работы интерфейса

0 =Не влияет.

1 = Разрешает интерфейсу прием и передачу данных.

  • SPIDIS: Запрещение работы интерфейса

0 =Не влияет.

1 = Запрещает интерфейс.

  • SWRST: Перезагрузка интерфейса программными средствами

0 =Не влияет

1 = Перезагружает интерфейс. Происходит программно запускаемая аппаратная перезагрузка интерфейса SPI.

  • LASTXFER: Последняя передача

0 =Не влияет.

1 = Текущий активный вывод NPCS будет снят после того, как завершится передача пакета, записанного TD. Если при установленном бите CSAAT осуществляется возможность сразу же отключить текущее периферийное устройство, сразу же, без задержки после завершения передачи установив высокий уровень соответствующего NPCS после завершения передачи.

29.7.2 Регистр выбора режима работы

Название: SPI_MR

Вид доступа: Запись/чтение

31

30

29

28

27

26

25

24

DLY BCS

23

22

21

20

19

18

17

16

-

-

-

-

PCS

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

-

7

6

5

4

3

2

1

0

LLB

-

-

MODFDIS

-

PCSDEC

PS

MSTR

  • MSTR: Режим ведущий/ведомый

0 =Интерфейс работает в режиме ведомого.

1 = Интерфейс работает в режиме ведущего.

  • PS: Выбор периферийного устройства

0 = Фиксированный выбор корпуса внешнего периферийного устройства.

1 = Изменяемый выбор периферийного устройства.

  • PCSDEC: Декодирование выбора корпуса

0 = Периферийные устройства непосредственно подключены к выводам выбора корпуса.

1 = Четыре вывода выбора корпуса подключаются к дешифрирующей логике для выдачи сигнала разрешения работы на одно из 16 (максимум) устройств.

SPI_CSR0 определяет сигналы выбора корпуса от 0 до 3. SPI_CSR1 определяет сигналы выбора корпуса от 4 до7. SPI_CSR2 определяет сигналы выбора корпуса от 8 до 11. SPI_CSR3 определяет сигналы выбора корпуса от 12 до14.

  • MODFDIS: Определение ошибки режима работы

0 =Определение ошибки режима работы запрещено.

1 = Определение ошибки режима работы разрешено.

  • LLB: Разрешение местного зацикливания

0 = Работа петли местного зацикливания запрещена.

1 = Работа петли местного зацикливания разрешена.

  • PCS: Выбор корпуса периферии

Применяется только в том случае, если используется фиксированный выбор периферии (PS=0).

Если PCSDEC = 0, то:

PCS = xxx0 NPCS[3;0] = 1110

PCS = xx01 NPCS[3:0] = 1101

PCS = x011 NPCS[3:0] = 1011

PCS = 0111 NPCS[3:0] = 0111

PCS = 1111 запрещено (ни одно периферийное устройство не выбрано)

(знаком "x" отмечены поля, данные в которых не имеют значения)

Если PCSDEC = 1, то:

Выходные сигналы NPCS[3:0] соответствуют значению PCS.

  • DLYBCS: Задержка между сигналами выбора корпуса

Это поле определяет значение задержки между переходом от неактивного состояния одной линии NPCS к активному состоянию другой линии NPCS. Задержка по времени гарантирует то, что сигналы выбора корпуса не перекроются по времени, и устранит возможную конкуренцию при работе на шине, возможную в случае, если периферийные устройства имеют значительное время преобразования. Если значение DLYBCS равно или менее шести, шесть периодов MCK будут вставлены по умолчанию. Во всех прочих случаях значение задержки определяется следующим уравнением:

29.7.3 Регистр данных приемника ППИ (SPI)

Название: SPI_RDR

Тип доступа: Только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

PCS

15

14

13

12

11

10

9

8

RD

7

6

5

4

3

2

1

0

RD

  • RD: Принятые данные

Данные, принятые ППИ (SPI) - интерфейсом, хранятся в этом регистре с выравниванием по правой стороне. В неиспользованные биты записывается нулевое значение.

  • PCS: Выбор корпуса внешних устройств

В режиме ведущего эти биты показывают значение на выводах NPCS в конце цикла передачи. Во всех других случаях чтение возвращает нулевое значение.

29.7.4 Регистр данных передатчика ППИ (SPI)

Название: SPI_TDR

Тип доступа: Только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

LASTXFER

23

22

21

20

19

18

17

16

-

-

-

-

PCS

15

14

13

12

11

10

9

8

TD

7

6

5

4

3

2

1

0

TD

  • RD: Передаваемые данные

Данные, предназначенные для передачи ППИ (SPI) - интерфейсом, хранятся в этом регистре. Информация, предназначенная для передачи, должна быть записана в этот регистр с выравниванием по правой стороне.

  • PCS: Выбор корпуса периферии

Это поле используется только в том случае, если режим переменного вида корпуса периферии активен (PS=1).

Если PCSDEC = 0:

PCS = xxx0 NPCS[3;0] = 1110

PCS = xx01 NPCS[3:0] = 1101

PCS = x011 NPCS[3:0] = 1011

PCS = 0111 NPCS[3:0] = 0111

PCS = 1111 запрещено (ни одно периферийное устройство не выбрано)

(знаком "x" отмечены поля, данные в которых не имеют значения)

Если PCSDEC = 1, то:

Выходные сигналы NPCS[3:0] соответствуют значению PCS.

  • LASTXFER: Последняя передача

0 = Не влияет.

1 = Активный уровень текущей линии NPCS будет снят после того, как будет завершена передача пакета, записанного в регистр TD. При установленном бите CSAAT активный (низкий) уровень соответствующей линии NPCS будет снят сразу же после завершения передачи.

Это поле используется только в том случае, если установлен переменный выбор корпуса периферии.

29.7.5 Регистр состояния ППИ (SPI)

Название: SPI_SR

Тип доступа: Только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

SPIENS

15

14

13

12

11

10

9

8

-

-

-

-

-

-

TXEMPTY

NSSR

7

6

5

4

3

2

1

0

TXBUFE

RXBUFF

ENDTX

ENDRX

OVRES

MODF

TDRE

RDRF

  • RDRF: Переполнение приемного регистра хранения данных ППИ

0 = C момента последнего чтения SPI_RDR не было принято данных

1 = Данные были приняты и принятые данные переданы из последовательно - параллельного преобразователя в SPI_RDR с момента последнего чтения SPI_RDR

  • TDRE: Опустошение передающего регистра

0 = Данные были записаны в SPI_TDR но еще не переданы в параллельно - последовательный преобразователь.

1 = Последние записанные в регистр хранения передачи данные уже переданы в параллельно - последовательный преобразователь.

  • MODF: Ошибка режима работы

0 = Ошибка режима не была определена с момента последнего чтения регистра состояния ППИ (SPI_SR).

1 = С момента последнего чтения регистра состояния ППИ была обнаружена ошибка режима работы интерфейса.

  • OVRES: Состояние ошибки переполнения

0 = С момента последнего чтения регистра состояния не было обнаружено ошибок переполнения.

1 = С момента последнего чтения регистра состояния была обнаружена ошибка переполнения. Ошибкой считается состояние, когда в SPI_RDR (регистр хранения принимаемых данных) были загружены данные из последовательно - параллельного преобразователя как минимум два раза без чтения.

  • ENDRX: Конец (опустошение) буфера передачи (RX)

0 = Регистр - счетчик приемника не осуществил счет до 0 с момента последней записи в SPI_RCR или SPI_RNCR.

1 = Регистр - счетчик приемника досчитал до 0 с момента последней записи в SPI_RCR или SPI_RNCR.

  • ENDTX: Конец (завершение) буфера приема (TX)

0 = Регистр - счетчик передатчика не осуществил счет до 0 с момента последней записи в SPI_RCR или SPI_RNCR.

1 = Регистр - счетчик передатчика досчитал до 0 с момента последней записи в SPI_RCR или SPI_RNCR.

  • RXBUFF: Буфер приемника заполнен

0 = SPI_RCR(1) или SPI_RNCR(1) содержат значение, отличное от 0.

1 = SPI_RCR(1) и SPI_RNCR(1) оба имеют нулевое значение.

  • TXBUFE: Буфер передатчика опустошен

0 = SPI_TCR(1) или SPI_TNCR(1) содержат значение, большее, чем 0.

1 = SPI_TCR(1) и SPI_TNCR(1) оба имеют нулевое значение.

  • NSSR: Изменение уровня на ножке NSS

0 = С момента последнего чтения не было определено изменение уровня (переход высокий - низкий, фронт) на ножке NSS.

1 = С момента последнего чтения было определено изменение уровня на ножке NSS.

  • TXEMPTY: Опустошение регистров передачи

0 = Устанавливается сразу же после записи данных в SPI_TDR.

1 = SPI_TDR и регистр сдвига опустошены. Если была установлена задержка передачи, TXEMPTY устанавливается после ее завершения.

  • SPIENS: Состояние разрешения SPI

0 = ППИ (SPI) запрещен.

1 = ППИ (SPI) разрешен.

Заметка: SPI_RCR, SPI_RNCR, SPI_TCR, SPI_TNCR физически размещены в контроллере прямого доступа к памяти периферийных модулей (PCD).

29.7.6 Регистр разрешения прерываний ППИ

Название: SPI_IER

Тип доступа: Только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

TXEMPTY

NSSR

7

6

5

4

3

2

1

0

TXBUFE

RXBUFF

ENDTX

ENDRX

OVRES

MODF

TDRE

RDRF

  • RDRF: Разрешение прерывания по переполнению приемного регистра хранения данных ППИ

  • TDRE: Разрешении переполнения по опустошению передающего регистра

  • MODF: Разрешение прерывания по ошибке режима работы

  • OVRES: Разрешение прерывания по состоянию ошибки переполнения

  • ENDRX: Разрешение прерывания по опустошению буфера передачи (RX)

  • ENDTX: Разрешение прерывания по опустошению буфера приема (TX)

  • RXBUFF: Разрешение прерывания по заполнению буфер приемника

  • TXBUFE: Разрешение прерывания по опустошению буфера передатчика

  • TXEMPTY: Разрешение прерывания по опустошению регистров передачи

  • NSSR: Разрешение прерывания по изменению уровня на ножке NSS

0 = не влияет

1 = разрешает соответствующее прерывание

29.7.7 Регистр запрещения прерываний ППИ (SPI)

Название: SPI_IDR

Тип доступа: Только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

TXEMPTY

NSSR

7

6

5

4

3

2

1

0

TXBUFE

RXBUFF

ENDTX

ENDRX

OVRES

MODF

TDRE

RDRF

  • RDRF: Запрещение прерывания по переполнению приемного регистра хранения данных ППИ

  • TDRE: Запрещение переполнения по опустошению передающего регистра

  • MODF: Запрещение прерывания по ошибке режима работы

  • OVRES: Запрещение прерывания по состоянию ошибки переполнения

  • ENDRX: Запрещение прерывания по опустошению буфера передачи (RX)

  • ENDTX: Запрещение прерывания по опустошению буфера приема (TX)

  • RXBUFF: Запрещение прерывания по заполнению буфер приемника

  • TXBUFE: Запрещение прерывания по опустошению буфера передатчика

  • TXEMPTY: Запрещение прерывания по опустошению регистров передачи

  • NSSR: Запрещение прерывания по изменению уровня на ножке NSS

0 = не влияет

1 = запрещает соответствующее прерывание

29.7.8 Регистр маски прерываний

Название: SPI_IMR

Тип доступа: Только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

TXEMPTY

NSSR

7

6

5

4

3

2

1

0

TXBUFE

RXBUFF

ENDTX

ENDRX

OVRES

MODF

TDRE

RDRF

  • RDRF: Маска прерывания по переполнению приемного регистра хранения данных ППИ

  • TDRE: Маска прерывания по опустошению передающего регистра

  • MODF: Маска прерывания по ошибке режима работы

  • OVRES: Маска прерывания по состоянию ошибки переполнения

  • ENDRX: Маска прерывания по опустошения буфера передачи (RX)

  • ENDTX: Маска прерывания по опустошению буфера приема (TX)

  • RXBUFF: Маска прерывания по заполнению буфера приемника

  • TXBUFE: Маска прерывания по заполнению буфера передатчика

  • TXEMPTY: Маска прерывания по опустошению регистров передачи

  • NSSR: Маска прерывания по изменению уровня на ножке NSS

29.7.9 Регистр выбора корпуса ППИ (SPI)

Название: SPI_CSR0…SPI_CSR3

Тип доступа: Чтение/запись

31

30

29

28

27

26

25

24

DLYBCT

23

22

21

20

19

18

17

16

DLYBS

15

14

13

12

11

10

9

8

SCBR

7

6

5

4

3

2

1

0

BITS

CSAAT

-

NCPHA

CPOL

  • CPOL: полярность синхронизирующего сигнала

0 = Уровень неактивного состояния синхронизации передачи данных по ППИ соответствует логическому нулю.

1 = Уровень неактивного состояния синхронизации передачи данных по ППИ соответствует логической единице.

CPOL применяется для определения неактивного состояния синхронизации передачи ППИ (SPCK). Это поле используется совместно с NCPHA для установки необходимого для работы с ведомым устройством сочетания значений синхронизирующего сигнала и формата передачи данных.

  • NCPHA: Фаза синхронизирующего сигнала

0 = Данные изменяются (выдаются) по переднему фронту SPCK и принимаются по заднему фронту (по фронту и срезу).

1 = Данные принимаются по переднему фронту SPCK и выдаются по заднему фронту.

Поле NCPHA определяет, какой из перепадов синхронизирующего сигнала запускает передачу и какой - прием данных. Это поле используется совместно с CPOL для установки необходимого для работы с ведомым устройством сочетания значений синхронизирующего сигнала и формата передачи данных.

  • СCSAAT: Активность линии выбора корпуса после завершения передачи

0 = Высокий (неактивный) уровень линии выбора корпуса периферийного устройства устанавливается сразу же после окончания передачи.

1 = Низкий (активный) уровень линии выбора корпуса периферийного устройства удерживается после окончания передачи. Он удерживается до тех пор, пока не начнется передача с выбором корпуса внешнего устройства по другой линии.

  • BITS: Количество бит данных в пакете

Это поле определяет количество бит данных, передаваемых в одном пакете. Зарезервированные значения поля не должны использоваться.

BITS

Количество бит данных

0000

8

0001

9

0010

10

0011

11

0100

12

0101

13

0110

14

0111

15

1000

16

1001

Зарезервировано

1010

Зарезервировано

1011

Зарезервировано

1100

Зарезервировано

1101

Зарезервировано

1110

Зарезервировано

1111

Зарезервировано

  • SBCR: Скорость последовательной передачи данных

В режиме ведущего устройства ППИ - интерфейс использует счетчик по модулю для получения значения скорости последовательной передачи данных из главной синхронизации. Значение тактовой частоты передачи данных устанавливается записью в поле SBCR значения от 1 до 255. Значение тактовой частоты передачи данных определяется выражением:

Запись нулевого значения в поле SCBR запрещена. Запуск передачи данных при записанном в SCBR нуле может привести к непредсказуемым сбоям в работе устройства. Значение SCBR по умолчанию также составляет 0, поэтому после пользователь перед осуществлением передачи должен программно изменить его значение на допустимое.

  • DLYBS: Задержка перед выдачей тактовой частоты ППИ (SPCK)

Это поле определяет значение задержки, которая отделяет начало выдачи тактовой частоты передачи данных установления от выдачи уровня NPCS.

Если DLYBS равен нулю, выдача тактовой частоты передачи данных (SPCK) начнется через половину ее периода после установления уровня NPCS.

В прочих случаях значение задержки определяется выражением:

  • DLYBCT: Задержка между последовательными передачами данных

Это поле определяет значение задержки между двумя последовательными передачами данных с одним и тем же периферийным устройством без снятия уровня выбора корпуса. Это время выдерживается каждый после каждой осуществленной передачи, и, при необходимости, перед снятием уровня выбора корпуса.

При значении DLYBCT, равном нулю, никакой задержки между последовательными передачами не происходит и синхронизация передачи данных продолжается после завершения передачи пакетов.

В прочих случаях значение задержки определяется следующим выражением:

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.