PIC. Урок 15. Модуль MSSP. Режим SPI. Часть 2

 

 

 

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

 

В режиме SPI для ножек, участвующем в нём, приняты следующие сокращения в отличие от общепринятых:

SDI — Вход последовательных данных (для режима ведомого — MOSI, для режима ведущего — MISO).

SDO — Выход последовательных данных (для режима ведомого — MISO, для режима ведущего — MOSI).

Остальные две ножки (SS и SCK) и свою аббревиатуру не поменяли.

Ножка SCK в ведущем режиме настраивается на выход, а в ведомом — на вход.

Рассмотрим блок-схему работы модуля MSSP в режиме SPI

 

 

Мы видим два регистра — SSPSR (регистр сдвига) и SSPBUF (буферный регистр). С помощью SDI и SDO происходит обмен битами через регистр сдвига SSPSR старшим битом вперёд. После полного обмена битами (когда будет полностью получен и передан весь байт), данные из этого регистра сохраняются в регистр буфера SSPBUF. Когда нам требуется передать байт по SPI, а также принять байт от подключенного устройства, то есть осуществить обмен байтами между устройствами, мы отправляемый байт записываем в регистр SSPBUF и ждём установки флага прерывания SSPIF регистра PIR, который отчитается о том, что приём/передача байта закончены. После этого мы обязаны программно очистить данный бит. Также после этого мы можем прочитать принятый байт. Ниже в схеме показано тактирование шины.

 

 

Теперь давайте посмотрим наглядно в виде диаграммы, как вообще передаются и принимаются данные по шине SPI  в нашем контроллере при использовании ведущего режима (нажмите на картинку для увеличения изображения)

 

 

Мы видим что каждый бит передаётся и принимается синхронно с каждым полным периодом импульса на ножке SCK. Уровень активного состояния, а также фаза передачи бита регулируется соответствующими битами регистров.

То есть, режим работы нашей шины SPI мы выбираем с помощью установки или сброса битов CKP, CKE и SMP исходя из того, как это требует от нас документация того устройства, которое мы будем подключать к шине.

Вообще, существует общепринятая терминология режимов работы SPI (четыре режима). Вот соответствие режимов состояниям битов CKP и CKE

 

 

Также не нужно забывать про бит SMP, который управляет фазой получения данных.

На этом, думаю, знакомство с организацией шины SPI в модуле MSSP можно считать законченным.

Мы теперь вполне готовы к разработке проектов с использованием данной шины в контроллере PIC16.

Всем спасибо за внимание!

 

Предыдущая часть Программирование МК PIC Следующий урок

 

 

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

Логический анализатор 16 каналов можно приобрести здесь

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

PIC Модуль MSSP. Режим SPI

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*