Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
150
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

20.4.3. Регистр данных

Регистр данных модуля SMBus0 SMB0DAT содержит байт последовательных данных, который необходимо передать, или байт последовательных данных, который только что принят. Программа может прочитать из регистра или записать в регистр данные, когда флаг SI установлен в 1; программа не должна пытаться обратиться к регистру SMB0DAT, когда модуль SMBus включен и флаг SI сброшен в 0, т.к. в этот момент может осуществляться аппаратный сдвиг байта данных в регистр или из регистра.

Данные всегда сдвигаются старшими разрядами вперед. После приема байта первый бит принятых данных занимает старший разряд регистра SMB0DAT. Когда данные выдвигаются из регистра, они одновременно появляются на шине. Поэтому регистр SMB0DAT всегда содержит последний байт данных, присутствующий в настоящий момент на шине. Таким образом, в случае потери арбитража переход от ведущего передатчика к ведомому приемнику осуществляется с корректными данными в регистре SMB0DAT.

Рисунок 20.10. SMB0DAT: Регистр данных модуля SMBus0

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

 

 

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0xC2

 

 

 

 

 

 

 

 

SFR страница: 0

Биты 7-0: SMB0DAT: Данные модуля SMBus0.

Регистр SMB0DAT содержит байт данных, которые должны передаваться последовательному интерфейсу SMBus, или данные, только что принятые от последовательного интерфейса SMBus. Читать из этого регистра или записывать в этот регистр можно всегда, когда флаг прерывания от последовательного порта SI (SMB0CN.3) установлен в 1. Когда флаг SI не установлен в 1, система может находится в процессе сдвига данных в регистр (или из регистра) SMB0DAT и обращаться к этому регистру нельзя.

20.4.4. Регистр адреса

Регистр адреса SMB0ADR содержит адрес ведомого для интерфейса SMBus0. В ведомом режиме семь старших значащих битов образуют 7-битный адрес ведомого. Младший значащий бит, бит 0, используется для разрешения распознавания адреса общего вызова (0х00). Если бит 0 установлен в 1, адрес общего вызова будет распознаваться. В противном случае, адрес общего вызова будет игнорироваться. Содержимое этого регистра игнорируется, если модуль SMBus0 работает в ведущем режиме.

245

Ред. 1.2