M-Link CSR v1.0

Standard set of board identification, status and control registers used with M-Link (PCI-Express or Ethernet) interface.

Register Map

address space 0x00 - 0x1F

Registers are 16 bit wide. 32-bit and 64-bit data is packed as following:

Reg #

64-bit word

0x70

bits 15:0

0x71

bits 31:16

0x72

bits 47:32

0x73

bits 63:48

Mandatory registers

Reg 0x00, 16 bit, CTRL, R/W

Reg 0x02, 16 bit, DEVICE_ID, RO

Reg 0x10~0x13, 1-Wire ID, 64 bits, RO

Reg 0x14 - 1-Wire Temperature, RO

Reg 0x15 - PCB Version, RO

Reg 0x16, F/W Version, RO

Reg 0x17, F/W Revision, RO

Reg 0x1C~0x1F - Uptime, milliseconds, 64 bits, RO

Reg 0x00 - Control, R/W

Reg 0x03 - [deprecated]] Live Magic, R/W

Reg 0x08~0x09 - Live Magic, 32 bits, R/W

dig_csr variant

Reg 0x00 - Control (RCTRL), R/W

Reg 0x01 - RLAT, R/W

Reg 0x02 - Device ID, status, RO

Reg 0x03 - RTRIG, R/W

Reg 0x04 - ADC Info, R/O

Reg 0x06 - [deprecated] Serial ID MSB, RO

Reg 0x08 - Live Magic, R/W

Reg 0x0A - ADC channel memory depth, in kilosamples, RO

Reg 0x0B - [deprecated] 1-Wire Temperature, RO

Reg 0x0C - [deprecated] F/W Version, RO

Reg 0x0D - [deprecated] F/W Revision, RO

Reg 0x0E - [deprecated] Serial ID LSB, RO

Reg 0x0F - status_0f, RO


Temperature sensor reading (DS18B20)

Value in degrees Celsius is calculated by the code:

    int rawTemp = regRead(REG_TEMPERATURE) & 0xFFF;
    if (rawTemp & 0x800) rawTemp = -(rawTemp&0x7FF);
    double temp = 0.0625 * rawTemp;


CSR MLink CSR MLinkRegisters SDB FPGA_Core

MlinkCsr (last edited 2022-09-19 10:34:26 by islepnev)