Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSP430_НВВ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать

3.9.2 Режим spi

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) обеспечивает высокоскоростной синхронный обмен данными между двумя микроконтроллерами или другими внешними устройствами. В обмене данными всегда принимают участие ведущее (master) и ведомое (slave) устройства. Для интерфейса используются следующие сигналы:

  • SIMO (Slave Input, Master Output) – вход ведомого, выход ведущего;

  • SOMI (Slave Output, Master Input) –выход ведомого, вход ведущего;

  • UCLK (USART Clock) – сигнал тактирования;

  • STE (Slave Transmit Enable) – вход разрешение передачи ведомого, опциональный сигнал используется только в 4-х проводном режиме.

Для обмена данными через интерфейс SPI необходимо одноименные сигналы SIMO, SOMI и UCLK ведущего и ведомого устройств соединить между собой. Обмен данными начинается после того, как в буфер ведущего устройства UTXBUF записываются данные. В том случае, если сдвиговый регистр передатчика пуст, эти данные копируется в него, и мастер начинает выдвигать их на линию SIMO бит за битом начиная со старшего. При этом ведущее устройство для каждого информационного бита генерирует синхроимпульс на линии UCLK. Одновременно с передачей данных, ведущее устройство принимает данные, присутствующие на линии SOMI, задвигая их в сдвиговый регистр приемника. После того, как был передан/принят информационный кадр, данные из сдвигового регистра приемника переписываются в буфер RXBUF.

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

В том случае, если используется 3-х проводной SPI, вывод STE не оказывает влияние на работу интерфейса. При 4-х проводном интерфейсе логика работы входного сигнала STE заключается в следующем:

  • Устройство сконфигурировано как master. Если на вход STE подано напряжение высокого уровня, интерфейс работает нормально. Если на вход подается логический 0, это означает, что другое устройство желает стать ведущим, поэтому выводы SIMO и UCLK переключаются на ввод, а SOMI – на вывод.

  • Устройство сконфигурировано как slave. Если на вход STE подан логический 0, интерфейс работает нормально. Если на вход STE подать логическую единицу, все линии SPI переключаются на ввод, и интерфейс выключается.

Битовая скорость определяется содержимым регистров UBR0 и UBR1 ведущего устройства и определяется формулой

Baud=BRCLK/UBR,

где

BRCLK – частота тактирования USART.

Максимальная битовая скорость, генерируемая мастером не должна превышать BRCLK/2. Максимальная битовая скорость для ведомого устройства не должна превышать BRCLK. Модулятор для интерфейса SPI не используется, поэтому рекомендуется держать содержимое регистра UxMCTL равное 0.

Управление SPI осуществляется с помощью следующих регистров.

    • UxCTL (USART Control) – содержит биты управления USART.

7 6 5 4 3 2 1 0

-

I2C

CHAR

LISTEN

SYNC

MM

SWRS

  • Биты 7,6 – зарезервированы.

  • Бит 5 – I2C – должен быть установлен в 0, для работы USART в режиме SPI.

  • Бит 4 – CHAR (Character) – определяет длину информационного поля кадра:

0 – 7 битов,

1 – 8 битов.

  • Бит 3 – LISTEN прослушивание. Установка этого бита подключает выход SIMO ко входу приемника внутри USART, что дает возможность приемнику прослушивать данные, передаваемые собственным передатчиком.

  • Бит 2 – SYNC (Synchronous) – должен быть установлен в 1 для задания режима SPI.

  • Бит 1 – MM (Master Mode) – установка/сброс этого бита задает режим ведущего/ведомого устройства SPI.

  • Бит 0 – SWRS (Software Reset) – программный сброс. Установка этого бита в 1 производит программный сброс аппаратуры USART в исходное состояние, 0 – разрешает работу SPI.

    • UxTCTL (USART Control) – содержит биты управления передатчика USART.

7 6 5 4 3 2 1 0

CKPH

CKPL

SSEL1,0

-

STC

TEXP

  • Бит 7 – CKPH (Clock Phase) –фаза тактирования на выводе UCLK (см. рис.8).

0 – нормальное тактирование;

1 – сдвиг тактирования на половину периода длительности такта.

  • Бит 6 – CKPL (Clock Polarity) – выбор полярности тактирования тактового сигнала UCLK . (см. рис.8)

0 – неактивный уровень низкий,

1 – неактивный уровень высокий.

  • Биты 5,4 – SSEL (Source Select) – комбинация этих бит задает источник тактирования USART

SSEL1

SSEL0

Источник

Режим

0

0

Внешний UCLK

Только slave

0

1

ACLK

Только master

1

0

SMCLK

Только master

1

1

SMCLK

Только master

  • Бит 3,2 –зарезервированы.

  • Бит 1 – STC (Slave Transmit Control) – управление передачей ведомого. Установка/сброс этого бита задает 3-х проводный (STE запрещен) или 4-х проводный (STE разрешен) режимы работы SPI соответственно.

  • Бит 0 – TXEPT (Transmitter Empty) – устанавливается в 1 аппаратно в том случае если TXBUF и сдвиговый регистр не содержит данных, в противном случае сбрасывается.

Рисунок 8. Временная диаграмма работы SPI

    • UxRCTL (USART Control) – содержит биты управления приемника USART.

7 6 5 4 0

FE

-

OE

-

  • Бит 7 – FE (Frame Error) – ошибка кадра. Устанавливается аппаратно, если в 4-х проводной конфигурации и режиме master обнаружен перепад 10 на линии STE. Сбрасывается программно. Не используется в режиме ведомого.

  • Бит 6 – зарезервирован.

  • Бит 5 – OE (OverRun Error) – ошибка переполнения. Устанавливается аппаратно если при копировании данных из сдвигового регистра в URXBUF, старые данные не были вычитаны из буфера. Сбрасывается программно, чтением URXBUF или установкой бита SWRST.

  • Биты 4…0 – зарезервированы.

    • UxBR0 (Baud Rate) – младший байт делителя частоты тактирования SPI.

    • UxBR1 (Baud Rate) – старший байт делителя частоты тактирования SPI.

    • UxTXBUF (Transmit Buffer) – буферный регистр передатчика.

    • UxRXBUF (Transmit Buffer) – буферный регистр приемника

    • ME1 (Module Enable 1) – содержит биты разрешения приемника и передатчика USART0.

7 6 5 0

-

USPIE0

-

  • Бит 7 – зарезервирован.

  • Бит 6 – USPIE0 (USART0 SPI Enable). Установка/сброс этого бита разрешает/запрещает USART0 в режиме SPI.

  • Биты 5…0 – зарезервированы.

    • ME2 (Module Enable 2) – содержит биты разрешения приемника и передатчика USART1.

7 5 4 3 0

-

USPIE1

-

  • Биты 7…5 – зарезервированы.

  • Бит 4 – USPIE1 (USART1 SPI Enable). Установка/сброс этого бита разрешает/запрещает USART1 в режиме SPI.

  • Биты 3…0 – зарезервированы.

    • IE1 (Interrupt Enable 1) – содержит биты разрешения прерываний для USART0 (см. п.3.2).

    • IE2 (Interrupt Enable 2) – содержит биты разрешения прерываний для USART1 (см. п.3.2).

    • IFG1 (Interrupt Flag 1) – содержит флаги прерываний для USART0 (см. п.3.2).

    • IFG2 (Interrupt Flag 2) – содержит флаги прерываний для USART1 (см. п.3.2).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]