Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[91]

сброс бита I2CEN сбрасывают I2CTXUDF. I2CTXUDF используется только в режиме передачи.

Переполнение при приеме

Переполнение при приеме происходит, когда сдвиговый регистр приема и буфер приема заполнены. Когда происходит переполнение при приеме, устанавливается бит I2CRXOVR. Потери данных не происходит, поскольку в этом случае линия SCL удерживается в состоянии низкого уровня, которое приостанавливает дальнейшую активность на шине. Чтение регистра I2CDR или сброс бита I2CEN сбрасывают бит I2CRXOVR. Бит I2CRXOVR используется только в режиме приема.

152.6. Генерация тактовых сигналов I2C и синхронизация

Модуль I2C работает с источником тактовой частоты, выбираемым битами I2CSSELx. Прескалер I2CPSC и регистры I2CSCLH и I2CSCLL определяют частоту и скважность тактового сигнала SCL для режима ведомого, как показано на рис. 15-13.

Примечание: максимальная частота I2CCLK

I2CIN JlJlJlJlJlJlJnjnjnJT/lJl

I2CCLK -[

(I2CPSC + 1)x(I2CSCLH + 1)(I2CPSC + 1)x(I2CSCLL + 1)

Рис. 15-13. Генерация сигналов на линии SCL модуля I2C

Источник тактовых импульсов I2CIN модуля I2C должен иметь частоту, по крайней мере, в 10 раз больше частоты SCL в обоих режимах ведущего и ведомого. Это условие выполняется автоматически в режиме ведущего регистрами

I2CSCLL и I2CSCLH.

Примечание: значение U2CPSC

Когда I2CPSC>4, функционирование может оказаться непредсказуемым. Для установки частоты SCL необходимо использовать регистры I2CSCLL и I2CSCLH.

Во время процедуры арбитража тактовые импульсы от различных ведущих должны быть синхронизированы. Устройство, первым генерирующее период низкого уровня на SCL, берет верх над другими устройствами, вынуждая их запустить их собственные периоды низкого уровня. В этом случае SCL удерживается в состоянии низкого уровня устройством с самым долгим периодом низкого уровня. Другие устройства должны ожидать, пока линия SCL будет освобождена перед стартом своих периодов высокого уровня. Рис. 15-14 ил-


Состояние ожидания

Старт ВЫСОКОГО периода

SCL от устройства № 1

устройства № 2

Линия шины

Рис. 15-14. Синхронизация двух тактовых генераторов I2C во время арбитража

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

152.7. Использование модуля I2C в режимах пониженного энергопотребления

Модуль I2C может использоваться в MSP430 в режимах пониженного энергопотребления. Когда для модуля I2C задействован внутренний источник тактирования, модуль работает нормально независимо от режима работы MSP430. Когда внутренний источник тактирования модуля I2C отсутствует, обеспечивается автоматическая активация тактирования. Когда модуль I2C простаивает, I2CBUSY=0 и источник тактирования I2CIN отключен от модуля I2C, сохраняя энергию источника питания.

Когда источник тактирования I2C неактивен, модуль I2C автоматически активирует выбранный источник тактирования, когда это необходимо, независимо от установок управляющих битов источника тактирования. Источник тактирования остается активным до перехода модуля I2C в состояние ожидания. После возврата модуля I2C в режим ожидания, управление источником тактирования возвращается к установкам его управляющих битов.

Автоматическая активация тактирования I2C происходит в следующих ситуациях:

• В режиме ведущего тактирование активируется, когда I2CSTT=1 и остается активным до завершения переноса, после чего модуль I2C возвращается в состояние ожидания.


• В режиме ведомого тактирование активируется, когда обнаружено условие «СТАРТ» и остается активным до завершения переноса, после чего модуль I2C возвращается в состояние ожидания. После определения условия «СТАРТ» устанавливается флаг STTIFG и модуль удерживает линию SCL в низком состоянии, пока источник тактирования не станет активным. Как только источник запускается, модуль I2C освобождает линию SCL ведущему. Когда модуль I2C активирует неактивный источник тактирования, источник тактирования становится активным для всего устройства, и любая периферия, сконфигурированная для использования этого источника, окажется задействованной. Например, таймер, использующий SMCLK, будет инкрементироваться, пока модуль I2C будет удерживать SMCLK в активном состоянии.

1528. Прерывания I2C

Модуль I2C имеет один вектор прерывания для восьми флагов прерывания, показанных в таблице 15-3. Каждый флаг прерывания имеет собственный бит разрешения прерывания. Когда прерывание разрешено, и бит GIE установлен, флаг прерывания будет генерировать запрос прерывания.

Таблица 15-3. Прерывания I2C

Флаг прерывания

Условие прерывания

Потеря арбитража. Арбитраж может быть потерян, когда два или более передатчиков начинают передачу одновременно или когда программное обеспечение пытается инициировать I2C перенос при I2CBB=1. Флаг ALIFG устанавливается, когда арбитраж был потерян. Когда ALIFG устанавливается, биты MST и I2CSTP очищаются и контроллер I2C становится ведомым приемником.

NACKIFG

Прерывание при отсутствии подтверждения. Этот флаг устанавливается, когда подтверждение ожидается, но не получено.

Прерывание собственного адреса. Этот флаг устанавливается, когда другой ведущий имеет адрес модуля I2C. OAIFG используется только в режиме ведомого.

ARDYIFG

Прерывание «регистр доступен для чтения». Этот флаг устанавливается, когда ранее запрограммированный перенос завершен, и биты статуса обновлены. Это прерывание используется для уведомления ЦПУ о том, что регистры I2C готовы к доступу.

RXRDYIFG

Прерывание/статус готовности приема. Этот флаг устанавливается, когда модуль I2C принял новые данные. RXRDYIFG автоматически очищается, когда I2CDR прочитан и буфер приема пуст. Переполнение приемника показывается, если бит I2CRXOVR=1. RXRDYIFG используется только в режиме приема.

TXRDYIFG

Прерывание/статус готовности передачи. Этот флаг устанавливается, когда модуль I2C готов для новой передачи данных (режим ведущего передатчика) или когда другой ведущий запрашивает данные (режим ведомого передатчика). TXRDYIFG автоматически очищается, когда I2CDR и буфер передачи полны. Опустошение передачи показывается, если I2CTXUDF=1. Не используется в режиме приема.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]