Мегаобучалка Главная | О нас | Обратная связь


ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SPI



2019-10-11 194 Обсуждений (0)
ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SPI 0.00 из 5.00 0 оценок




Интерфейс SPI позволяет производить высокоскоростной синхронный обмен данными между AT90S2333/4433 и периферийными устройствами или несколькими процессорами. SPI-интерфейс предлагает следующие возможно­сти:

 

1. Полностью дуплексная 3-проводная синхронная передача данных;

2. Работа в режиме ведущего или ведомого;

3. Передача начиная со старшего или младшего бита;

4. Четыре программируемые скорости передачи;

5. Флаг прерывания по окончанию передачи;

6. Флаг защиты от коллизий при записи

7. Выход из режима Idle.

 

Соединение между ведущим и ведомым контроллерами показана ниже. Вывод PB5(SCK) является выходом тактовых импульсов для ведущего кон­троллера и входом для ведомого. Запись в регистр данных SPI ведущего контроллера запускает тактовый генератор. Записанные данные сдвигаются через вывод PB3(MOSI) на вывод PB3(MOSI) ведомого контроллера. После того как байт будет выведен тактовый генератор останавливается и вы­ставляет флаг окончания передачи (SPIF). Если разрешены прерывания (установлен бит SPIE в регистре SPCR), вызывается соответствующее прерывание. Вывод PB2(SS) ведомого контроллера должен быть подключен на землю. Два сдвиговых регистра в ведущем и ведомом контроллерах мож­но рассматривать как один распределенный 16-разрядный регистр сдвига. Когда данные сдвигаются из ведущего контроллера в ведомый, то же самое происходит в обратном направлении. За один цикл сдвига ведущий и ведо­мый контроллеры обмениваются байтами данных.

Система имеет одиночный буфер в направлении передачи и двойной в направлении приема. Передаваемый символ не записывается в регистр дан­ных SPI до тех пор, пока передача не завершится. При приеме до завер­шения операции сдвига данные должны быть прочитаны из регистра данных. Иначе предыдущий символ теряется. При разрешении SPI выводы MOSI, MISO, SCK и SS устанавливаются на ввод/вывод в соответствии с таблицей.

 

Таблица 16. Установка выводов SPI

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

РАБОТА ВЫВОДА SS

Если SPI сконфигурирован как ведущий (установлен бит MSTR в SPCR), пользователь может задавать направление ввода для ножки SS. Ес­ли SS сконфигурирован на вывод, ножка работает как бит ввода/вывода общего назначения не влияющий на работу SPI. Если ножка сконфигуриро­вана на ввод, на нее необходимо подать высокий уровень, чтобы SPI ра­ботал в режиме ведущего. Если в режиме ведущего ножка SS установлена на ввод и внешним устройством устанавливается в низкий уровень, систе­мой SPI это воспринимается как выбор шины другим ведущим устройством и попытка передать данные ведомому. Для избежания конфликтов на шине си­стема SPI делает следующее:

1. Сбрасывается бит MSTR в SPCR, система SPI становится ведомой. При этом ножки MOSI и SCK становятся входами.

2. Устанавливается флаг SPIF в SPSR, если разрешены прерывания, будет исполнена программа обслуживания прерывания.

Таким образом если передача по SPI производится в режиме ведущего и существует возможность установки вывода SS в низкий уровень, преры­вание должно отслеживать установлен ли бит MSTR. Если бит MSTR будет сброшен при переходе в режим ведомого контроллера, обратно он должен быть установлен пользователем.

Если система SPI сконфигурирована как ведомая, вывод SS всегда является входом. Когда SS переводится в низкий уровень, система SPI активируется и ножка MISO, если это задано пользователем, становится выходом. Другие выводы являются входами. Если внешним устройством на вывод SS подан высокий уровень, все выводы становятся входами, а сис­тема SPI становится пассивной, т.е. не будет принимать данные.

Режимы обмена данными

Биты CPHA и CPOL определяют четыре комбинации фазы и полярности SCK относительно битов данных. Битом CPOL задается полярность импульсов на выводе SCK, при CPOL=0 полярность импульсов положительная, при от­сутствии импульсов на выводе удерживается низкий уровень. При CPOL=1 полярность импульсов отрицательная, при отсутствии импульсов на выходе высокий уровень. Битом CPHA задается фронт по которому обрабатываются биты данных. При CPHA=0 обработка происходит по переднему фронту им­пульсов SCK (для CPOL=0 переход из низкого уровня в высокий, для CPOL=1 - из высокого в низкий). При CPHA=1 обработка происходит по за­днему фронту импульсов SCK.

РЕГИСТР УПРАВЛЕНИЯ SPI – SPCR

Dh(2Dh)

7 6 5 4 3 2 1 0
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPRO0
R\W R\W R\W R\W R\W R\W R\W R\ W
Начальное значение 0 0 0 0 0 1 0 0

 

Бит 7 - SPIE - Разрешение прерываний от SPI - если этот бит установ­лен, при установке бита SPIF в регистре SPSR выполняется прерывание от SPI, если разрешены общие прерывания.

 

Бит 6 - SPE - Разрешение SPI - Этот бит должен быть установлен для осуществления любых операций по шине SPI.

 

Бит 5 - DORD - Порядок бит данных - Если этот бит установлен, при об­мене первым передается младший бит данных. Если бит сброшен – первым передается старший бит.

 

Бит 4 - MSTR - Выбор ведущего/ведомого - При установке этого бита ши­на SPI работает в режиме ведущего, при сбросе - в режиме ведомого. Ес­ли вывод SS сконфигурирован как вход и устанавливается в низкий уро­вень когда установлен бит MSTR, бит MSTR сбрасывается и устанавливает­ся бит SPIF в регистре SPSR. Для возобновления работы в режиме ведуще­го пользователь должен установить этот бит.

 

Бит 3 - CPOL - Полярность тактовых сигналов - Этим битом задается по­лярность импульсов на выводе SCK, при CPOL=0 полярность импульсов по­ложительная, при отсутствии импульсов на выводе удерживается низкий уровень. При CPOL=1 полярность импульсов отрицательная, при отсутствии импульсов на выходе высокий уровень.

 

Бит 2 - CPHA - Фазировка тактовых импульсов. - Этим битом задается фронт по которому обрабатываются биты данных. При CPHA=0 обработка происходит по переднему фронту импульсов SCK (для CPOL=0 переход из низкого уровня в высокий, для CPOL=1 - из высокого в низкий). При CPHA=1 обработка происходит по заднему фронту импульсов SCK.

 

Биты 1,0 - SPR1,SPR0 - Выбор тактовой частоты SPI. - Этими битами за­дается скорость работы SPI шины для ведущего устройства. Для ведомого контролерра установка этих бит не имеет значения. Соотношение тактовой частоты процессора и частоты SCK приведено в таблице:

 

Таблица 17. Соотношение между SCK и тактовой частотой процессора

 

SPR1 SPR0 Частота SCK SPR1 SPR0 Частота SCK
0 0 Fck/4 1 0 Fck/64
0 1 Fck/16 1 1 Fck/128

 



2019-10-11 194 Обсуждений (0)
ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SPI 0.00 из 5.00 0 оценок









Обсуждение в статье: ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SPI

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (194)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)