ADuC812

SERIAL PERIPHERAL INTERFACE

Перевод части файла AduC812_b.pdf скачанного с сайта www.analog.com.

Этот файл дает наиболее полное описание для AduC812 в нем 56 страниц..

В ADuC812 имеется аппаратный интерфейс Serial Peripheral Interface (SPI). SPI это промышленный стандарт для синхронного последовательного интерфейса, который позволяет принимать или передавать 8 бит, то есть, полный дуплекс. Необходимо заметить, что контакты SPI те же, что и для интерфейса I2C, тем не менее, пользователь может установить тот или другой интерфейс в данный момент времени (смотри SPE в регистре SPICON ниже).

SPI порт может быть сконфигурирован в режиме Ведущий (Master) или Ведомый (Slave) и обычно содержит четыре линии:

MISO (Master In, Slave Out Data I/O Pin), Pin #19

Линия MISO (master in slave out) конфигурируется на ввод в режиме ведущего и на выход в режиме ведомого. Линия MISO в режиме ведущий (прием) должна соединяться с линией MISO устройства в режиме slave (передача). Данные передаются побайтно (8-bit) последовательно, MSB старший бит первый.

MOSI (Master Out, Slave In Pin), Pin #27

Линия MOSI (master out slave in) конфигурируется на вывод в режиме ведущего и на ввод в режиме ведомого. Линия MOSI в режиме ведущего (передача) должна быть соединена с линией MOSI устройства работающего в режиме ведомого (прием). Данные передаются побайтно (8-bit) последовательно, MSB старший бит первый.

SCLOCK (Serial Clock I/O Pin), Pin #26

Синхроимпульсы, задаваемые ведущим (SCLOCK), используются для стробирования передачи или приема по линиям данных MOSI и MISO. Один бит данных передается или принимается за один период SCLOCK. Поэтому байт передается или принимается за восемь циклов SCLOCK. Линия SCLOCK включается на выдачу в режиме ведущего и на ввод в режиме ведомого. В режиме ведущего длительность, полярность и фаза импульса управляется битами CPOL, CPHA, SPR0 и SPR1 регистра SPICON SFR (смотри Table XII).

В режиме ведомого регистр SPICON также настраивается на фазу и полярность (CPHA и CPOL) принимаемых синхроимпульсов. В обоих режимах и ведущий и ведомый по одному фронту сигнала SCLOCK передают данные, а по другому принимаются. Важно отметить, что CPHA и CPOL устанавливаются одинаково и для ведущего и для ведомого.

SS (Slave Select Input Pin), Pin #12

