I2C Control register 1 (I2C_CR1)

Первый регистр управления интерфейсом I2C

Смещение (Address offset): 0x00

Reset value: 0x0000

15141312111098
SWRST Reserved ALERT PEC POS ACK STOP START
rw---rwrwrwrwrwrw
00000000
76543210
NOSTRETCH ENGC ENPEC ENARP SMBTYPE Reserved SMBUS PE
rwrwrwrwrw---rwrw
00000000


Bit 15
SWRST
Software reset
Программный сброс

При установке бита происходит программный сброс интерфейса I2C. Перед сбросом убедиться, что шина свободна.

Можно использовать для повторной инициализации устройства после ошибки или из состояния блокировки. Например: бит BUSY установлен и не сбрасывается из-за сбоя в работе шины.

 0 :  интерфейс I2C не находится в состоянии сброса

 1 :  сброс I2C. Интерфейс I2C находится в состоянии сброса

Bit 14
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 13
ALERT
SMBus alert
Дополнительный сигнал с линией прерывания для подчинённых устройств, которые хотят передать мастеру сообщение.

Управляется программно, а так же сбрасывается аппаратно, когда PE=0.

 0 :  устанавливает сигнал SMBA на высокий уровень. От ведомого устройства нет запроса на обмен с ведущим. При получении обращения от ведущего устройства ведомое не подтверждает обмен.

 1 :  устанавливает сигнал SMBA на низкий уровень, формируя запрос к ведущему на обмен. При получении обращения от ведущего устройства ведомое подтверждает обмен.

Состояние обмена по SMBus с использованием сигнала Alert идентифицируется битом SMBALERT в регистре I2C_SR1.

Bit 12
PEC
Packet error checking

Управляется программно. Сбрасывается аппаратно: когда передается PEC, или в состоянии START или STOP, или когда PE=0

 0 :  нет передачи PEC

 1 :  PEC вычисляется и передаётся в режимах и приёма, и передачи

При проигрыше арбитража PEC вычисляется некорректно

Bit 11
POS
Acknowledge/PEC Position (for data reception)

Устанавливается и сбрасывается программно. Сбрасывается аппаратно при PE=0.

 0 : 

 1 : 

Bit 10
ACK
Acknowledge enable
Разрешает возврат подтверждения после приёма

Устанавливается и сбрасывается программно. Сбрасывается аппаратно при PE=0.

 0 :  нет возврата подтверждения

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

Bit 9
STOP
Stop generation

Устанавливается и сбрасывается программно. Сбрасывается аппаратно при обнаружении состояния Stop. Устанавливается аппаратно при обнаружении ошибки тайм-аута.

В режиме ведущего (master mode):

 0 :  No Stop generation

 1 :  Stop generation after the current byte transfer or after the current Start condition is sent.

В режиме ведомого (slave mode):

 0 :  No Stop generation

 1 :  Освобождает линии SCL и SDA после отправки текущего байта

Когда установлен бит STOP, START или PEC, программное обеспечение не должно выполнять доступ на запись к I2C_CR1 до тех пор, пока этот бит не будет очищен аппаратным обеспечением. В противном случае существует риск установки второго запроса STOP, START или PEC

Bit 8
START
Start generation

Этот бит управляется программно или аппаратно при отправке Start или PE=0.

В режиме ведущего (master mode):

 0 :  No Start generation

 1 :  Repeated start generation

В режиме ведомого (slave mode):

 0 :  No Start generation

 1 :  Start generation when the bus is free

Bit 7
NOSTRETCH
Clock stretching disable (Slave mode)

 0 :  Clock stretching enabled

 1 :  Clock stretching disabled

Этот бит используется для отключения синхронизации в режиме slave, когда установлен флаг ADDR или BTF, до тех пор, пока он не будет сброшен программно.

Bit 6
ENGC
General call enable

 0 :  General call disabled. Address 00h is NACKed

 1 :  General call enabled. Address 00h is ACKed

Bit 5
ENPEC
PEC enable

 0 :  PEC calculation disabled

 1 :  PEC calculation enabled

Bit 4
ENARP
ARP enable

 0 :  ARP disable

 1 :  ARP enable

Если SMBTYPE=0 распознаётся адрес по умолчанию SMBus Device. Если SMBTYPE=1 распознаётся адрес SMBus Host.

Bit 3
SMBTYPE
SMBus type
Тип режима SMBus

 0 :  SMBus Device

 1 :  SMBus Host

Bit 2
Reserved
Forced by hardware to 0
Зарезервировано. Аппаратно установлено в 0.
Bit 1
SMBUS
SMBus mode
Выбор режима: SMBus или I2C.

 0 :  I2C mode

 1 :  SMBus mode

Bit 0
PE
Peripheral enable
Включение периферии

 0 :  периферия отключена

 1 :  периферия включена: соответствующие функции ввода-вывода выбираются в качестве альтернативных функций в зависимости от бита SMBus

Если этот бит сбрасывается во время текущего обмена данными, периферийное устройство отключается в конце текущего обмена данными, когда оно возвращается в состояние ОЖИДАНИЯ (свободной линии - IDLE state).

Все сбросы битов из-за PE=0 происходят в конце обмена данными.

В режиме ведущего (master mode) этот бит не должен быть сброшен до завершения обмена данными.