- •Микроконтроллеры msp430 Введение
- •1. Центральный процессор msp430
- •1.1. Адресное пространство микроконтроллеров msp430f1xx
- •1.2. Регистровый файл
- •1.3. Байтовая и словная формы инструкций.
- •1.4. Режимы адресации
- •1.4.1 Регистровая адресация
- •1.4.2. Индексная адресация
- •1.4.3 Символьная адресация
- •1.4.4 Абсолютная адресация
- •1.4.5. Косвенная адресация
- •1.4.6. Косвенная адресация с автоинкрементом
- •1.4.7 Непосредственная адресация
- •2. Система команд msp микроконтроллеров
- •2.1. Двухадресные команды
- •2.2 Одноадресные команды
- •2.3 Команды переходов
- •2.4. Эмулируемые команды
- •3. Периферийные устройства микроконтроллеров msp430f1xx
- •3.1 Внешние выводы микроконтроллера msp430f149
- •3.2 Система прерываний
- •3.3 Система тактирования
- •3.4 Сторожевой таймер
- •3.5 Аппаратный умножитель
- •3.6 Порты ввода/вывода
- •3.7 Таймер a3
- •3.8 Таймер b7
- •3.9 Интерфейс usart
- •3.9.1 Режим uart
- •3.9.1.1 Передача данных
- •3.9.1.2 Прием данных
- •3.9.1.3 Поддержка коммуникации в многопроцессорных системах
- •3.9.1.4 Обнаружение стартового бита при приеме
- •3.9.1.5 Скорость передачи
- •3.9.1.6 Регистры usart
- •3.9.2 Режим spi
- •3.9.3 Режим i2c
- •3.9.3.1 Общие сведения о шине i2c
- •3.9.3.2 Режимы работы usart в режиме i2c
- •3.9.3.3 Арбитраж
- •3.9.3.4 Тактирование i2c модуля
- •3.9.3.4 Инициализация модуля i2c
- •3.9.3.5 Регистры модуля usart в режиме i2c
- •3.10 Аналоговый компаратор
- •3.11 Аналого-цифровой преобразователь adc12
- •3.12 Flash контроллер
- •3.12.1 Стирание Flash памяти
- •3.12.2 Запись Flash памяти
- •3.12.3 Регистры Flash контроллера
- •3.13 Цифро-аналоговый преобразователь
- •Контроллер dma
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 обнаружен перепад 10 на линии 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).
