GRLIB I2CMST Model

The I2CMST model is available in the I2CMST plugin.

Loading the Plugin

import I2CMST

Configuration

@I2CMST Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LocalName

*char

Local name (in component, if applicable)

LogMessageFlags

uint64_t

Per-object log message suppression flags

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

ObjectID

uint64_t

Unique ObjectID.

ReplayLoggingFlags

uint64_t

Replay-time category logging flags

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @I2CMST

new

Create new instance of I2CMST

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

I2CMST Reference

Properties

Name Type Description

CMD

uint32_t

I2C-master command register

CMDColdResetValue

uint32_t

I2C-master command register

CMDForcedBits

uint32_t

I2C-master command register

CMDForcedFlippedBits

uint32_t

I2C-master command register

CMDReadMask

uint32_t

I2C-master command register

CMDResetMask

uint32_t

I2C-master command register

CMDResetValue

uint32_t

I2C-master command register

CMDWriteMask

uint32_t

I2C-master command register

CTRL

uint32_t

I2C-master control register

CTRLColdResetValue

uint32_t

I2C-master control register

CTRLForcedBits

uint32_t

I2C-master control register

CTRLForcedFlippedBits

uint32_t

I2C-master control register

CTRLReadMask

uint32_t

I2C-master control register

CTRLResetMask

uint32_t

I2C-master control register

CTRLResetValue

uint32_t

I2C-master control register

CTRLWriteMask

uint32_t

I2C-master control register

Class

*void

Class object

Component

*void

Pointer to component object if part of component

FILT

uint32_t

I2C-master dynamic filter register

FILTColdResetValue

uint32_t

I2C-master dynamic filter register

FILTForcedBits

uint32_t

I2C-master dynamic filter register

FILTForcedFlippedBits

uint32_t

I2C-master dynamic filter register

FILTReadMask

uint32_t

I2C-master dynamic filter register

FILTResetMask

uint32_t

I2C-master dynamic filter register

FILTResetValue

uint32_t

I2C-master dynamic filter register

FILTWriteMask

uint32_t

I2C-master dynamic filter register

LatestBusState

int32_t

Internal: Bus state reported between transfer events

LatestResponseByte

uint8_t

Internal: Bus state response between transfer events

LocalName

*char

Local name (in component, if applicable)

LogMessageFlags

uint64_t

Per-object log message suppression flags

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

ObjectID

uint64_t

Unique ObjectID.

PRESCALE

uint32_t

I2C-master Clock prescale register

PRESCALEColdResetValue

uint32_t

I2C-master Clock prescale register

PRESCALEForcedBits

uint32_t

I2C-master Clock prescale register

PRESCALEForcedFlippedBits

uint32_t

I2C-master Clock prescale register

PRESCALEReadMask

uint32_t

I2C-master Clock prescale register

PRESCALEResetMask

uint32_t

I2C-master Clock prescale register

PRESCALEResetValue

uint32_t

I2C-master Clock prescale register

PRESCALEWriteMask

uint32_t

I2C-master Clock prescale register

RX

uint32_t

I2C-master receive register

RXColdResetValue

uint32_t

I2C-master receive register

RXForcedBits

uint32_t

I2C-master receive register

RXForcedFlippedBits

uint32_t

I2C-master receive register

RXReadMask

uint32_t

I2C-master receive register

RXResetMask

uint32_t

I2C-master receive register

RXResetValue

uint32_t

I2C-master receive register

RXWriteMask

uint32_t

I2C-master receive register

ReplayLoggingFlags

uint64_t

Replay-time category logging flags

STAT

uint32_t

I2C-master status register

STATColdResetValue

uint32_t

I2C-master status register

STATForcedBits

uint32_t

I2C-master status register

STATForcedFlippedBits

uint32_t

I2C-master status register

STATReadMask

uint32_t

I2C-master status register

STATResetMask

uint32_t

I2C-master status register

STATResetValue

