Регистр управления SPI - SPCR - (Control Register)

Биты
               
$0D ($2D)
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0
SPCR
Чтение/Запись
R/W R/W R/W R/W R/W R/W R/W R/W
 
Начальное состояние
               
 
  • Bit 7 - SPIE: SPI Interrupt Enable - Разрешение прерывания SPI
    Установка бита SPIE в состояние 1 приводит к установке бита SPIF регистра SPSR и, при разрешении глобального прерывания, к выполнению прерывания SPI.
  • Bit 6 - SPE: SPI Enable - Разрешение SPI
    Установка бита SPE в состояние 1 разрешает подключение SS, MOSI, MISO и SCK к выводам PB4, PB5, PB6 и PB7.
  • Bit 5 - DORD: Data Order - Порядок данных
    При установленном в состояние 1 бите DORD передача слова данных происходит LSB вперед. При очищенном бите DORD первым передается MSB слова данных.
  • Bit 4 - MSTR: Master/Slave Select - Выбор режима ведущий/ведомый
    При установленном в состояние 1 бите MSTR SPI работает в ведущем режиме и при очищенном бите в ведомом режиме. Если SS сконфигурирован как вход и на него подан низкий уровень при установленном MSTR, то MSTR будет сброшен и будет установлен бит SPIF в регистре SPSR. Чтобы вновь разрешить ведущий режим SPI, пользователь должен установить MSTR.
  • Bit 3 - CPOL: Clock Polarity - Полярность тактового сигнала
    SCK в режиме ожидания находится на высоком уровне при установленном в состояние 1 бите CPOL и на низком уровне при сброшенном бите CPOL. См. рис. 40 и 41.
  • Bit 2 - CPHA: Clock Phase - Фаза тактового сигнала
    Работа этого бита отражена на рис. 40 и 41.
  • Bits 1,0 - SPR1, SPR0: SPI Clock Rate Select 1 and 0 - Выбор частоты тактового сигнала, биты 1 и 0
    Эти два бита управляют частотой тактового сигнала прибора, работающего в ведущем режиме. В ведомом режиме состояния битов влияния не оказывают. Состояния битов и устанавливаемый коэффициент деления частоты fCL показаны в таблице:

Таблица 23. Соотношения между SCK и частотой генератора

SPR1 SPR0 Тактовая частота SCK
    fCL / 4
    fCL / 61
    fCL / 64
    fCL / 128
Функционирование входа SS При работе SPI ведущим (бит MSTR регистра SPCR установлен), пользователь имеет возможность установить направление работы вывода SS. Если вывод SS сконфигурирован как выход, то вывод является выводом общего назначения и он не активируется системой SPI. Если же вывод SS сконфигурирован как вход, то для обеспечения работа ведущего SPI он должен удерживаться на высоком уровне. Если, в режиме ведущего, вывод SS является входом и внешней периферийной схемой на него подан низкий уровень, то SPI воспримет его как обращение другого ведущего SPI к себе как к ведомому. Чтобы избежать конфликтной ситуации на шине, система SPI выполняет следующие действия:
  1. Бит MSTR в регистре SPCR очищается и SPI система становится ведомой. Результатом этого является то, что MOSI и SCK выводы становятся входами.
  2. Устанавливается флаг SPIF регистра SPSR и, если разрешено прерывание SPI, начнется выполнение подпрограммы обработки прерывания.
Таким образом, когда управляемый прерыванием передающий SPI используется в ведущем режиме, и существует вероятность подачи на вывод SS управляющего сигнала низкого уровня, прерывание должно всегда проверять установлен ли еще бит MSTR. Если же бит MSTR был очищен выбором режима ведомого, то он должен быть установлен пользователем. Если же SPI работает в режиме ведомого, то вывод SS постоянно работает на вход. Если на вывод SS подан низкий уровень, то SPI активируется и MISO, если это определено пользователем, становится выходом. Все остальные выводы являются входами. Если вывод SS удерживается на высоком уровне, то все выводы являются входами, SPI пассивен, что означает, что он не будет получать входящих данных. Существует четыре варианта комбинации фазы и полярности SCK относительно последовательных данных, определяемые управляющими битами CPHA и CPOL. Форматы передачи данных SPI показаны на Рис. 40 и 41. Рис. 40. Формат пересылок SPI при CPHA = 0 Рис. 41. Формат пересылок SPI при CPHA = 1

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: