Hardware Interfaces and Registers
Interfaces
Referring to the Comportable guideline for peripheral device functionality, the module i2c
has the following hardware interfaces defined.
Primary Clock: clk_i
Other Clocks: none
Bus Device Interfaces (TL-UL): tl
Bus Host Interfaces (TL-UL): none
Peripheral Pins for Chip IO:
Pin name | direction | Description |
---|---|---|
sda | inout | Serial input data bit |
scl | inout | Serial input clock bit |
Inter-Module Signals: Reference
Port Name | Package::Struct | Type | Act | Width | Description |
---|---|---|---|---|---|
tl | tlul_pkg::tl | req_rsp | rsp | 1 |
Interrupts:
Interrupt Name | Type | Description |
---|---|---|
fmt_threshold | Event | host mode interrupt: raised when the FMT FIFO depth is less than the low threshold. |
rx_threshold | Event | host mode interrupt: raised if the RX FIFO is greater than the high threshold. |
fmt_overflow | Event | host mode interrupt: raised if the FMT FIFO has overflowed. |
rx_overflow | Event | host mode interrupt: raised if the RX FIFO has overflowed. |
nak | Event | host mode interrupt: raised if there is no ACK in response to an address or data write |
scl_interference | Event | host mode interrupt: raised if the SCL line drops early (not supported without clock synchronization). |
sda_interference | Event | host mode interrupt: raised if the SDA line goes low when host is trying to assert high |
stretch_timeout | Event | host mode interrupt: raised if target stretches the clock beyond the allowed timeout period |
sda_unstable | Event | host mode interrupt: raised if the target does not assert a constant value of SDA during transmission. |
cmd_complete | Event | host and target mode interrupt. In host mode, raised if the host issues a repated START or terminates the transaction by issuing STOP. In target mode, raised if the external host issues a STOP or repeated START. |
tx_stretch | Status | target mode interrupt: raised if the target is stretching clocks for a read command. This is a level status interrupt. |
tx_overflow | Event | target mode interrupt: raised if TX FIFO has overflowed. |
acq_full | Status | target mode interrupt: raised if ACQ FIFO becomes full. This is a level status interrupt. |
unexp_stop | Event | target mode interrupt: raised if STOP is received without a preceding NACK during an external host read. |
host_timeout | Event | target mode interrupt: raised if the host stops sending the clock during an ongoing transaction. |
Security Alerts:
Alert Name | Description |
---|---|
fatal_fault | This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected. |
Security Countermeasures:
Countermeasure ID | Description |
---|---|
I2C.BUS.INTEGRITY | End-to-end bus integrity scheme. |
Registers
Summary | |||
---|---|---|---|
Name | Offset | Length | Description |
i2c.INTR_STATE | 0x0 | 4 | Interrupt State Register |
i2c.INTR_ENABLE | 0x4 | 4 | Interrupt Enable Register |
i2c.INTR_TEST | 0x8 | 4 | Interrupt Test Register |
i2c.ALERT_TEST | 0xc | 4 | Alert Test Register |
i2c.CTRL | 0x10 | 4 | I2C control register (Functions TBD) |
i2c.STATUS | 0x14 | 4 | I2C live status register |
i2c.RDATA | 0x18 | 4 | I2C read data |
i2c.FDATA | 0x1c | 4 | I2C Format Data |
i2c.FIFO_CTRL | 0x20 | 4 | I2C FIFO control register |
i2c.FIFO_STATUS | 0x24 | 4 | I2C FIFO status register |
i2c.OVRD | 0x28 | 4 | I2C override control register |
i2c.VAL | 0x2c | 4 | Oversampled RX values |
i2c.TIMING0 | 0x30 | 4 | Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. |
i2c.TIMING1 | 0x34 | 4 | Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. |
i2c.TIMING2 | 0x38 | 4 | Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. |
i2c.TIMING3 | 0x3c | 4 | Detailed I2C Timings (directly corresponding to table 10, in the I2C Specification). All values are expressed in units of the input clock period. |
i2c.TIMING4 | 0x40 | 4 | Detailed I2C Timings (directly corresponding to table 10, in the I2C Specification). All values are expressed in units of the input clock period. |
i2c.TIMEOUT_CTRL | 0x44 | 4 | I2C clock stretching timeout control |
i2c.TARGET_ID | 0x48 | 4 | I2C target address and mask pairs |
i2c.ACQDATA | 0x4c | 4 | I2C target acquired data |
i2c.TXDATA | 0x50 | 4 | I2C target transmit data |
i2c.HOST_TIMEOUT_CTRL | 0x54 | 4 | I2C host clock generation timeout value (in units of input clock frequency) |
i2c.INTR_STATE @ 0x0
Interrupt State Register Reset default = 0x0, mask 0x7fff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | rw1c | 0x0 | fmt_threshold | host mode interrupt: raised when the FMT FIFO depth is less than the low threshold. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | rw1c | 0x0 | rx_threshold | host mode interrupt: raised if the RX FIFO is greater than the high threshold. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | rw1c | 0x0 | fmt_overflow | host mode interrupt: raised if the FMT FIFO has overflowed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | rw1c | 0x0 | rx_overflow | host mode interrupt: raised if the RX FIFO has overflowed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | rw1c | 0x0 | nak | host mode interrupt: raised if there is no ACK in response to an address or data write | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | rw1c | 0x0 | scl_interference | host mode interrupt: raised if the SCL line drops early (not supported without clock synchronization). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | rw1c | 0x0 | sda_interference | host mode interrupt: raised if the SDA line goes low when host is trying to assert high | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | rw1c | 0x0 | stretch_timeout | host mode interrupt: raised if target stretches the clock beyond the allowed timeout period | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | rw1c | 0x0 | sda_unstable | host mode interrupt: raised if the target does not assert a constant value of SDA during transmission. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | rw1c | 0x0 | cmd_complete | host and target mode interrupt. In host mode, raised if the host issues a repated START or terminates the transaction by issuing STOP. In target mode, raised if the external host issues a STOP or repeated START. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | ro | 0x0 | tx_stretch | target mode interrupt: raised if the target is stretching clocks for a read command. This is a level status interrupt. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | rw1c | 0x0 | tx_overflow | target mode interrupt: raised if TX FIFO has overflowed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ro | 0x0 | acq_full | target mode interrupt: raised if ACQ FIFO becomes full. This is a level status interrupt. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | rw1c | 0x0 | unexp_stop | target mode interrupt: raised if STOP is received without a preceding NACK during an external host read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | rw1c | 0x0 | host_timeout | target mode interrupt: raised if the host stops sending the clock during an ongoing transaction. |
i2c.INTR_ENABLE @ 0x4
Interrupt Enable Register Reset default = 0x0, mask 0x7fff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | rw | 0x0 | fmt_threshold | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | rw | 0x0 | rx_threshold | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | rw | 0x0 | fmt_overflow | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | rw | 0x0 | rx_overflow | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | rw | 0x0 | nak | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | rw | 0x0 | scl_interference | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | rw | 0x0 | sda_interference | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | rw | 0x0 | stretch_timeout | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | rw | 0x0 | sda_unstable | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | rw | 0x0 | cmd_complete | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | rw | 0x0 | tx_stretch | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | rw | 0x0 | tx_overflow | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | rw | 0x0 | acq_full | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | rw | 0x0 | unexp_stop | Enable interrupt when | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | rw | 0x0 | host_timeout | Enable interrupt when |
i2c.INTR_TEST @ 0x8
Interrupt Test Register Reset default = 0x0, mask 0x7fff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | wo | 0x0 | fmt_threshold | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | wo | 0x0 | rx_threshold | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | wo | 0x0 | fmt_overflow | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | wo | 0x0 | rx_overflow | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | wo | 0x0 | nak | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | wo | 0x0 | scl_interference | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | wo | 0x0 | sda_interference | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | wo | 0x0 | stretch_timeout | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | wo | 0x0 | sda_unstable | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | wo | 0x0 | cmd_complete | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | wo | 0x0 | tx_stretch | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | wo | 0x0 | tx_overflow | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | wo | 0x0 | acq_full | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | wo | 0x0 | unexp_stop | Write 1 to force | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | wo | 0x0 | host_timeout | Write 1 to force |
i2c.ALERT_TEST @ 0xc
Alert Test Register Reset default = 0x0, mask 0x1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | wo | 0x0 | fatal_fault | Write 1 to trigger one alert event of this kind. |
i2c.CTRL @ 0x10
I2C control register (Functions TBD) Reset default = 0x0, mask 0x7
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | rw | 0x0 | ENABLEHOST | Enable Host I2C functionality | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | rw | 0x0 | ENABLETARGET | Enable Target I2C functionality | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | rw | 0x0 | LLPBK | Enable I2C line loopback test If line loopback is enabled, the internal design sees ACQ and RX data as "1" |
i2c.STATUS @ 0x14
I2C live status register Reset default = 0x33c, mask 0x3ff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | ro | x | FMTFULL | FMT FIFO is full | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | ro | x | RXFULL | RX FIFO is full | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | ro | 0x1 | FMTEMPTY | FMT FIFO is empty | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | ro | 0x1 | HOSTIDLE | Host functionality is idle. No Host transaction is in progress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | ro | 0x1 | TARGETIDLE | Target functionality is idle. No Target transaction is in progress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | ro | 0x1 | RXEMPTY | RX FIFO is empty | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | ro | x | TXFULL | TX FIFO is full | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | ro | x | ACQFULL | ACQ FIFO is full | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | ro | 0x1 | TXEMPTY | TX FIFO is empty | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | ro | 0x1 | ACQEMPTY | ACQ FIFO is empty |
i2c.RDATA @ 0x18
I2C read data Reset default = 0x0, mask 0xff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7:0 | ro | x | RDATA |
i2c.FDATA @ 0x1c
I2C Format Data Reset default = 0x0, mask 0x1fff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7:0 | wo | 0x0 | FBYTE | Format Byte. Directly transmitted if no flags are set. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | wo | 0x0 | START | Issue a START condition before transmitting BYTE. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | wo | 0x0 | STOP | Issue a STOP condition after this operation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | wo | 0x0 | READ | Read BYTE bytes from I2C. (256 if BYTE==0) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | wo | 0x0 | RCONT | Do not NAK the last byte read, let the read operation continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | wo | 0x0 | NAKOK | Do not signal an exception if the current byte is not ACK'd |
i2c.FIFO_CTRL @ 0x20
I2C FIFO control register Reset default = 0x0, mask 0x1ff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | wo | 0x0 | RXRST | RX fifo reset. Write 1 to the register resets RX_FIFO. Read returns 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | wo | 0x0 | FMTRST | FMT fifo reset. Write 1 to the register resets FMT_FIFO. Read returns 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4:2 | rw | 0x0 | RXILVL | Trigger level for RX interrupts. If the FIFO depth exceeds this setting, it raises rx_threshold interrupt.
Other values are reserved. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6:5 | rw | 0x0 | FMTILVL | Trigger level for FMT interrupts. If the FIFO depth falls below this setting, it raises fmt_threshold interrupt.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | wo | 0x0 | ACQRST | ACQ FIFO reset. Write 1 to the register resets it. Read returns 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | wo | 0x0 | TXRST | TX FIFO reset. Write 1 to the register resets it. Read returns 0 |
i2c.FIFO_STATUS @ 0x24
I2C FIFO status register Reset default = 0x0, mask 0x7f7f7f7f
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6:0 | ro | x | FMTLVL | Current fill level of FMT fifo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | Reserved | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14:8 | ro | x | TXLVL | Current fill level of TX fifo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | Reserved | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22:16 | ro | x | RXLVL | Current fill level of RX fifo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | Reserved | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30:24 | ro | x | ACQLVL | Current fill level of ACQ fifo |
i2c.OVRD @ 0x28
I2C override control register Reset default = 0x0, mask 0x7
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | rw | 0x0 | TXOVRDEN | Override the SDA and SCL TX signals. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | rw | 0x0 | SCLVAL | Value for SCL Override. Set to 0 to drive TX Low, and set to 1 for high-Z | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | rw | 0x0 | SDAVAL | Value for SDA Override. Set to 0 to drive TX Low, and set to 1 for high-Z |
i2c.VAL @ 0x2c
Oversampled RX values Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | ro | x | SCL_RX | Last 16 oversampled values of SCL. Most recent bit is bit 0, oldest 15. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | ro | x | SDA_RX | Last 16 oversampled values of SDA. Most recent bit is bit 16, oldest 31. |
i2c.TIMING0 @ 0x30
Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | rw | 0x0 | THIGH | The actual time to hold SCL high in a given pulse | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | rw | 0x0 | TLOW | The actual time to hold SCL low between any two SCL pulses |
i2c.TIMING1 @ 0x34
Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | rw | 0x0 | T_R | The nominal rise time to anticipate for the bus (depends on capacitance) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | rw | 0x0 | T_F | The nominal fall time to anticipate for the bus (influences SDA hold times) |
i2c.TIMING2 @ 0x38
Detailed I2C Timings (directly corresponding to table 10 in the I2C Specification). All values are expressed in units of the input clock period. Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | rw | 0x0 | TSU_STA | Actual setup time for repeated start signals | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | rw | 0x0 | THD_STA | Actual hold time for start signals |
i2c.TIMING3 @ 0x3c
Detailed I2C Timings (directly corresponding to table 10, in the I2C Specification). All values are expressed in units of the input clock period. Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | rw | 0x0 | TSU_DAT | Actual setup time for data (or ack) bits | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | rw | 0x0 | THD_DAT | Actual hold time for data (or ack) bits (Note, where required, the parameters TVD_DAT is taken to be THD_DAT+T_F) |
i2c.TIMING4 @ 0x40
Detailed I2C Timings (directly corresponding to table 10, in the I2C Specification). All values are expressed in units of the input clock period. Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15:0 | rw | 0x0 | TSU_STO | Actual setup time for stop signals | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:16 | rw | 0x0 | T_BUF | Actual time between each STOP signal and the following START signal |
i2c.TIMEOUT_CTRL @ 0x44
I2C clock stretching timeout control Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30:0 | rw | 0x0 | VAL | Clock stretching timeout value (in units of input clock frequency) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31 | rw | 0x0 | EN | Enable timeout feature |
i2c.TARGET_ID @ 0x48
I2C target address and mask pairs Reset default = 0x0, mask 0xfffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6:0 | rw | 0x0 | ADDRESS0 | I2C target address number 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13:7 | rw | 0x0 | MASK0 | I2C target mask number 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20:14 | rw | 0x0 | ADDRESS1 | I2C target address number 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27:21 | rw | 0x0 | MASK1 | I2C target mask number 1 |
i2c.ACQDATA @ 0x4c
I2C target acquired data Reset default = 0x0, mask 0x3ff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7:0 | ro | x | ABYTE | Address for accepted transaction or acquired byte | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9:8 | ro | x | SIGNAL | Host issued a START before transmitting ABYTE, a STOP or a RESTART after the preceeding ABYTE |
i2c.TXDATA @ 0x50
I2C target transmit data Reset default = 0x0, mask 0xff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7:0 | wo | 0x0 | TXDATA |
i2c.HOST_TIMEOUT_CTRL @ 0x54
I2C host clock generation timeout value (in units of input clock frequency) Reset default = 0x0, mask 0xffffffff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bits | Type | Reset | Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31:0 | rw | 0x0 | HOST_TIMEOUT_CTRL |