В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



20.7. Описание регистров

20.7.1. CTRL - регистр управления SPI

Бит 7 6 5 4 3 2 1 0  
+0x00
CLK2X ENABLE DORD MASTER MODE[1:0] PRESCALER[1:0]
CTRL
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Бит 7 - CLK2X: режим удвоенной скорости

Установка данного бита приводит к двукратному повышению частоты сигнала SCK в ведущем режиме (см. таблицу 20.4).

  • Бит 6 - ENABLE: разрешение работы модуля SPI

Установка данного бита разрешает работу модуля SPI. Чтобы модуль SPI мог выполнить какую-либо операцию, данный бит должен быть равен единице.

  • Бит 5 - DORD: очередность передачи бит

От значения бита DORD зависит, какой бит, старший или младший, будет первым передан сдвигом из регистра данных. Если бит DORD равен единице, то первым будет передан младший бит данных. Если же в DORD записан нуль, то первым будет передан старший бит данных.

  • Бит 4 - MASTER: выбор режима ведущий/подчиненный

Для выбора ведущего режима в данный бит необходимо записать единицу, а для выбора подчиненного режима - ноль. Если после установки бита MASTER вывод SS настроить как вход и подать на него низкий уровень, бит MASTER будет сброшен.

  • Бит 3:2 - MODE[1:0]: режим SPI

Данные биты задают режим передачи данных. Четыре варианта соотношения фазы и полярности сигнала SCK с сигналами данных показаны на рисунке 20.3. От данных бит зависит, каким будет первый фронт импульсов синхронизации (передний фронт), нарастающим или падающим, и по какому фронту, переднему или заднему, будет выполняться установка и выборка данных.

Если передний фронт - нарастающий (падающий), то, когда шина будет в состоянии IDLE, линия SCK будет находиться в низком (высоком) состоянии.

Таблица 20.3. Режимы SPI

MODE[1:0] Групповая конфигурация Передний фронт Задний фронт
00 0 Нарастающий; выборка Падающий; выборка
01 1 Нарастающий; установка Падающий; установка
10 2 Падающий; выборка Нарастающий; выборка
11 3 Падающий; установка Нарастающий; установка
  • Биты 1:0 - PRESCALER[1:0]: предделитель синхронизации шины SPI

Данные два бита управляют частотой сигнала SCK при работе модуля SPI в ведущем режиме. На работу в подчиненном режиме настройка данных бит никак не влияет. Соотношение между частотой сигнала SCK и частотой синхронизации УВВ (CLKPER) демонстрирует таблица 20.4.

Таблица 20.4. Соотношение частот SCK и CLKPER

CLK2X PRESCALER[1:0] Частота SCK
0 00 CLKPER/4
0 01 CLKPER/16
0 10 CLKPER/64
0 11 CLKPER/128
1 00 CLKPER/2
1 01 CLKPER/8
1 10 CLKPER/32
1 11 CLKPER/64

20.7.2. INTCTRL - регистр управления прерываниями SPI

Бит 7 6 5 4 3 2 1 0  
+0x01
- - - - - INTLVL[1:0]
INTCTRL
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:2 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

  • Биты 1:0 - INTLVL[1:0]: уровень прерывания модуля SPI

С помощью данных бит можно разрешить работу прерывания модуля SPI и задать его уровень. Более детально об уровнях прерывания см. в разделе 12. "Прерывания и программируемый многоуровневый контроллер прерываний". После разрешения прерывания, его генерация инициируется в случае установки флага IF в регистре STATUS.

20.7.3. STATUS - регистр статуса модуля SPI

Бит 7 6 5 4 3 2 1 0  
+0x02
SPIF WCOL - - - - - -
STATUS
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт. Чт.
Начальное значение 0 0 0 0 0 0 0 0
  • Бит 7 - IF: флаг прерывания модуля SPI

Данный флаг становится равным единице по завершении последовательной передачи данных из регистра данных и последовательного приема данных в этот же регистр. Флаг IF также устанавливается, если модуль SPI работает в ведущем режиме и на его, настроенный как вход, вывод SS подается низкий уровень. Флаг IF сбрасывается аппаратно при переходе на вектор прерываний. Альтернативно, флаг SPIF может быть сброшен первым чтением регистра STATUS с установленным флагом IF и при выполнении доступа к регистру данных.

  • Бит 6 - WRCOL: флаг обнаружения ошибочной записи

Бит WRCOL становится равным единице, если во время передачи выполняется запись в регистр данных. Сброс бита WRCOL происходит при первом чтении регистра STATUS с установленным битом WRCOL и при осуществлении доступа к регистру данных.

  • Бит 5:0 - Res: резерв

Данные биты являются резервными и всегда считываются с нулевыми значениями. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

20.7.4. DATA - регистр данных SPI

Бит 7 6 5 4 3 2 1 0  
+0x03
DATA[7:0]
DATA
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0

Регистр данных используется для передачи и приема данных. Запись в регистр инициирует передачу данных методом последовательных сдвигов через выходную линию шины SPI. При чтении регистра возвращается значение из буферного регистра, в котором сберегается последний успешно принятый байт данных.

20.8. Обзор регистров

Адрес Наимен. Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 CTRL CLK2X ENABLE DORD MASTER MODE[1:0] PRESCALER[1:0]
+0x01 INTCTRL - - - - - - INTLVL[1:0]
+0x02 STATUS IF WRCOL - - - - - -
+0x03 DATA DATA[7:0]

20.9. Векторы прерываний модуля SPI

Таблица 20.5. Вектор прерываний модуля SPI и значение смещения его адреса

Смещение Источник Описание прерывания
0x00 SPI_vect Вектор прерываний модуля SPI


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники