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