Altera SoCAL  16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
 All Data Structures Variables Typedefs Groups
Register : SDA Setup Register - ic_sda_setup

Description

This register controls the amount of time delay (in terms of number of l4_sp_clk clock periods) introduced in the rising edge of SCL relative to SDA changing by holding SCL low when I2C services a read request while operating as a slave- transmitter. The relevant I2C requirement is tSU:DAT (note 4) as detailed in the I2C Bus Specification. This register must be programmed with a value equal to or greater than 2.

Note: The length of setup time is calculated using [(IC_SDA_SETUP - 1) * (l4_sp_clk)], so if the user requires 10 l4_sp_clk periods of setup time, they should program a value of 11. The IC_SDA_SETUP register is only used by the I2C when operating as a slave transmitter.

Register Layout

Bits Access Reset Description
[7:0] RW 0x64 SDA Setup Value
[31:8] ??? 0x0 UNDEFINED

Field : SDA Setup Value - sda_setup

It is recommended that if the required delay is 1000ns, then for an l4_sp_clk frequency of 10 MHz, ic_sda_setup should be programmed to a value of 11.

Field Access Macros:

#define ALT_I2C_SDA_SETUP_SDA_SETUP_LSB   0
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_MSB   7
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_WIDTH   8
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET_MSK   0x000000ff
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_CLR_MSK   0xffffff00
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_RESET   0x64
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_GET(value)   (((value) & 0x000000ff) >> 0)
 
#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET(value)   (((value) << 0) & 0x000000ff)
 

Data Structures

struct  ALT_I2C_SDA_SETUP_s
 

Macros

#define ALT_I2C_SDA_SETUP_OFST   0x94
 
#define ALT_I2C_SDA_SETUP_ADDR(base)   ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SDA_SETUP_OFST))
 

Typedefs

typedef struct ALT_I2C_SDA_SETUP_s ALT_I2C_SDA_SETUP_t
 

Data Structure Documentation

struct ALT_I2C_SDA_SETUP_s

WARNING: The C register and register group struct declarations are provided for convenience and illustrative purposes. They should, however, be used with caution as the C language standard provides no guarantees about the alignment or atomicity of device memory accesses. The recommended practice for writing hardware drivers is to use the SoCAL access macros and alt_read_word() and alt_write_word() functions.

The struct declaration for register ALT_I2C_SDA_SETUP.

Data Fields
uint32_t sda_setup: 8 SDA Setup Value
uint32_t __pad0__: 24 UNDEFINED

Macro Definitions

#define ALT_I2C_SDA_SETUP_SDA_SETUP_LSB   0

The Least Significant Bit (LSB) position of the ALT_I2C_SDA_SETUP_SDA_SETUP register field.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_MSB   7

The Most Significant Bit (MSB) position of the ALT_I2C_SDA_SETUP_SDA_SETUP register field.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_WIDTH   8

The width in bits of the ALT_I2C_SDA_SETUP_SDA_SETUP register field.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET_MSK   0x000000ff

The mask used to set the ALT_I2C_SDA_SETUP_SDA_SETUP register field value.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_CLR_MSK   0xffffff00

The mask used to clear the ALT_I2C_SDA_SETUP_SDA_SETUP register field value.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_RESET   0x64

The reset value of the ALT_I2C_SDA_SETUP_SDA_SETUP register field.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_GET (   value)    (((value) & 0x000000ff) >> 0)

Extracts the ALT_I2C_SDA_SETUP_SDA_SETUP field value from a register.

#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET (   value)    (((value) << 0) & 0x000000ff)

Produces a ALT_I2C_SDA_SETUP_SDA_SETUP register field value suitable for setting the register.

#define ALT_I2C_SDA_SETUP_OFST   0x94

The byte offset of the ALT_I2C_SDA_SETUP register from the beginning of the component.

#define ALT_I2C_SDA_SETUP_ADDR (   base)    ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SDA_SETUP_OFST))

The address of the ALT_I2C_SDA_SETUP register.

Typedef Documentation

The typedef declaration for register ALT_I2C_SDA_SETUP.