Перейти к содержанию
    

Значение TWSR в определенной ситуации.

Я работаю в качестве слэйва по TWI в режиме передачи. Я передаю байт. По окончании передачи этого байта, мастер выдает состояние ACK. У меня возникает прерывание и регистр TWSR содержит состояние ST_DATA_ACK. Если после этого мастер выдаст в линию состояние STOP, возникнет ли у меня прерывание, и что будет содеражаться в TWSR? Если не возникнет, то как я соображу, что мастер хочет завязать со мной работать?

Или это запрещено выдавать STOP после ACK?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понимаю, мастер сигналит об окончании приёма выдачей NOT ACK, а прерывания по передаче STOP в режиме slave transmitter не возникает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понимаю, мастер сигналит об окончании приёма выдачей NOT ACK, а прерывания по передаче STOP в режиме slave transmitter не возникает.

Это да. Но меня все же более интересует вариант, когда мастер отвечает ACK. Как тогда? Возможно, это запрещено по протоколу I2C. Но это чисто предположение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мастер может выдать и ACK и NAK, это не запрещено, а после этого или Stop или Repeated Start.

Прерывания по Stop в режиме Slave Transmitter нет.

Начало новой транзакции (или окончание старой) можно определить по состоянию SLAR/SLAW.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...