Skip to content

Latest commit

 

History

History
381 lines (315 loc) · 28.9 KB

apb_i2cs.rst

File metadata and controls

381 lines (315 loc) · 28.9 KB

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