ABP I2C Slave¶
Features¶
Theory of Operation¶
Programming Model¶
APB I2C Slave CSRs¶
I2CS_DEV_ADDRESS offset = 0x000¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:7 |
RW |
Reserved |
|
SLAVE_ADDR |
6:0 |
RW |
0x6F |
I2C Device Address |
I2CS_ENABLE offset = 0x004¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:1 |
RW |
||
IP_ENABLE |
0:0 |
RW |
I2CS_DEBOUNCE_LENGTH offset = 0x008¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
DEB_LEN |
7:0 |
RW |
0x14 |
I2CS_SCL_DELAY_LENGTH offset = 0x00C¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
SCL_DLY_LEN |
7:0 |
RW |
0x14 |
I2CS_SDA_DELAY_LENGTH offset = 0x010¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
SDA_DLY_LEN |
7:0 |
RW |
0x14 |
I2CS_MSG_I2C_APB offset = 0x040¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
I2C_TO_APB |
7:0 |
RW |
0x00 |
I2CS_MSG_I2C_APB_STATUS offset = 0x044¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:1 |
RW |
Reserved |
|
I2C_TO_APB_STATUS |
0:0 |
RW |
0x00 |
I2CS_MSG_APB_I2C offset = 0x048¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
APB_TO_I2C |
7:0 |
RW |
0x00 |
I2CS_MSG_APB_I2C_STATUS offset = 0x04C¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:1 |
RW |
Reserved |
|
APB_TO_I2C_STATUS |
0:0 |
RW |
0x00 |
I2CS_FIFO_I2C_APB_WRITE_DATA_PORT offset = 0x080¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
I2C_APB_WRITE_DATA_PORT |
31:0 |
RW |
I2CS_FIFO_I2C_APB_READ_DATA_PORT offset = 0x084¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
I2C_APB_READ_DATA_PORT |
31:0 |
RW |
I2CS_FIFO_I2C_APB_FLUSH offset = 0x088¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:1 |
RW |
Reserved |
|
ENABLE |
0:0 |
RW |
Writing a 1 to this register bit will flush the I2CtoAPB FIFO, |
|
clearing all contents and rendering the FIFO to be empty |
I2CS_FIFO_I2C_APB_WRITE_FLAGS offset = 0x08C¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
RW |
Reserved |
|
FLAGS |
2:0 |
RW |
I2CS_FIFO_I2C_APB_READ_FLAGS offset = 0x090¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
RW |
Reserved |
|
FLAGS |
2:0 |
RW |
I2CS_FIFO_APB_I2C_WRITE_DATA_PORT offset = 0x0C0¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
I2C_APB_WRITE_DATA_PORT |
31:0 |
RW |
I2CS_FIFO_APB_I2C_READ_DATA_PORT offset = 0x0C4¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
I2C_APB_READ_DATA_PORT |
31:0 |
RW |
I2CS_FIFO_APB_I2C_FLUSH offset = 0x0C8¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:1 |
RW |
Reserved |
|
ENABLE |
0:0 |
RW |
Writing a 1 to this register bit will flush the APBtoI2C FIFO, |
|
clearing all contents and rendering the FIFO to be empty |
I2CS_FIFO_APB_I2C_WRITE_FLAGS offset = 0x0CC¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
R |
Reserved |
|
FLAGS |
2:0 |
R |
I2CS_FIFO_APB_I2C_READ_FLAGS offset = 0x0D0¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
R |
Reserved |
|
FLAGS |
2:0 |
R |
I2CS_INTERRUPT_STATUS offset = 0x100¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
R |
Reserved |
|
I2C_APB_FIFO_WRITE_STATUS |
2:2 |
R |
||
APB_I2C_FIFO_READ_STATUS |
1:1 |
R |
||
APB_I2C_MESSAGE_AVAILABLE |
0:0 |
R |
I2CS_INTERRUPT_ENABLE offset = 0x104¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
RW |
Reserved |
|
I2C_APB_FIFO_WRITE_STATUS_INT_ENABLE |
2:2 |
RW |
||
APB_I2C_FIFO_READ_STATUS_INT_ENABLE |
1:1 |
RW |
||
APB_I2C_MESSAGE_AVAILABLE_INT_ENABLE |
0:0 |
RW |
I2CS_INTERRUPT_I2C_APB_WRITE_FLAGS_SELECT offset = 0x108¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
WRITE_FLAG_FULL |
7:7 |
RW |
||
WRITE_FLAG_1_SPACE_AVAIL |
6:6 |
RW |
||
WRITE_FLAG_2_3_SPACE_AVAIL |
5:5 |
RW |
||
WRITE_FLAG_4_7_SPACE_AVAIL |
4:4 |
RW |
||
WRITE_FLAG_8_31_SPACE_AVAIL |
3:3 |
RW |
||
WRITE_FLAG_32_63_SPACE_AVAIL |
2:2 |
RW |
||
WRITE_FLAG_64_127_SPACE_AVAIL |
1:1 |
RW |
||
WRITE_FLAG_128_SPACE_AVAIL |
0:0 |
RW |
I2CS_INTERRUPT_APB_I2C_READ_FLAGS_SELECT offset = 0x10C¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
READ_FLAG_128_SPACE_AVAIL |
7:7 |
RW |
||
READ_FLAG_64_127_SPACE_AVAIL |
6:6 |
RW |
||
READ_FLAG_32_63_SPACE_AVAIL |
5:5 |
RW |
||
READ_FLAG_8_31_SPACE_AVAIL |
4:4 |
RW |
||
READ_FLAG_4_7_SPACE_AVAIL |
3:3 |
RW |
||
READ_FLAG_2_3_SPACE_AVAIL |
2:2 |
RW |
||
READ_FLAG_1_SPACE_AVAIL |
1:1 |
RW |
||
READ_FLAG_EMPTY |
0:0 |
RW |
I2CS_INTERRUPT_TO_APB_STATUS offset = 0x140¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
RW |
||
APB_I2C_FIFO_WRITE_STATUS |
2:2 |
RW |
||
I2C_APB_FIFO_READ_STATUS |
1:1 |
RW |
||
NEW_I2C_APB_MSG_AVAIL |
0:0 |
RW |
I2CS_INTERRUPT_TO_APB_ENABLE offset = 0x144¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
RESERVED |
7:3 |
RW |
||
APB_I2C_FIFO_WRITE_STATUS_ENABLE |
2:2 |
RW |
||
I2C_APB_FIFO_READ_STATUS_ENABLE |
1:1 |
RW |
||
NEW_I2C_APB_MSG_AVAIL_ENABLE |
0:0 |
RW |
I2CS_INTERRUPT_APB_I2C_WRITE_FLAGS_SELECT offset = 0x148¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
WRITE_FLAG_FULL |
7:7 |
RW |
||
WRITE_FLAG_1_SPACE_AVAIL |
6:6 |
RW |
||
WRITE_FLAG_2_3_SPACE_AVAIL |
5:5 |
RW |
||
WRITE_FLAG_4_7_SPACE_AVAIL |
4:4 |
RW |
||
WRITE_FLAG_8_31_SPACE_AVAIL |
3:3 |
RW |
||
WRITE_FLAG_32_63_SPACE_AVAIL |
2:2 |
RW |
||
WRITE_FLAG_64_127_SPACE_AVAIL |
1:1 |
RW |
||
WRITE_FLAG_128_SPACE_AVAIL |
0:0 |
RW |
I2CS_INTERRUPT_I2C_APB_READ_FLAGS_SELECT offset = 0x14C¶
Field |
Bits |
Type |
Default |
Description |
---|---|---|---|---|
READ_FLAG_128_SPACE_AVAIL |
7:7 |
RW |
||
READ_FLAG_64_127_SPACE_AVAIL |
6:6 |
RW |
||
READ_FLAG_32_63_SPACE_AVAIL |
5:5 |
RW |
||
READ_FLAG_8_31_SPACE_AVAIL |
4:4 |
RW |
||
READ_FLAG_4_7_SPACE_AVAIL |
3:3 |
RW |
||
READ_FLAG_2_3_SPACE_AVAIL |
2:2 |
RW |
||
READ_FLAG_1_SPACE_AVAIL |
1:1 |
RW |
||
READ_FLAG_EMPTY |
0:0 |
RW |