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

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

20.3.3. Режим ведомого передатчика

Последовательные данные выдаются на линию SDA, а тактовые импульсы принимаются с линии SCL. Модуль SMBus0 принимает бит START, а вслед за ним байт данных, который содержит адрес ведомого и бит направления. В этом случае бит направления (R/W) должен быть установлен в 1, инициируя операцию чтения. Если принятый адрес ведомого соответствует адресу, хранящемуся в регистре SMB0ADR, то модуль SMBus0 генерирует бит подтверждения (ACK). Модуль SMBus0 также будет генерировать бит подтверждения (ACK), если принятый адрес является адресом общего вызова (0х00) и бит разрешения адреса общего вызова (SMB0ADR.0) установлен в 1. Модуль SMBus0 принимает тактовые импульсы по линии SCL и передает ведущему один или несколько байт последовательных данных, ожидая подтверждения (ACK) от ведущего после каждого байта. Модуль SMBus0 выходит из режима ведомого после приема бита STOP от ведущего.

Рисунок 20.6. Передача данных в режиме ведомого

Прерывание

S

SLA

R

A

Байт данных

A

Байт данных

N

P

 

 

 

 

 

 

 

 

 

 

 

Прерывание

Полученные интерфейсом

SMBus

Переданные интерфейсом

SMBus

Прерывание Прерывание

S = START

P = STOP

N = NACK

W = WRITE (ЗАПИСЬ)

SLA = Адрес ведомого

20.3.4. Режим ведомого приемника.

Последовательные данные принимаются с линии SDA, а тактовые импульсы принимаются с линии SCL. Модуль SMBus0 принимает бит START, а вслед за ним байт данных, который содержит адрес ведомого и бит направления. В этом случае бит направления (R/W) должен быть сброшен в 0, инициируя операцию записи. Если принятый адрес ведомого соответствует адресу, хранящемуся в регистре SMB0ADR, то модуль SMBus0 генерирует бит подтверждения (ACK). Модуль SMBus0 также будет генерировать бит подтверждения (ACK), если принятый адрес является адресом общего вызова (0х00) и бит разрешения адреса общего вызова (SMB0ADR.0) установлен в 1. Модуль SMBus0 принимает один или несколько байт последовательных данных; после приема каждого байта модуль SMBus0 передает биты подтверждения (ACK) или неподтверждения (NACK) в зависимости от состояния бита АА регистра SMB0CN. Модуль SMBus0 выходит из режима ведомого приемника после приема бита STOP от ведущего.

239

Ред. 1.2

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

Рисунок 20.7. Прием данных в режиме ведомого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

SLA

W

A

Байт данных

A

Байт данных

A

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

Прерывание

 

Прерывание

 

 

 

Полученные интерфейсом

 

 

S = START

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SMBus

 

 

 

 

 

 

 

P = STOP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = ACK

 

 

 

 

 

 

 

 

Переданные интерфейсом

 

 

R = READ (ЧТЕНИЕ)

 

 

 

 

SLA = Адрес ведомого

 

 

SMBus

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ред. 1.2

240