Режим I2C последовательного порта MSSP

Пример соединения двух МК через SPI

Временные диаграммы работы MSSP

Порт I2C

R/W = 0/1 - Запись/Чтение;

Start/Stop - стартовая/стоповая комбинация;

АSК - подтверждение (низкий уровень);

Not ASK - без подтверждения; Адрес ведомого - 7 бит

Формат кадра

Порядок шагов «ведущий передатчик». Ведущий -

1) обнаруживает свободное состояние шины

2) формирует на шине Start-состояние

3) выставляет адрес ведомого, ожидая АSК от адресованного ведомого.

4) передает байты данных, ожидая АSК после каждого байта.

5) формирует на шине Stop -состояние.

Порядок шагов «ведущий приемник» такой же, но ведущий принимает байты данных, посылая АSК в ведомый передатчик после каждого байта и выставляя Not ASK после получения последнего байта.

Порт МSSР в режиме I2C поддерживает все функции ведущих и ведомых устройств, поддержку общего вызова, аппаратные прерывания по обнаружению состояния на шине I2C-bus.

Поддерживает 7-10 разрядные адреса ведомых устройств. Имеет фильтры на 100 и 400 кГц для повышения помехоустойчивости.

Для работы используются 2 вывода: SDA – данные и SCL – синхросигнал.

Регистры, связанные с работой MSSP в режиме I2C:

• SSPCON, SSPCON2 – управления

• SSPSTAT – состояния

• SSPBUF – буфер данных

• SSPSR – внутренний сдвиговый регистр

• SSPADD – адреса.

Режимы I2C:

• ведомый, 7-разрядный адрес (в SSDADD – адрес)

• ведомый, 10-разрядный адрес (в SSDADD – адрес)

• ведущий, тактовая частота = Fosc/4/(SSDADD+1)

• программная поддержка ведущего режима (для совместимости)

Включается установкой 5-го бита (SSPEN) регистра SSPCON.

SSPSTAT содержит биты: обнаружение START, STOP, флаг приема данных/адреса, указатель загрузки старшего байта адреса, бит операции (прием/передача).

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

Структурная схема модуля MSSP в режиме I2C


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



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