Режимы передачи данных

Рисунок 8.5 - Соединение микроконтроллеров по интерфейсу SPI

Передача данных осуществляется следующим образом. При записи в регистр данных SPI ведущего микроконтроллера запускается генератор тактового сигнала модуля SPI, и данные начинают поразрядно выдаваться на вывод MOSI и, соответственно, поступать па вывод MOSI ведомого ми­кроконтроллера. После выдачи последнего разряда текущего байта генератор такто­вого сигнала останавливается с одновременной установкой в «1» флага «Конец передачи» (SPIF). Если прерывания от модуля SPI разрешены (флаг SPIE регистра SPCR установлен в «1»), генерируется запрос на пре­рывание. При подключении к ведущему устройству нескольких ведомых, что разрешено спецификацией SPI, выбор конкретного ведомого устройст­ва осуществляется подачей на его вход SS сигнала НИЗКОГО уровня.

Образно говоря, два сдвиговых регистра ведомого и ведущего уст­ройств можно считать одним распределенным 16-разрядным циклическим сдвиговым регистром, как показано на рис.8.5. Одновременно с переда­чей данных от ведущего к ведомому происходит передача и в обратном на­правлении. Таким образом, в каждом цикле сдвига происходит обмен дан­ными между устройствами.

В модуле используется одинарная буферизация при передаче и двой­ная - при приеме. Это означает, что готовый для передачи байт данных не может быть записан в регистр данных SPI до окончания предыдущего цикла обмена. При попытке изменить содержимое регистра данных во время передачи устанавливается в «1» флаг WCOL регистра SPSR. Сбра­сывается этот флаг после чтения регистра SPSR с последующим обраще­нием к регистру данных SPI.

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

Спецификация интерфейса SPI предусматривает 4 режима передачи данных. Эти режимы различаются соответствием между фазой (момент считывания сигнала) тактового сигнала SCK, его полярностью и передава­емыми данными. Всего существует 4 такие комбинации, определяемые со­стоянием разрядов СРНА и CPOL регистра SPCR.

Соответствующие этим режимам форматы обмена данными через SPI приведены на рис.8.6 и 8.7 (передача ведется от старшего разряда к младшему).

Рисунок 8.6 - Передача данных при CPHA = 0 и DORD = 0

Рисунок 8.7 - Передача данных при CPHA = 1 и DORD = 0


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



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