8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 145 146 147 148 149 150 151 ... 195

11.5.3. Режим «Ведомый-приемник»

В режиме «Ведомый-приемник» устройство осуществляет прием данных от ведущего. Перед тем как переключить модуль в режим «Ведомый-приемник», следует занести в старшие биты регистра TWAR адрес устройства и, в соответствии с логикой работы программы, установить или сбросить младший бит регистра (TWGCE). Затем необходимо записать в регистр TWCR следующее значение:

TWINT

TWEA

TWSTA

TWSTO

TWWC

TWEN

-

TWIE

1

0

0

0

1

0

X

-Разрешить работу модуля TWI

-Разрешить подтверждение

После инициализации регистров TWAR и TWCR модуль будет ожидать адресного пакета с адресом, указанным в регистре TWAR, или общего вызова (если его распознавание разрешено). Значение следующего за адресом бита направления определит режим, в который переключится модуль. Если этот бит будет сброшен в 0 (запись), модуль TWI переключится в режим «Ведомый-приемник». В противном случае модуль переключится в режим «Ведомый-передатчик». Напоминаю, что устройство также может самостоятельно переключиться в режим «Ведомый-приемник» из режима ведущего при потере приоритета (см. описание кодов статуса $68 и $78 в Табл. 11.10).

После приема пакета SLA+W установится флаг TWINT, и состояние обмена по шине можно будет, как обычно, определить по коду статуса. Возможные действия со стороны программы, соответствующие тому или иному коду статуса, указаны в Табл. 11.10.

Таблица 11.10. Коды статуса для режима «Ведомый-приемник»

Действия программы

Состояние шины и модуля TWI

Чтение/запись в регистр TWDR

Запись в регистр TWCR

Следующее действие, выполняемое модулем TWI

I

й

STO

TWINT

TWEA

$60

Был принят SLA+W с собственным адресом и послано подтверждение (АСК)

Нет действий

X

0

1

0

Будет принят байт данных и передано неподтверждение (NACK)

Нет действий

X

0

1

1

Будет принят байт данных и передано подтверждение (АСК)


(продолжение)

Действия программы

Состояние шины и модуля TWI

Чтение/запись в регистр TWDR

Запись в регистр TWCR

Следующее действие, выполняемое модулем TWI

1

U

STO

TWINT

TWEA

Потеря приоритета в режиме ведущего во время передачи SLA+R/W; был принят SLA+W с собственным адресом и послано подтверждение (АСК)

Нет действий

X

0

1

0

Будет принят байт данных и передано неподтверждение (NACK)

$68

Нет действий

X

0

1

1

Будет принят байтданных и передано подтверждение (АСК)

$70

Был принят общий вызови послано

Нет действий

X

0

1

0

Будет принят байт данных и передано неподтверждение (NACK)

подтверждение (АСК)

Нет действий

X

0

1

1

Будет принят байт данных и передано подтверждение (АСК)

$78

Потеря приоритета в режиме ведущего во время передачи SLA+R/W; был принят общий вызов и послано подтверждение (АСК)

Нет действий

X

0

1

0

Будет принят байт данных и передано не подтверждение (NACK)

Нет действий

X

0

1

1

Будет принят байт данных и передано подтверждение (АСК)

$80

Устройство уже адресовано: был принят байт

Считать данные

X

0

1

0

Будет принят байт данных и передано неподтверждение (NACK)

данных и послано

подтверждение

(АСК)

Считать данные

X

0

1

1

Будет принят байт данных и передано подтверждение (АСК)

Устройство уже адресовано: был принят байт данных и послано неподтверждение (NACK)

Считать данные

0

0

1

0

Переключение в режим неадресованного ведомого; распознавание любых адресов отключено

$88

Считать данные

0

0

1

1

Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE =1


(продолжение)

Код статуса

Состояние шины и модуля TWI

Действия программы

Следующее действие, выполняемое модулем TWI

Чтение/запись в регистр TWDR

Запись в регистр TWCR

й

STO

TWINT

1

$88

Устройство уже адресовано: был принят байт данных и послано неподтверждение (NACK)

Считать данные

1

0

1

0

Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено; после освобождения шины будет сформировано состояние СТАРТ

Считать данные

1

0

1

1

Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE = 1; после освобождения шины будет сформировано состояние СТАРТ

$90

Устройство уже адресовано (общий вызов): был принят байт данных и послано подтверждение (АСК)

Считать данные

X

0

1

0

Будет принят байт данных и передано не подтверждение (NACK)

Считать данные

X

0

1

1

Будет принят байт данных и передано подтверждение (АСК)

$98

Устройство уже адресовано (общий вызов): был принят байт данных и послано неподтверждение (NACK)

Считать данные

0

0

1

0

Переключение в режим неадресованного ведомого; распознавание любых вызовов отключено

Считать данные

0

0

1

1

Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE = 1

Считать данные

1

0

1

0

Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено; после освобождения шины будет сформировано состояние СТАРТ



0 ... 145 146 147 148 149 150 151 ... 195