I2C Own address register 1 (I2C_OAR1)

Первый регистр адреса интерфейса I2C

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

Reset value: 0x0000

15141312111098
ADDMODE Reserved ADD[9:8]
rw---rw
00000000
76543210
ADD[7:1] ADD0
rwrw
00000000


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) */