STATUS- регистр статуса подчиненного модуля TWI 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

STATUS- регистр статуса подчиненного модуля TWI



Бит                  
+0x02
DIF APIF CLKHOLD RXACK COLL BUSERR DIR AP
STATUS
Чтение/запись Чт/Зап Чт/Зап Чт. Чт. Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

· Бит 7 - DIF: флаг прерывания по данным

Флаг прерывания по данным (DIF) становится равным единице в случае успешного приема байта данных (под успешным понимается прием без ошибок и коллизий). Запись единицы в данный бит приводит к сбросу флага DIF.

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

Данный флаг автоматически сбрасывается после записи действительной команды в биты CMD регистра CTRLB.

· Бит 6 - APIF: флаг прерывания по адресу/условию STOP

Флаг прерывания по адресу/условию STOP (APIF) становится равным единице, когда подчиненное устройство обнаруживает прием действительного адреса или когда на шине обнаруживается коллизия. Данный флаг также устанавливается при обнаружении на шине условия STOP, но только при условии равенства единице бита PIEN в регистре CTRLA. Запись единицы в бит APIF приводит к сбросу флага прерывания по адресу/условию STOP. Когда данный флаг равен единице, линия SCL удерживается в низком состоянии, что задерживает период синхронизации шины TWI.

Сброс флагов прерываний приводит к освобождению линии SCL.

Данный флаг автоматически сбрасывается при идентичных флагу DIF условиях.

· Бит 5 - CLKHOLD: флаг задержки синхронизации

Равенство единице флага CLKHOLD сигнализирует о том, что подчиненный модуль удерживает линию SCL в низком состоянии. Данный флаг является статусным и, поэтому, доступен только для чтения. Он равен единице в случае установки любого из флагов DIF или APIF. Сброс всех флагов прерываний приводит к освобождению линии SCL, а, следовательно, и к обнулению рассматриваемого флага.

· Бит 4 - RXACK: флаг принятого подтверждения

Флаг принятого подтверждения (RXACK) хранит значение последнего принятого бита подтверждения от ведущего устройства. Данный флаг доступен только для чтения. Равенство флага нулю указывает на то, что последним принятым от ведущего устройства подтверждением было ACK. В свою очередь, равенство флага единице, указывает, что бит подтверждения был принят со значением NACK.

· Бит 3 - COLL: флаг обнаружения коллизии

Флаг обнаружения коллизии подчиненным устройством (COLL) становится равным единице, когда подчиненное устройство оказывается неспособным передать старший бит данных или бит NACK. В случае обнаружения коллизии, подчиненное устройство начнет свою нормальную работу, отключит выход данных и подтверждения, и заблокирует вывод низких уровней на линию SDA. Запись единицы в данный бит приводит к сбросу флага COLL.

Флаг автоматически сбрасывается после обнаружения условия START или REPEATED START.

· Бит 2 - BUSERR: флаг ошибки подчиненного модуля TWI

Флаг ошибки починенного модуля (BUSERR) становится равным единице в случае обнаружения во время передачи по шине недопустимого условия. К недопустимым условиям относятся условие REPEATED START или STOP, а также некратное девяти количество бит с момента последнего условия START. Запись единицы в данный бит приводит к сбросу флага BUSERR.

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

· Бит 1 - DIR: флаг направления чтение/запись

Флаг направления чтения/записи сигнализирует о направлении передачи данных после последнего приема от ведущего устройства пакета адреса. Равенство данного бита единицы указывает на выполнение в данный момент операции "чтение ведущим устройством". Если же флаг равен нулю, то это указывает на выполнение операции "запись ведущим устройством".

· Бит 0 - AP: флаг причины установки флага APIF

Флага подчиненного адреса или условия STOP указывает, что именно, обнаружение действительного адреса или условия STOP, вызвало последнюю установку флага APIF в регистре STATUS.

Таблица 19.8. Определение причины установки флага APIF



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 232; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.190.152.38 (0.006 с.)