В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > AVR
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


19.8. Описание регистров модуля TWI

19.8.1. CTRL - общий регистр управления модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x00
- - - - - - SDAHOLD EDIEN
CTRL
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:2 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

  • Бит 1 - SDAHOLD: разрешение задержки на линии SDA

Установка данного бита разрешает внутреннюю генерацию задержки на линии SDA по отношению к падающему фронту на линии SCL.

  • Бит 0 - EDIEN: разрешение работы интерфейса внешнего драйвера

Установка данного бита активизирует работу интерфейса внешнего драйвера. При использовании интерфейса в обычном двухпроводном режиме данный бит должен быть равен нулю. Подробности см. в таблице 19.1.

Таблица 19.1. Разрешение работы интерфейса внешнего драйвера

EDIEN Режим Комментарий
0 Нормальный TWI Двухпроводной интерфейс
Управляемая скорость фронтов, фильтрация входов
1 Интерфейс внешнего драйвера Четырехпроводной интерфейс
Стандартный ввод-вывод, управление скоростью фронтов и фильтрация входов не предусмотрены

19.9. Описание регистров ведущего модуля TWI

19.9.1. CTRLA - регистр управления А ведущего модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x01
INTLVL[1:0] RIEN WIEN ENABLE - - -
CTRLA
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт. Чт. Чт.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:6 - INTLVL[1:0]: уровень прерывания

Биты INTLVL позволяют выбрать уровень прерываний ведущего модуля TWI.

  • Бит 5 - RIEN: разрешение прерывания по чтению

Установка бита RIEN разрешает генерацию прерывания по чтению при установке флага RIF в регистре STATUS. Чтобы генерация прерываний стала возможной, также необходимо записать отличное от нуля значение в биты INTLVL.

  • Бит 4 - WIEN: разрешение прерывания по записи

Установка бита WIEN разрешает генерацию прерывания по записи при установке флага WIF в регистре STATUS. Чтобы генерация прерываний стала возможной, также необходимо записать отличное от нуля значение в биты INTLVL.

  • Бит 3 - ENABLE: разрешение работы ведущего модуля TWI

Установка бита ENABLE разрешает работу ведущего модуля TWI.

  • Биты 2:0 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

19.9.2. CTRLB - регистр управления В ведущего модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x02
- - - - TIMEOUT[1:0] QCEN SMEN
CTRLB
Чтение/запись Чт. Чт. Чт. Чт. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:4 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

  • Биты 3:2 - TIMEOUT[1:0]: выдержка времени для контроля интервалов бездействия шины

Запись отличного от нуля значения в биты TIMEOUT активизирует функцию контроля интервалов бездействия шины. Если шина оказывается неактивной дольше выбранной выдержки времени TIMEOUT, автомат состояний шины введет состояние IDLE.

Варианты настроек выдержки времени показаны в таблице 19.2.

Таблица 19.2. Настройки выдержки времени для контроля интервалов бездействия шины

TIMEOUT[1:0] Групповая конфигурация Описание
00 DISABLED Функция отключена, обычно используется у шин I2C
01 50US 50 мкс, обычно используется у шин SMBus (100 кГц)
10 100US 100 мкс
11 200US 200 мкс
  • Бит 1 - QCEN: разрешение команды QUICK

Установка бита QCEN разрешает работу команды QUICK. В таком случае, условие STOP будет отправляться сразу после подтверждения адреса подчиненным устройством.

  • Бит 0 - SMEN: разрешение режима SMART

Установка бита SMEN активизирует режим SMART. В таком случае, заданное битом ACKACT (регистр управления С) значение бита подтверждения будет отправляться сразу после чтения из регистра DATA.

19.9.3. CTRLC - регистр управления С ведущего модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x03
- - - - - ACKACT CMD[1:0]
CTRLC
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:3 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

  • Бит 2 - ACKACT: выбор подтверждения

С помощью бита ACKACT можно задать значение бита подтверждения, который передается в режиме чтения ведущим устройством. Передача этого бита выполняется при записи команды в биты CMD. Если бит SMEN в регистре управления В равен единице, то заданный бит подтверждения передается при чтении из регистра DATA.

Описание настроек бита ACKACT представлено в таблице 19.3.

Таблица 19.3. Описание бита ACKACT

ACKACT Действие
0 Отправляется ACK
1 Отправляется NACK
  • Биты 1:0 - CMD[1:0]: команда

Запись в биты CMD инициирует выполнение ведущим устройством операции в соответствии с таблицей 19.4. Биты CMD являются стробами и всегда считываются с нулевым значением. Передача бита подтверждения со значением заданным битом ACKACT действительна только для режима чтения ведущим устройством (R). В режиме записи ведущим устройством (W), выполнение команды приводит только к генерации условия REPEATED START или STOP. Бит ACKACT и биты CMD необходимо записывать одновременно. В этом случае, перед исполнением команды будет выполнено обновление типа подтверждения.

Таблица 19.4. Описание бит CMD

CMD[1:0] MODE Команда
00 X (резерв)
00 X Выполнить заданное битом ACKACT подтверждение после условия REPEATED START
10 /W Нет операции
R Выполнить заданное битом ACKACT подтверждение после приема байта
11 X Выполнить заданное битом ACKACT подтверждение после ввода условия STOP

Запись команды в биты CMD приводит к сбросу флагов прерываний ведущего устройства и флага CLKHOLD.

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

Бит 7 6 5 4 3 2 1 0  
+0x04
RIF WIF CLKHOLD RXACK ARBLOST BUSERR BUSSTATE[1:0]
STATUS
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Бит 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] Групповая конфигурация Описание
00 UNKNOWN неопределенное состояние шины
01 IDLE шина свободна
10 OWNER шина занята её владельцем
11 BUSY шина занята внешним устройством

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

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

Бит 7 6 5 4 3 2 1 0  
+0x05
BAUD[7:0]
BAUD
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0

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

fTWI = fSYS/[2(5+BAUD)], Гц (1)

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

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

BAUD = (fSYS/2 · fTWI) - 5 (2)

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

19.9.6. ADDR - регистр адреса ведущего модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x06
ADDR[7:0]
ADDR
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0

Если шина находится в состоянии IDLE, то запись в регистр адреса (ADDR) 7-битного подчиненного адреса и бита направления (R/W) инициирует передачу условия START, семи бит адреса и бита R/W. Если во время такой записи шина была в состоянии OWNER, вводится условие REPEATED START. Если предыдущей транзакцией было чтение ведущим устройством и еще не было отправлено подтверждение, перед генерацией условия REPEATED START передается бит подтверждения со значением заданным битом ACKACT.

После завершения операции, и приема от подчиненного устройства бита подтверждения, линия SCL переводится в низкое состояние, но только при условии, что не был проигран арбитраж. Флаг WIF становится равным единице.

Если во время записи в ADDR состояние шины было неопределенным, устанавливаются флаги WIF и BUSERR.

Все флаги ведущего модуля TWI автоматически сбрасываются во время записи ADDR. К их числу относятся BUSERR, ARBLOST, RIF и WIF. Чтение регистра ADDR ведущего устройства можно выполнить в любой момент. Это никак не повлияет на текущую активность шины.

19.9.7. DATA - регистр данных ведущего модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x07
DATA[7:0]
DATA
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0

Регистр данных (DATA) используется для передачи и приема данных. Передача и приема данных выполняется путем логических сдвигов регистра DATA через линию SDA. Из этого следует, что доступ к регистру DATA во время передачи байта невозможен (блокируется на аппаратном уровне). Доступ к регистру данных возможен, только если линия SCL удерживается ведущим устройством в низком состоянии, т.е. когда бит CLKHOLD равен единице.

В режиме записи ведущим устройством, запись в регистр DATA запустит передачу байта данных, а, затем, прием подтверждения от подчиненного устройства. Флаги WIF и CLKHOLD становятся равными единице. В режиме чтения ведущим устройством флаги RIF и CLKHOLD принимают единичное значение по завершении приема регистром DATA одного байта данных. Если активен режим SMART, то чтение регистра DATA запустит заданную битом ACKACT операцию. При возникновении ошибок во время приема, вместо флага RIF, устанавливаются флаги WIF и BUSERR.

Доступ к регистру DATA приводит к сбросу флагов прерываний ведущего устройства и флага CLKHOLD.



<-- Предыдущая страница Оглавление Следующая страница -->