Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
378
Добавлен:
21.05.2015
Размер:
7.55 Mб
Скачать
      1. 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). Данное соотношение можно представить в виде выражения:

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

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

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

    1. BAUD = (Fsys/2*Ftwi) - 5 (2)

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

      1. 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 ведущего устройства можно выполнить в любой момент. Это никак не повлияет на текущую активность шины.

      1. 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.

Соседние файлы в папке Архитектура ЭВМ