Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 




Мероприятия:




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

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

Бит 7 6 5 4 3 2 1 0  
+0x00
INTLVL[1:0] DIEN APIEN ENABLE PIEN PMEN SMEN
CTRLA
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:6 - INTLVL[1:0]: уровень прерывания подчиненного модуля TWI

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

  • Бит 5 - DIEN: разрешение прерывания по данным

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

  • Бит 4 - APIEN: разрешение прерывания по адресу/условию STOP

Установка бита APIEN разрешает генерацию прерывания при установке флага прерывания по адресу/условию STOP (APIF) в регистре STATUS. Чтобы генерация прерываний стала возможной, биты INTLVL должны иметь отличное от нуля значение.

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

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

  • Бит 2 - PIEN: разрешение прерывания по условию STOP

Установка бита PIEN разрешает генерацию прерывания при установке флага APIF в регистре STATUS, вызванное обнаружением условия STOP.

  • Бит 1 - PMEN: разрешение работы в режиме PROMISCUOUS

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

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

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

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

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

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

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

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

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

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

Запись в биты CMD инициирует выполнение подчиненным устройством операции в соответствии с таблицей 19.7. Биты CMD являются стробами и всегда считываются с нулевым значением. Выполняемая операция зависит от состояния флагов прерываний DIF и APIF подчиненного модуля. Подтверждение, заданное битом ACKACT, передается только при приеме от ведущего устройства байт данных или байта адреса.

Таблица 19.7. Команды подчиненного модуля TWI

CMD[1:0] DIR Команда
00 X Нет операции
01 X (резерв)
10 Используется для завершения транзакции
0 Выполнить заданное битом ACKACT подтверждение и перейти к ожиданию любого условия START (S/Sr)
1 Ожидать любое условие START (S/Sr)
11 Используется для ответа на принятый байт адреса (APIF = 1)
0 Выполнить заданное битом ACKACT подтверждение, а затем принять очередной байт
1 Выполнить заданное битом ACKACT подтверждение перед установкой флага DIF
Используется для ответа на принятый байт данных (DIF = 1)
0 Выполнить заданное битом ACKACT подтверждение, а затем перейти к ожиданию очередного байта
1 Нет операции

Запись команды в биты CMD приводит к сбросу флагов прерываний подчиненного модуля и флага CLKHOLD, а также освобождению линии SCL. Бит ACKACT и биты CMD можно записывать одновременно. В таком случае, перед запуском команды, будет выполнено обновление заданного подтверждения.

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

Бит 7 6 5 4 3 2 1 0  
+0x02
DIF APIF CLKHOLD RXACK COLL BUSERR DIR AP
STATUS
Чтение/запись Чт./Зап. Чт./Зап. Чт. Чт. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Бит 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

AP Описание
0 Установку флага APIF вызвало условие STOP
1 Установку флага APIF вызвало обнаружение адреса

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

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

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

Когда ведущее устройство считывает данные из подчиненного, подлежащие отправке данные должны быть записаны в регистр DATA. Передача байта начинается, когда ведущее устройство передаст бит подтверждения, а затем запустит синхронизацию для передачи подчиненным устройством байта данных. Флаги DIF и CLKHOLD становятся равными единице.

Когда ведущее устройство записывает данные в подчиненное устройство и, в результате такой операции, в регистр DATA принят один байт данных, флаги DIF и CLKHOLD станут равными единице. Если активизирован режим SMART, то чтение из регистра DATA инициирует выполнение заданной битом ACKACT операции.

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

19.10.6. ADDRMASK - регистр маски адреса подчиненного модуля TWI

Бит 7 6 5 4 3 2 1 0  
+0x05
ADDRMASK[7:1] ADDREN
ADDRMASK
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:1 - ADDRMASK[7:1]: направление чтение/запись

Данные биты регистра ADDRMASK могут использоваться в качестве второго регистра сравнения адреса или в качестве регистра маски адреса, что зависит от значения бита ADDREN.

Если ADDREN равен нулю, ADDRMASK используется в роли 7-битного регистра маски адреса подчиненного устройства. В таком случае, каждый бит ADDRMASK будет маскировать (исключать из процедуры сравнения) соответствующие биты адреса регистра ADDR. Если бит маски равен единице, то результат сравнения соответствующих бит принятого адреса и регистра ADDR игнорируется. Проще говоря, маскированные биты всегда считаются совпавшими.

Если ADDREN равен единице, в сравнении принимаемого адреса, помимо регистра ADDR, будет участвовать заданное битами ADDRMASK значение. В этом режиме принимаемый адрес сравнивается с двумя значениями: одно в регистре ADDR и еще одно, заданное битами ADDRMASK.

  • Бит 0- ADDREN: назначение бит ADDRMASK

По умолчанию, данный бит равен нулю и биты ADDRMASK выступают в роли маски адреса для регистра ADDR.

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



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





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники