I2C Own address register 1 (I2C_OAR1)
Первый регистр адреса интерфейса I2C
Смещение (Address offset): 0x08
Reset value: 0x0000
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ADDMODE | Reserved | ADD[9:8] | |||||
| rw | --- | rw | |||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADD[7:1] | ADD0 | ||||||
| rw | rw | ||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 15
ADDMODE
Addressing mode (slave mode)
Режим адресации устройства в Slave режиме
0 : 7-битная адресация (10-битный адрес не подтверждается)
1 : 10-битная адресация (7-битный адрес не подтверждается)
Bit 14
Reserved
Should always be kept at 1 by software
Зарезервировано. При записи всегда должно быть установлено в "1"
Bits 13:10
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bits 9:8
ADD[9:8]
Interface address
Адрес интерфейса.
в режиме 7-битной адресации : не используется
в режиме 10-битной адресации : биты [9:8] адреса
Bits 7:1
ADD[7:1]
Interface address
Биты [7:1] адреса интерфйса
Bit 0
ADD0
Interface address
Адрес интерфейса
в режиме 7-битной адресации : не используется
в режиме 10-битной адресации : бит [0] адреса
/******************* Bit definition for I2C_OAR1 register *******************/
#define I2C_OAR1_ADD1_7 ((uint16_t)0x00FE) /* Interface Address */
#define I2C_OAR1_ADD8_9 ((uint16_t)0x0300) /* Interface Address */
#define I2C_OAR1_ADD0 ((uint16_t)0x0001) /* Bit 0 */
#define I2C_OAR1_ADD1 ((uint16_t)0x0002) /* Bit 1 */
#define I2C_OAR1_ADD2 ((uint16_t)0x0004) /* Bit 2 */
#define I2C_OAR1_ADD3 ((uint16_t)0x0008) /* Bit 3 */
#define I2C_OAR1_ADD4 ((uint16_t)0x0010) /* Bit 4 */
#define I2C_OAR1_ADD5 ((uint16_t)0x0020) /* Bit 5 */
#define I2C_OAR1_ADD6 ((uint16_t)0x0040) /* Bit 6 */
#define I2C_OAR1_ADD7 ((uint16_t)0x0080) /* Bit 7 */
#define I2C_OAR1_ADD8 ((uint16_t)0x0100) /* Bit 8 */
#define I2C_OAR1_ADD9 ((uint16_t)0x0200) /* Bit 9 */
#define I2C_OAR1_ADDMODE ((uint16_t)0x8000) /* Addressing Mode (Slave mode) */