Студопедия — Режимы работы модуля TWI
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Режимы работы модуля TWI






Модуль TWI, может работать в следующих режимах:

• ведущий передатчик (Master Transmitter);

• ведущий приемник (Master Receiver);

• ведомый передатчик (Slave Transmitter);

• ведомый приемник (Slave Receiver).

Выбор конкретного режима определяется логикой работы программы и, соответственно, выполняемыми действиями.

Режим «Ведущий передатчик»

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

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

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

 

 

После передачи адресного пакета и приема бита подтверждения флаг TWINT снова устанавливается в «1». Код статуса на этом этапе может иметь одно из следующих значений: $18, $20 или $38. Какие действия необходимо предпринять при обнаружении того или иного кода, подробно рассмотрено в Табл. 10.7

После передачи адресного пакета должны быть переданы пакеты данных. Значение байта данных загружается в регистр TWDR. Передача пакета данных начинается после записи в регистр TWCR следующего значения:

 

Описанная процедура используется для передачи всех пакетов данных. После передачи последнего байта данных, ведущий должен сформировать на шине состояние СТОП или ПОВСТАРТ. Формирование состояния СТОП начнется после записи в регистр TWCR следующего значения:

 

А для формирования состояния ПОВСТАРТ в регистр TWCR необходимо занести следующее значение:

 

$<$<

 

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

 

Таблица10.7 Коды статуса для режима «Ведущий передатчик»

 

Продолжение таблицы 10.7

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

 

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

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

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

$<_IL_21 5

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

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

 

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

Описанная процедура используется для передачи всех пакетов данных. После приема последнего байта данных ведущий должен проинформировать об этом ведомого передатчика, послав сигнал неподтверждения (NACK). Затем ведущий должен сформировать на шине состояние СТОП или ПОВСТАРТ. Формирование состояния СТОП начнется после записи в регистр TWCR следующего значения:

 

Для формирования состояния ПОВСТАРТ в регистр TWCR необходимо занести следующее значение:

 

$<_IL_218_

 

 

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

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

 

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

 

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

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

 

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

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

Чтобы прервать поток данных, следует сбросить в «0» разряд TWEA регистра TWCR (это можно сделать и во время обмена, т. е. при сброшенном флаге TWINT). В результате после передачи следующего байта на линию SDA будет выдан сигнал неподтверждения, сигнализирующий ведущему о том, что ведомый не может больше осуществлять прием данных. Обработка адресных пакетов при сброшенном разряде TWEA прекращается, но может быть возобновлена в любой момент времени повторной установкой этого разряда.

Если адресация устройства произойдет при нахождении микроконтроллера в «спящем» режиме и разряд TWEA будет при этом установлен, модуль TWI переведет микроконтроллер в рабочий режим.

 

 

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

 

 

Продолжение таблицы 10.9

Продолжение таблицы 10.9

Рис.10.16. Состояния модуля TWI в режиме «Ведомый приемник»

Режим «Ведомый передатчик»

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

Затем необходимо записать в регистр TWCR следующее значение:

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

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

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

 

Продолжение таблицы 10.10

При передаче последнего байта данных необходимо сбросить в «0» разряд TWEA. После этого модуль перейдет в состояние с кодом статуса $C0 или $C8 в зависимости от того, какой сигнал (ACK или NACK) передаст ведущий в ответ. В состояние с кодом статуса $C8 модуль TWI перейдет в случае, если ведущий затребовал дополнительные данные, передав подтверждение (ACK), несмотря на то что ведомый передатчик передал последний байт и ожидал сигнала NACK.

 

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

 

После перехода в любое из указанных состояний модуль TWI будет игнорировать обращения к нему ведущего. Соответственно, если ведущий будет продолжать обмен по шине, он будет постоянно принимать значение «1». Обработка адресных пакетов при сброшенном разряде TWEA также прекращается, но может быть возобновлена в любой момент времени повторной установкой этого разряда.

 







Дата добавления: 2015-12-04; просмотров: 197. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Разновидности сальников для насосов и правильный уход за ними   Сальники, используемые в насосном оборудовании, служат для герметизации пространства образованного кожухом и рабочим валом, выходящим через корпус наружу...

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия