Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19.8. Описание регистров модуля TWI19.8.1. CTRL - общий регистр управления модуля TWI
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
Установка данного бита разрешает внутреннюю генерацию задержки на линии SDA по отношению к падающему фронту на линии SCL.
Установка данного бита активизирует работу интерфейса внешнего драйвера. При использовании интерфейса в обычном двухпроводном режиме данный бит должен быть равен нулю. Подробности см. в таблице 19.1. Таблица 19.1. Разрешение работы интерфейса внешнего драйвера
19.9. Описание регистров ведущего модуля TWI 19.9.1. CTRLA - регистр управления А ведущего модуля TWI
Биты INTLVL позволяют выбрать уровень прерываний ведущего модуля TWI.
Установка бита RIEN разрешает генерацию прерывания по чтению при установке флага RIF в регистре STATUS. Чтобы генерация прерываний стала возможной, также необходимо записать отличное от нуля значение в биты INTLVL.
Установка бита WIEN разрешает генерацию прерывания по записи при установке флага WIF в регистре STATUS. Чтобы генерация прерываний стала возможной, также необходимо записать отличное от нуля значение в биты INTLVL.
Установка бита ENABLE разрешает работу ведущего модуля TWI.
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты. 19.9.2. CTRLB - регистр управления В ведущего модуля TWI
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
Запись отличного от нуля значения в биты TIMEOUT активизирует функцию контроля интервалов бездействия шины. Если шина оказывается неактивной дольше выбранной выдержки времени TIMEOUT, автомат состояний шины введет состояние IDLE. Варианты настроек выдержки времени показаны в таблице 19.2. Таблица 19.2. Настройки выдержки времени для контроля интервалов бездействия шины
Установка бита QCEN разрешает работу команды QUICK. В таком случае, условие STOP будет отправляться сразу после подтверждения адреса подчиненным устройством.
Установка бита SMEN активизирует режим SMART. В таком случае, заданное битом ACKACT (регистр управления С) значение бита подтверждения будет отправляться сразу после чтения из регистра DATA. 19.9.3. CTRLC - регистр управления С ведущего модуля TWI
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
С помощью бита ACKACT можно задать значение бита подтверждения, который передается в режиме чтения ведущим устройством. Передача этого бита выполняется при записи команды в биты CMD. Если бит SMEN в регистре управления В равен единице, то заданный бит подтверждения передается при чтении из регистра DATA. Описание настроек бита ACKACT представлено в таблице 19.3. Таблица 19.3. Описание бита ACKACT
Запись в биты CMD инициирует выполнение ведущим устройством операции в соответствии с таблицей 19.4. Биты CMD являются стробами и всегда считываются с нулевым значением. Передача бита подтверждения со значением заданным битом ACKACT действительна только для режима чтения ведущим устройством (R). В режиме записи ведущим устройством (W), выполнение команды приводит только к генерации условия REPEATED START или STOP. Бит ACKACT и биты CMD необходимо записывать одновременно. В этом случае, перед исполнением команды будет выполнено обновление типа подтверждения. Таблица 19.4. Описание бит CMD
Запись команды в биты CMD приводит к сбросу флагов прерываний ведущего устройства и флага CLKHOLD. 19.9.4. STATUS - регистр статуса ведущего устройства
Флаг прерывания по чтению (RIF) становится равным единице в случае успешного приема в режиме чтение ведущим устройством, т.е. когда во время передачи не был проигран арбитраж и не возникло ошибок. Запись единицы в данный бит приводит к сбросу флага RIF. Когда данный флаг равен единице, ведущее устройство удерживает линию SCL на низком уровне, задерживая синхронизацию шины TWI. После сброса флагов прерывания, линия SCL освобождается. Данный флаг также автоматически сбрасывается в следующих случаях:
Флаг прерывания по записи (WIF) становится равным единице после передачи байта в режиме записи ведущим устройством. Флаг устанавливается, независимо от ошибок шины и результата арбитража. Установка флага WIF происходит, даже если проигрывается арбитраж при отправке бита NACK в режиме чтения ведущим устройством и если вводится условие START при неопределенном состоянии шины (UNKNOWN). Запись единицы в данный бит приводит к сбросу флага WIF. Когда данный флаг равен единице, линия SCL удерживается на низком уровне, что приводит к задержке синхронизации шины TWI. Освобождение линии SCL происходит после сброса всех флагов прерываний. Автоматический сброс флага происходит при тех же условиях, что и у флага RIF.
Флаг задержки синхронизации ведущим устройством (CLKHOLD) становится равным единице, если ведущее устройство удерживает линию SCL в низком состоянии. Он является флагом статуса и доступен только для чтения. Флаг CLKHOLD равен единице, когда установлен флаг RIF и/или WIF. Сброс флагов прерываний приводит к освобождению линии SCL, а, следовательно, и к сбросу флага CLKHOLD. Автоматический сброс флага происходит при тех же условиях, что и у флага RIF.
Флаг принятого подтверждения (RXACK) содержит значение последнего принятого от подчиненного устройства бита подтверждения. Равенство данного флага нулю означает, что последним принятым подтверждением было ACK. Если же флаг равен единице, то в последний раз был принят бит подтверждения со значением NACK.
Флаг проигрыша арбитража (ARBLOST) становится равным единице, когда проигрывается арбитраж при передаче старшего бита данных, бита NACK или во время ввода на шине условия START или REPEATED START. Запись единицы в данный бит приводит к сбросу флага ARBLOST. Автоматический сброс флага ARBLOST происходит во время записи в регистр ADDR.
Флаг ошибки шины (BUSERR) становится равным единице при возникновении на шине недопустимого условия. К таким условиям относятся возникшее на шине условие REPEATED START или STOP, а также передача по шине между условиями START некратного девяти числа бит. Запись единицы в данный бит приводит к сбросу флага BUSERR. Автоматический сброс флага BUSERR происходит при записи в регистр ADDR.
Биты BUSSTATE сигнализируют о текущем состоянии шины TWI в соответствии с таблицей 19.5. Состояние шины изменяется в зависимости от выполняющихся на ней действий. См. раздел 19.4 "Логика контроля состояния шины TWI". Таблица 19.5. Состояние шины ведущего модуля TWI
Запись значения 01 в биты BUSSTATE переводит автомат состояний шины в состояние IDLE. Ввод иных состояний через логику контроля состояния шины не предусмотрено. Когда ведущий модуль TWI отключен, а также когда МК находится в состоянии сброса, логика контроля состояния шины отключается, а шина находится в состоянии UNKNOWN. 19.9.5. BAUD - регистр скорости
Регистр скорости (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
Если шина находится в состоянии 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
Регистр данных (DATA) используется для передачи и приема данных. Передача и приема данных выполняется путем логических сдвигов регистра DATA через линию SDA. Из этого следует, что доступ к регистру DATA во время передачи байта невозможен (блокируется на аппаратном уровне). Доступ к регистру данных возможен, только если линия SCL удерживается ведущим устройством в низком состоянии, т.е. когда бит CLKHOLD равен единице. В режиме записи ведущим устройством, запись в регистр DATA запустит передачу байта данных, а, затем, прием подтверждения от подчиненного устройства. Флаги WIF и CLKHOLD становятся равными единице. В режиме чтения ведущим устройством флаги RIF и CLKHOLD принимают единичное значение по завершении приема регистром DATA одного байта данных. Если активен режим SMART, то чтение регистра DATA запустит заданную битом ACKACT операцию. При возникновении ошибок во время приема, вместо флага RIF, устанавливаются флаги WIF и BUSERR. Доступ к регистру DATA приводит к сбросу флагов прерываний ведущего устройства и флага CLKHOLD.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|