I2C Peripheral Interface
The Sapphire RV64 SoC has up to 3
I2C master/slave peripherals. You use the system_i2c_2*
ports to calibrate the DDR DRAM memory; if you do not want to perform calibration, you
can use this peripheral for your own purposes. Use these parameters to reference the
interface:
| Port | Direction | Description |
|---|---|---|
| system_i2c_n_io_sda_write | Output | SDA output for user device. |
| system_i2c_n_io_sda_read | Input | SDA input for user device. |
| system_i2c_n_io_scl_write | Output | SCL output for user device. |
| system_i2c_n_io_scl_read | Input | SCL input for user device. |
| Address Offset | Register Name | Privilege | Width |
|---|---|---|---|
| 0x0000_0000 | txData | Read/Write | 32 |
| 0x0000_0004 | txAck | Read/Write | 32 |
| 0x0000_0008 | rxData | Read/Write | 32 |
| 0x0000_000C | rxAck | Read/Write | 32 |
| 0x0000_0020 | Interrupt Enable | Read/Write | 32 |
| 0x0000_0024 | Interrupt Flag | Read/Write | 32 |
| 0x0000_0028 | Sampling Clock Divider | Write | 32 |
| 0x0000_002C | Timeout | Write | 32 |
| 0x0000_0030 | tsuData | Write | 32 |
| 0x0000_0040 | Master Status | Read/Write | 32 |
| 0x0000_0044 | Slave Status | Read | 32 |
| 0x0000_0048 | Slave Override | Read/Write | 32 |
| 0x0000_0050 | tlow | Write | 32 |
| 0x0000_0054 | tHigh | Write | 32 |
| 0x0000_0058 | tBuf | Write | 32 |
| 0x0000_0080 | Hit Context | Read | 32 |
| 0x0000_0084 | Filtering Status | Read | 32 |
| 0x0000_0088 | Filtering Configuration 0 | Write | 32 |
| 0x0000_008C | Filtering Configuration 1 | Write | 32 |