I2C Control register 1 (I2C_CR1)
Первый регистр управления интерфейсом I2C
Смещение (Address offset): 0x00
Reset value: 0x0000
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SWRST | Reserved | ALERT | PEC | POS | ACK | STOP | START |
| rw | --- | rw | rw | rw | rw | rw | rw |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| NOSTRETCH | ENGC | ENPEC | ENARP | SMBTYPE | Reserved | SMBUS | PE |
| rw | rw | rw | rw | rw | --- | rw | rw |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
При установке бита происходит программный сброс интерфейса I2C. Перед сбросом убедиться, что шина свободна.
Можно использовать для повторной инициализации устройства после ошибки или из состояния блокировки. Например: бит BUSY установлен и не сбрасывается из-за сбоя в работе шины.
0 : интерфейс I2C не находится в состоянии сброса
1 : сброс I2C. Интерфейс I2C находится в состоянии сброса
Управляется программно, а так же сбрасывается аппаратно, когда PE=0.
0 : устанавливает сигнал SMBA на высокий уровень. От ведомого устройства нет запроса на обмен с ведущим. При получении обращения от ведущего устройства ведомое не подтверждает обмен.
1 : устанавливает сигнал SMBA на низкий уровень, формируя запрос к ведущему на обмен. При получении обращения от ведущего устройства ведомое подтверждает обмен.
Состояние обмена по SMBus с использованием сигнала Alert идентифицируется битом SMBALERT в регистре I2C_SR1.
Управляется программно. Сбрасывается аппаратно: когда передается PEC, или в состоянии START или STOP, или когда PE=0
0 : нет передачи PEC
1 : PEC вычисляется и передаётся в режимах и приёма, и передачи
При проигрыше арбитража PEC вычисляется некорректно
Устанавливается и сбрасывается программно. Сбрасывается аппаратно при PE=0.
0 :
1 :
Устанавливается и сбрасывается программно. Сбрасывается аппаратно при PE=0.
0 : нет возврата подтверждения
1 : подтверждение возвращается после получения байта (при совпадении адреса или данных)
Устанавливается и сбрасывается программно. Сбрасывается аппаратно при обнаружении состояния 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
Этот бит управляется программно или аппаратно при отправке 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
0 : Clock stretching enabled
1 : Clock stretching disabled
Этот бит используется для отключения синхронизации в режиме slave, когда установлен флаг ADDR или BTF, до тех пор, пока он не будет сброшен программно.
0 : General call disabled. Address 00h is NACKed
1 : General call enabled. Address 00h is ACKed
0 : PEC calculation disabled
1 : PEC calculation enabled
0 : ARP disable
1 : ARP enable
Если SMBTYPE=0 распознаётся адрес по умолчанию SMBus Device. Если SMBTYPE=1 распознаётся адрес SMBus Host.
0 : SMBus Device
1 : SMBus Host
0 : I2C mode
1 : SMBus mode
0 : периферия отключена
1 : периферия включена: соответствующие функции ввода-вывода выбираются в качестве альтернативных функций в зависимости от бита SMBus
Если этот бит сбрасывается во время текущего обмена данными, периферийное устройство отключается в конце текущего обмена данными, когда оно возвращается в состояние ОЖИДАНИЯ (свободной линии - IDLE state).
Все сбросы битов из-за PE=0 происходят в конце обмена данными.
В режиме ведущего (master mode) этот бит не должен быть сброшен до завершения обмена данными.