Раздел:
Документация0 ...
147 148 149 150 151 152 153 ...
195 (продолжение)
Код статуса | Состояние шины и модуля TWI | Действия программы | Следующее действие, выполняемое модулем TWJ |
Чтение/запись в регистр TWDR | Запись в регистр TWCR |
й | I | i | 1 |
$В0 | Потеря приоритета в режиме ведущего во время передачи SLA+R/W; был принят SLA+W с собственным адресом и послано подтверждение (АСК) | Загрузить данные | X | 0 | 1 | 0 | Будет передан последний байт данных; должно быть получено неподтверждение (NACK) |
Загрузить данные | X | 0 | 1 | 1 | Будет передан очередной байт данных; должно быть получено подтверждение (АСК) |
$В8 | Был передан байт данных и получено подтверждение (АСК) | Загрузить данные | X | 0 | 1 | 0 | Будет передан последний байт данных; должно быть получено неподтверждение (NACK) |
Загрузить данные | X | 0 | 1 | 1 | Будет передан очередной байт данных; должно быть получено подтверждение (АСК) |
$С0 | Был передан байт данных и получено не подтверждение (NACK) | Нет действий | 0 | 0 | 1 | 0 | Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено |
Нет действий | 0 | 0 | 1 | 1 | Переключение в режим неадресованного ведомого; разрешено распознавание SLAс собственным адресом; разрешено распознавание общих вызовов, если TWGCE = 1 |
$С0 | Был передан байт данных и получено неподтверждение (NACK) | Нет действий | 1 | 0 | 1 | 0 | Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено; после освобождения шины будет сформировано состояние СТАРТ |
(продолжение)
| | Действия программы | |
Код статуса | Состояние шины и модуля TWI | Чтение/запись в регистр TWDR | Запись в регистр TWCR | Следующее действие, выполняемое модулем TWI |
U | STO | TWINT | TWEA |
| | Нет действий | 1 | 0 | 1 | 1 | Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE = 1; после освобождения шины будет сформировано состояние СТАРТ |
| | Нет действий | 0 | 0 | 1 | 0 | Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено |
$С8 | Был передан последний байт данных и получено подтверждение (АСК) | Нет действий | 0 | 0 | 1 | 1 | Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE=1 |
| Нет действий | 1 | 0 | 1 | 0 | Переключение в режим неадресованного ведомого; распознавание любых вызовов запрещено; после освобождения шины будет сформировано состояние СТАРТ |
| | Нет действий | 1 | 0 | 1 | 1 | Переключение в режим неадресованного ведомого; разрешено распознавание SLA с собственным адресом; разрешено распознавание общих вызовов, если TWGCE = 1; после освобождения шины будет сформировано состояние СТАРТ |
При передаче последнего байта данных необходимо сбросить бит TWEA в 0. После этого модуль перейдет в состояние с кодом статуса $С0 или $С8, в зависимости от того, какой сигнал (АСК или NACK) передаст ведущий в ответ. В состояние с кодом статуса $С8 модуль TWI перейдет в случае, если ведущий затребовал дополнительные данные, передав подтверждение (АСК), несмотря на то, что ведомый передал последний байт и ожидал сигнала NACK.
После перехода в любое из указанных состояний модуль TWI будет игнорировать обращения к нему ведущего. Соответственно, если ведущий будет продолжать обмен по шине, он будет постоянно принимать 1. Обработка адресных пакетов при сброшенном бите TWEA также прекращается, но может быть возобновлена в любой момент времени повторной установкой этого бита. Все возможные состояния модуля TWI в режиме «Ведомый-передатчик» приведены на Рис. 11.19.
Прием своего адреса и передача одного или более байтов данных
Потеря приоритета в режиме ведущего и адресация в качестве ведомого
SLA
Передан последний байт. Переключение в режим неадресованного ведущего (TWEA = 0)
А Р или S
Все 1
Р или S
[ $С8)
S— состояние СТАРТ
Rs— состояние ПОВСТАРТ
Р— состояние СТОП
R—запрос на чтение (1)
W—запросна запись(0)
А— бит подтверждения (0)
А~—бит неподтверждения (1)
SLA— адрес ведомого устройства
DATA
От ведущего к ведомому
От ведомого к ведущему
Один или несколько байтов данных
с соответствующими битами подтверждения
О
— момент установки флага TWINT, п — код статуса в регистре TWSR
Рис. 11.19. Состояния модуля TWI в режиме «Ведомый-передатчик»
0 ...
147 148 149 150 151 152 153 ...
195