uint32_t

I2C-master status register

STATWriteMask

uint32_t

I2C-master status register

TX

uint32_t

I2C-master transmit register

TXColdResetValue

uint32_t

I2C-master transmit register

TXForcedBits

uint32_t

I2C-master transmit register

TXForcedFlippedBits

uint32_t

I2C-master transmit register

TXReadMask

uint32_t

I2C-master transmit register

TXResetMask

uint32_t

I2C-master transmit register

TXResetValue

uint32_t

I2C-master transmit register

TXWriteMask

uint32_t

I2C-master transmit register

TimeSource

*void

Time source object

bus

temu_IfaceRef/ <unknown>

I2C bus.

config.I2CBusTimeoutInNS

uint64_t

Time after which to reset this I2C bus even if no STOP condition was seen.

config.infiniteBusSpeed

uint64_t

Handle transfer-done events without delay

config.irq

uint8_t

Interrupt number

config.transferTimeInNS

uint64_t

Number of nanoseconds spent in 'Transport In Progress' mode.

irqCtrl

temu_IfaceRef/ <unknown>

IRQ controller.

lastCounterValOnBus

uint64_t

lastDevAddrOnBus

uint16_t

memAccess

temu_IfaceRef/ <unknown>

Memory Interface for DMA containing underlying buffers.

Interfaces

Name Type Description

ApbIface

ApbIface

APB P&P interface.

DeviceIface

DeviceIface

MemAccessIface

MemAccessIface

RegisterIface

temu::RegisterIface

Auto-generated Register Interface Impl.

Registers

Register support is currently experimental!

Register Bank Regs

Register PRESCALE
Description

I2C-master Clock prescale register

Reset value

0x0000ffff

Warm reset mask

0x0000ffff

Diagram
Field Mask Reset Description

ClockPrescale

0x0000ffff

0xffff

Value used to prescale the SCL clock line

Register CTRL
Description

I2C-master control register

Reset value

0x00000000

Warm reset mask

0x000000c0

Diagram
Field Mask Reset Description

EN

0x00000080

0x0

Enable I2C core

IEN

0x00000040

0x0

Interrupt enable

Register RX
Description

I2C-master receive register

Reset value

0x00000000

Warm reset mask

0x000000ff

Diagram
Field Mask Reset Description

RDATA

0x000000ff

0x0

Receive data

Register TX
Description

I2C-master transmit register

Reset value

0x00000000

Warm reset mask

0x00000000

Diagram
Field Mask Reset Description

TDATA

0x000000fe

-

Transmit data

RW

0x00000001

-

Read/write bit

Register CMD
Description

I2C-master command register

Reset value

0x00000000

Warm reset mask

0x00000000

Diagram
Field Mask Reset Description

STA

0x00000080

-

Generate START condition

STO

0x00000040

-

Generate STOP condition

RD

0x00000020

-

Read from slave

WR

0x00000010

-

Write to slave

ACK

0x00000008

-

Acknowledge control

IACK

0x00000001

-

Interrupt acknowledge

Register STAT
Description

I2C-master status register

Reset value

0x00000000

Warm reset mask

0x000000e2

Diagram
Field Mask Reset Description

RxACK

0x00000080

0x0

Receive acknowledge

BUSY

0x00000040

0x0

I2C-bus busy

AL

0x00000020

0x0

Arbitration lost

TIP

0x00000002

0x0

Transfer in progress

IF

0x00000001

-

Interrupt flag

Register FILT
Description

I2C-master dynamic filter register

Reset value

0xffffffff

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

FILT

0xffffffff

0xffffffff

Dynamic filter reload value

Commands

Name Description

delete

Dispose instance of I2CMST

Limitations

  • It is possible for a device to lock up the bus. On hardware, there is a timeout mechanism between the last start condition and when a controller is alowed to send a new start condition without having seen a stop condition on the bus. This timeout mechanism is currently not implemented.