STATUS - регистр статуса ведущего устройства 


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



ЗНАЕТЕ ЛИ ВЫ?

STATUS - регистр статуса ведущего устройства



Бит                  
+0x04
RIF WIF CLKHOLD RXACK ARBLOST BUSERR BUSSTATE[1:0]
STATUS
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

· Бит 7 - RIF: флаг прерывания по чтению

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

Данный флаг также автоматически сбрасывается в следующих случаях:

· Запись в регистр ADDR.

· Запись в регистр DATA.

· Чтение регистра DATA.

· Запись действительной команды в биты CMD (регистр CTRLC).

· Бит 6 - WIF: флаг прерывания по записи

Флаг прерывания по записи (WIF) становится равным единице после передачи байта в режиме записи ведущим устройством. Флаг устанавливается, независимо от ошибок шины и результата арбитража. Установка флага WIF происходит, даже если проигрывается арбитраж при отправке бита NACK в режиме чтения ведущим устройством и если вводится условие START при неопределенном состоянии шины (UNKNOWN). Запись единицы в данный бит приводит к сбросу флага WIF. Когда данный флаг равен единице, линия SCL удерживается на низком уровне, что приводит к задержке синхронизации шины TWI.

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

Автоматический сброс флага происходит при тех же условиях, что и у флага RIF.

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

Флаг задержки синхронизации ведущим устройством (CLKHOLD) становится равным единице, если ведущее устройство удерживает линию SCL в низком состоянии. Он является флагом статуса и доступен только для чтения. Флаг CLKHOLD равен единице, когда установлен флаг RIF и/или WIF. Сброс флагов прерываний приводит к освобождению линии SCL, а, следовательно, и к сбросу флага CLKHOLD.

Автоматический сброс флага происходит при тех же условиях, что и у флага RIF.

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

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

· Бит 3 - ARBLOST: флаг проигрыша арбитража

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

Автоматический сброс флага ARBLOST происходит во время записи в регистр ADDR.

· Бит 2 - BUSERR: флаг ошибки шины

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

Автоматический сброс флага BUSERR происходит при записи в регистр ADDR.

· Биты 1:0 - BUSSTATE[1:0]: состояние шины

Биты BUSSTATE сигнализируют о текущем состоянии шины TWI в соответствии с таблицей 19.5. Состояние шины изменяется в зависимости от выполняющихся на ней действий. См. раздел 19.4 "Логика контроля состояния шины TWI".

 

Таблица 19.5. Состояние шины ведущего модуля TWI

BUSSTATE[1:0] Групповая конфигурация Описание
  UNKNOWN неопределенное состояние шины
  IDLE шина свободна
  OWNER шина занята её владельцем
  BUSY шина занята внешним устройством

Запись значения 01 в биты BUSSTATE переводит автомат состояний шины в состояние IDLE. Ввод иных состояний через логику контроля состояния шины не предусмотрено. Когда ведущий модуль TWI отключен, а также когда МК находится в состоянии сброса, логика контроля состояния шины отключается, а шина находится в состоянии UNKNOWN.

BAUD - регистр скорости

Бит                  
+0x05
BAUD[7:0]
BAUD
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

Регистр скорости (BAUD) задает соотношение между частотой системной синхронизации и частотой синхронизации шины TWI (SCL). Данное соотношение можно представить в виде выражения:

19.10 Ftwi = Fsys/[2(5+BAUD)], Гц (1)

В регистр BAUD необходимо записать значение, которому соответствует частота синхронизации шины TWI (fTWI) не более 100 кГц или не более 400 кГц, в зависимости от используемого в приложении стандарта.

После преобразования выражения (1) можно получить выражение для нахождения значения BAUD:

19.11 BAUD = (Fsys/2 * Ftwi) - 5 (2)

Запись в регистр BAUD необходимо выполнить в отключенном состоянии ведущего модуля TWI.



Поделиться:


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

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