Микроконверторы фирмы Analog Devices в микропроцессорных приборных комплексах. Виноградов А.Б - 77 стр.

UptoLike

77
ваются в бит MDI по нарастающему фронту этого импульса.
Таким образом, в режиме «программный ведущий» для организации об-
мена по шине требуется путем программных манипуляций с битами MDE,
MDO, MCO и MDI специального регистра I2CCON формировать на линиях
SDATA и SCLOCK нужным образом синхронизированные сигнальные после-
довательности данных и синхросигнала. Эти последовательности должны
включать условия «START» и «STOP», адреса «ведомого» устройства, биты
подтверждения, собственно данные и синхроимпульсы.
В режиме «программный ведущий» прерывания от модуля I2C не генери-
руются, поскольку моменты начала и конца процедуры обмена по шине опре-
деляются только целевой программой.
Аппаратное построение модуля интерфейса I
2
C накладывает на его работу в
режиме «программный ведущий» следующие функциональные ограничения:
«ведущий» микроконвертор не распознает ситуацию «растягивания
синхронизации», когда «ведомый» удерживает линию SCLOCK в низком уров-
не. Для устранения этого недостатка производитель рекомендует задействовать
при обмене дополнительную линию любой цифровой вход «ведущего», извне
соединенный с линией SCLOCK, через который программа может читать теку-
щее состояние линии SCLOCK;
«ведущий» микроконвертор при наличии на шине I
2
C нескольких веду-
щих не распознает конфликтных ситуаций и не поддерживает арбитраж при
доступе к линии SDATA. Для устранения этого недостатка производитель ре-
комендует задействовать при обмене дополнительную линию любой цифро-
вой вход «ведущего», извне соединенный с линией SDATA, через который про-
грамма может читать текущее состояние линии SDATA.
Режим «аппаратный ведомый» устанавливается путем сброса бита I2CM
специального регистра I2CCON. По умолчанию после сброса модуль SPI/I2C
МК находится с выбранным интерфейсом I
2
C именно в этом режиме (SPE=0,
I2CM=0). «Ведомое» устройство по умолчанию ожидает выдачи на шину усло-
вия «START» от «ведущего». В регистр I2CADD «ведомого» после сброса за-
писывается его адрес устройства (по умолчанию 055h). Когда логика интер-
фейса «ведомого» определяет наличие на шине корректного условия «START»,
бита R/W, а также адреса, совпадающего с текущим содержимым регистра
I2CADD «ведомого», происходит генерация прерывания от модуля I2C (уста-
навливается бит I2CI регистра I2CCON). Если это прерывание разрешено уста-
новкой бита ESI регистра IEIP2, то управление в программе будет передано по
адресу его вектора 003Bh. В очистке флага I2CI средствами программы обра-
ботки прерывания нет необходимости, так как при любом обращении програм-
мы к регистру I2CDAT с целью его записи или чтения бит I2CI будет автомати-
чески аппаратно сброшен (программная же очистка I2CI переведет логику ин-
терфейса I
2
C в первоначальное состояние ожидания выдачи условия «START»).
В регистре I2CDAT к моменту генерации прерывания будет находится пере-
данный «ведущим» 7-битный адрес «ведомого» и бит R/W. Бит R/W, кроме то-