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

0 ... 143 144 145 146 147 148 149 ... 195

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

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

Код статуса

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

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

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

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

TWI

й

STO

TWINT

TWEA

TWI

Загрузить данные

0

0

1

X

Будет передан байт данных; будет получен АСК или NACK

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

Нет действий

1

0

1

X

Будет сформировано состояние ПОВСТАРТ

$28

Нет действий

0

1

1

X

Будет сформировано состояние СТОП (флаг TWSTO будет сброшен)

Нет действий

1

1

1

X

Будет сформировано

состояние СТОП,

а затем состояние СТАРТ

(флаг TWSTO будет

сброшен)

Загрузить данные

0

0

1

X

Будет передан байт данных; будет получен АСК или NACK

Был передан пакет данных, а подтверждение не было принято (NACK)

Нет действий

1

0

1

X

Будет сформировано состояние ПОВСТАРТ

$30

Нет действий

0

1

1

X

Будет сформировано состояние СТОП (флаг TWSTO будет сброшен)

Нет действий

1

1

1

X

Будет сформировано

состояние СТОП,

а затем состояние СТАРТ

(флаг TWSTO будет

сброшен)

$38

Потеря приоритета при передаче пакета адреса или данных

Нет действий

0

0

1

X

Устройство освободит шину и перейдет в режим неадре-сованного ведомого

Нет действий

1

0

1

X

После освобождения шины будет сформировано состояние СТАРТ


После формирования на шине состояния ПОВСТАРТ (код статуса $ 10) ведущий может адресовать того же или другого ведомого, не формируя состояния СТОП. Другими словами, использование состояния ПОВСТАРТ позволяет осуществлять смену ведомых устройств, а также переключаться между режимами «Ведущий-передатчик» и «Ведущий-приемник» без потери контроля над шиной. Все возможные состояния модуля TWI в режиме «Ведущий-передатчик» приведены на Рис. 11.16.

Ведущий-передатчик

Успешная передача ведомому-приемнику /$08j

След передача

начинается

с формирования

состояния

ПОВСТАРТ

Нет подтверждения от адресуемого ведомого

Нет подтверждения после передачи байта данных

Потеря приоритета во время передачи адреса или данных

Потеря приоритета устройство адресовано другим ведущим

SLA

DATA

Продолжает другой ведущий

Продолжает другой ведущий

$68Y$78Y$B0>

SLA

Ведущий-приемник

Продолжает другой ведущий

К соответствующим состояниям в режиме ведомого

S— состояние СТАРТ

Rs— состояние ПОВСТАРТ

Р— состояние СТОП

R— запрос на чтение (1)

W— запрос на запись (0)

А— бит подтверждения (0)

А"— бит неподтверждения (1)

SLA— адрес ведомого устройства

О

От ведущего к ведомому

От ведомого к ведущему

Один или несколько байтов данных

с соответствующими битами подтверждения

— момент установки флага TWINT, п — код статуса в регистре TWSR

Рис. 11.16. Состояния модуля TWI в режиме «Ведущий-передатчик»


11.5.2. Режим «Ведущий-приемник»

В режиме «Ведущий-приемник» ведущий осуществляет прием данных от ведомого устройства. Как обычно, для переключения устройства в режим ведущего модуль TWI должен сформировать на шине состояние СТАРТ. Формат адресного пакета, передаваемого следом, определяет, в каком из режимов будет работать ведущий. При передаче пакета SLA+W модуль переходит в режим «Ведущий-передатчик», а при передаче пакета SLA+R — в режим «Ведущий-приемник».

Формирование состояния СТАРТ начинается после записи в регистр TWCR следующего значения:

TWINT

twea

TWSTA

TWSTO

TWWC

TWEN

-

twie

1

X

1

0

X

1

0

X

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

-Сформировать состояние СТАРТ

-Сбросить флаг TWINT

В результате записи указанного значения модуль TWI начнет контролировать состояние шины и сформирует состояние СТАРТ сразу же, как только она станет свободной.

По окончании формирования состояния СТАРТ устанавливается флаг TWINT; код статуса должен при этом иметь значение, равное $08 (Табл. 11.9). Для переключения модуля в режим «Ведущий-передатчик» необходимо передать по шине пакет SLA+R. Для этого содержимое пакета загружается в регистр TWDR, а в регистр TWCR заносится следующее значение:

TWINT

TWEA

TWSTA

TWSTO

TWWC

TWEN

-

twie

1

X

0

0

X

1

1

X

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

-Сбросить флаг TWINT

После передачи адресного пакета и приема бита подтверждения флаг TWINT снова устанавливается в 1. Код статуса на этом этапе может иметь одно из следующих значений: $38, $40 или $48. Какие действия необходимо предпринять при обнаружении того или иного кода, подробно рассмотрено в Табл. 11.9. Полученный от ведомого устройства байт данных можно будет затем считать из регистра TWDR после последующей установки фла -га TWINT.

Описанная процедура используется для приема всех пакетов данных. После приема последнего байта данных ведущий должен проинформиро-



0 ... 143 144 145 146 147 148 149 ... 195