Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Аналоговый ввод-вывод (Аналоговый компаратор)




Микроконтроллер Atmega103 имеет два последовательных порта: SPI и UART

Последовательный периферийный интерфейс – SPI(Serial Peripheral Interface). Интерфейс обеспечивает высокоскоростной синхронный обмен данными. Основные возможности интерфейса:

- дуплексный 3-проводный синхронный обмен данными

- режим работы ведущий/ведомый

- обмен с передаваемыми первыми старшим или младшим битами

- 4 программируемые скорости обмена данными

- флаг прерывания по окончанию передачи

- активация из Idle режима (только в режиме ведомого)

Вывод PB1(SCK) является выходом тактового сигнала ведущего микроконтроллера и входом тактового сигнала ведомого. По записи ведущим процессором данных в регистр SPI начинает работать тактовый генератор SPI, и записанные данные сдвигаются через вывод вывода PB2(MOSI) ведущего микроконтроллера на вывод PB2(MOSI) входа ведомого микроконтроллера. После сдвига одного байта тактовый генератор SPI останавливается, устанавливает флаг окончания передачи (SPIF). Если в регистре SPCR установлен бит разрешения прерывания SPI(SPIE), произойдет запрос прерывания. Вход выбора ведомого PB0(SS#), для выбора индивидуального SPI устройства в качестве ведомого, устанавливается в низкий уровень. При установке высокого уровня на выводе PB0(SS#) вывод PB2(MOSI) может быть использован в качестве выхода входа. Режим ведущий/ведомый может быть установлен и программным способом установкой или очисткой бита MSTR в регистре управления SPI

Два сдвиговых регистра ведущего и ведомого микроконтроллеров можно рассматривать как один разнесенный 16-разрядный циклический сдвиговый регистр. При сдвиге данных из ведущего МК в ведомый одновременно происходит сдвиг данных из ведомого МК в ведущий, т.е. в течение одного цикла сдвига происходит обмен данными между ведущим и ведомым МК

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

 

При разрешенном SPI обмене направление данных на выводах MOSI, MISO, SCK и SS# настраиваются в соответствии с таблицей

Вывод Направление ведущего Направление ведомого
MOSI Определяется пользователем Вход
MISO Вход Определяется пользователем
SCK Определяется пользователем Вход
SS Определяется пользователем Вход

 

Регистр управления SPI –SPCR: адрес $0D($2D)

7 6 5 4 3 2 1 0 разряды

SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0

0 0 0 0 0 0 0 0 исходный

Код

Бит 7 – SPIE –разрешение прерывания SPI. Установка бита SPIE приводит к установке бита SPIF регистра SPSR и, при разрешении глобального прерывания, к выполнению прерывания SPI.

Бит 6 – SPE – разрешение SPI. Установка бита SPE разрешает подключение SS, MOSI, MISO и SCK к выводам PB4, PB5, PB6, PB7.

Бит 5 – DORD– порядок данных. При установленном бите DORD передача слова данных происходит вперед младшим байтом. При очищенном бите DORD первым передается старший байт слова данных

Бит 4 –MSTR – выбор режима ведущий/ведомый. При установленном бите MSTR порт SPI работает в режиме ведущего, а при очищенном бите – в режиме ведомого. Если SS# определен как вход и на него подан низкий уровень при установленном MSTR, то MSTR будет сброшен и будет установлен, бит SPIF в регистре SPSR. Чтобы вновь разрешить ведущий режим SPI, пользователь должен установить MSTR

SPR1 SPR0 Тактовая частотаSCK
    fc/4
    fc/16
    fc/64
    fc/128

Бит 3 – CPOL – полярность тактового сигнала. При установленном бите CPOL сигнал SCK в режиме Idle находится на высоком уровне. При сброшенном бите CPOL – на низком уровне

Бит 2 – CPHA – фаза тактового сигнала

Бит 1,0 - SPR1,SPR0 – выбор частоты тактового сигнала. Эти два бита управляют частотой тактового сигнала прибора, работающего в режиме ведущего. В режиме ведомо состояния битов влияние не оказывают.

Соотношение между частотой SCK и частотой генератора

 

Регистр состояния SPI –SPSR: адрес $0E($2E)

 

7 6 5 4 3 2 1 0 разряды

SPIF WCOL - - - - - -

0 0 0 0 0 0 0 0 исходный

Код

Бит 7 - SPIF – флаг прерывания по SPI. По завершении обмена последовательными данными бит SPIF устанавливается и если бит SPIE в регистре SPCR установлено глобальное прерывание, прерывание по SPI обрабатывается. Бит SPIF очищается аппаратно при выполнении процедуры обработки соответствующего вектора прерывания. Бит SPIF может быть очищен также при первом чтении регистра состояния SPSR при установленном бите SPIF с последующем обращением к регистру данных SPDR.

Бит 6 –WCOL – флаг ошибки при записи. Бит WCOL устанавливается, если в процессе передачи данных выполнялась запись в регистр данных SPDR. Бит WCOL (и бит SPIF) аппаратно очищается при первом чтении регистра SPSR с установленным WCOL и последующим обращением к регистру данных SPDR.

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

 

Регистр данных SPI –SPDR: адрес $0F($2F)

7 6 5 4 3 2 1 0 разряды

MSB             LSB

0 0 0 0 0 0 0 0 исходный

Код

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

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...