Линия Выбор ведомого (Slave Select) (SS) работающая на ввод, разделяется со входом ADC5. Для настройки этого контакта на цифровой вход, он должен быть сброшен, e.g., CLR P1.5. Эта линия активна в 0. В режиме ведомый, данные принимаются или передаются, только когда линия SS в 0, позволяя ADuC812 использовать одного ведущего и много ведомых SPI в своей конфигурации. Если CPHA = 1 тогда SS ввод может удерживаться в 0 (перманентно). При CPHA = 0 ввод SS должен быть установлен в 0 перед первым битом принимаемого или передаваемого байта и возвращен в 1 после последнего бита. В режиме ведомого SPI, логический уровень дополнительного контакта SS (Pin #13), может быть прочитан как SPR0 бит регистра SPICON SFR.

Следующие регистры SFR используются для управления интерфейсом SPI.

 

 

 

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

Адрес регистра

F8H

Значение по включению

OOH

Битовая адресация

Да

ISPI

WCOL

SPE

SPIM

CPOL

CPHA

SPR1

SPR0

Таблица XI. Назначение бит SPICON SFR.

Бит

Имя

Описание

7

ISPI

Бит прерывания. SPI Interrupt Bit.

Устанавливается контроллером в конце каждой передачи по SPI. Сбрасывается программой пользователя или при чтении регистра SPIDAT SFR

6

WCOL

Бит ошибки коллизия при передаче. Write Collision Error Bit.

Устанавливается контроллером, если регистр SPIDAT читается в то время, пока процесс передачи не закончен.

Сбрасывается программой пользователя.

5

SPE

Бит настройки порта на интерфейс SPI. SPI Interface Enable Bit.

Устанавливается пользователем для работы по интерфейсу SPI.

Сбрасывается пользователем для установки интерфейса I 2 C.

4

SPIM

SPI Master/Slave Mode Select Bit.

Устанавливается пользователем для задания режима Ведущий (SCLOCK на выдачу).

Сбрасывается пользователем, для задания режима, Ведомый (SCLOCK на прием).

3

CPOL

Clock Polarity Select Bit.

Устанавливается пользователем если SCLOCK не активный в 1.

Сбрасывается пользователем если SCLOCK не активный в 0.

2

CPHA

Clock Phase Select Bit.

Устанавливается пользователем если задний фронт сигнала SCLOCK используется для передачи данных.

Сбрасывается пользователем если передний фронт сигнала SCLOCK используется для передачи данных.

1

0

SPR1

SPR0

SPI Bit-Rate Select Bits.

В режиме ведущего, эти биты выбирают длительность сигнала SCLOCK (bit-rate):

SPR1 SPR0 Selected Bit Rate

0 0 fOSC/4

0 1 fOSC/8

1 0 fOSC/32

1 1 fosc/64

В режиме ведомого, то есть SPIM = 0, логический уровень внешнего разъема SS (#12)может быть определен как бит SPR0.

Замечание: Биты CPOL и CPHA имеют одинаковое значение для устройства в режиме ведущего и ведомого.

 

SPIDAT Регистр данных SPI.

Функция

Регистр SPIDAT SFR записывается пользователем, для передачи данных через SPI интерфейс, или читается пользователем, для получения данных, только что принятых по SPI интерфейсу.

Адрес регистра

F7H

Значение по умолчанию после включения питания

00H

Битовая адресация

нет

Использование интерфейса SPI.

В соответствии с конфигурацией битов регистра SPICON показанных в таблице 12, интерфейс SPI контроллера передает или принимает данные в нескольких режимах. На рисунке 26 показаны все возможные конфигурации и временные соотношения для принимаемых или передаваемых данных и их синхросигналами. Также показаны моменты установки сигнала прерывания.

SPI Interface— Режим ведущего.

В режиме ведущего, контакт SCLOCK всегда работает на выдачу и выдает пакет из 8 импульсов, каждый раз, после того как пользователь производит запись в регистр SPIDAT. Скорость передачи определяется установкой бит SPR0 и SPR1 регистра SPICON. Следует отметить, что сигнал SS не используется в режиме мастер. И если внешнему устройству требуется сигнал SS, следует использовать цифровой выход порта.

В режиме ведущего передача или прием байта инициируется записью в SPIDAT. Восемь импульсов выдается по SCLOCK и SPIDAT байт передается по MOSI. По каждому SCLOCK бит данных считывается по MISO. После 8 импульсов, передаваемый байт будет полностью передан, а принимаемый байт заполнит сдвиговый регистр. Флаг ISPI будет установлен автоматически и вызовет прерывание, если оно разрешено. Значение сдвигового регистра будет занесено в регистр SPIDAT.

SPI Interface – Режим ведомого.

В режиме ведомого SCLOCK работает на прием. Линия SS должна быть установлена в 0 внешним сигналом в период обмена данными. Передача также инициируется записью в SPIDAT. В режиме ведомого, бит данных передается по MISO, а принимается бит данных по MOSI во время каждого периода входного SCLOCK. После восьми синхроимпульсов, передаваемый байт будет полностью выдан, а байт ожидаемый на ввод будет находиться во входном сдвиговом регистре. Флаг ISPI будет взведен автоматически и, возбудится прерывание, если оно разрешено. Значение сдвигового регистра будет переписано в SPIDAT только когда передаваемый / принимаемый байт принят полностью. Конец передачи возникает каждый раз после восьми синхроимпульсов, если CPHA = 1, или когда SS возвращается в 1 при CPHA = 0.

 

 

 

 

SPI MASTER MODE TIMING (CPHA = 1) ns

 

Parameter

Min

Typ

Max

tSL

SCLOCK низкий уровень синхроимпульса

 

330

 

tSH

SCLOCK высокий уровень синхроимпульса

 

330

 

tDAV

Выдача удержание после фронта SCLOCK

   

50

tDSU

Выдача установка перед фронтом SCLOCK

100

   

tDHD

Ввод удержание после фронта SCLOCK

100

   

tDF

заднего фронта выдаваемых данных

 

10

25

tDR

переднего фронта выдаваемых данных

 

10

25

tSR

SCLOCK переднего фронта

 

10

25

tSF

SCLOCK заднего фронта

 

10

25

 

 

SPI MASTER MODE TIMING (CPHA = 0) ns

 

Длительность

Min

Typ

Max

tSL

SCLOCK низкий уровень синхроимпульса

 

330

 

tSH

SCLOCK высокий уровень синхроимпульса

 

330

 

tDAV

Выдача удержание после фронта SCLOCK

   

50

tDOSU

Выдача установка перед фронтом SCLOCK

   

150

tDSU

Ввод установка перед фронтом SCLOCK

100

   

tDHD

Ввод удержание после фронта SCLOCK

100

   

tDF

заднего фронта выдаваемых данных

 

10

25

tDR

переднего фронта выдаваемых данных

 

10

25

tSR

SCLOCK переднего фронта

 

10

25

tSF

SCLOCK заднего фронта

 

10

25

 

ГЛАВНАЯ СТРАНИЦА |  ТЕКУЩАЯ СТРАНИЦА;

 

Hosted by uCoz