xcvr module

The xcvr module offers high-level functions for transceiver R/W access.

get_xcvr_rw_seq_bank(port, bank, page, ...)

Read a number of bytes from transceiver register interface via I2C.

set_xcvr_rw_seq_bank(port, bank, page, ...)

Write a number of bytes to transceiver register interface via I2C.

get_xcvr_rw_seq(port, page, register, length)

Read a number of bytes from transceiver register interface via I2C.

set_xcvr_rw_seq(port, page, register, value)

Write a number of bytes to transceiver register interface via I2C.

get_xcvr_rw(port, page, register)

Read 4 bytes from transceiver register interface.

set_xcvr_rw(port, page, register, value)

Write 4 bytes to transceiver register interface.

get_xcvr_mii(port, register)

Read 2 bytes from transceiver register interface.

set_xcvr_mii(port, register, value)

Write 2 bytes to transceiver register interface.

get_i2c_freq_khz(port)

Read access speed on a transceiver I2C access in the unit of KHz.

set_i2c_freq_khz(port, frequency)

Set access speed on a transceiver I2C access in the unit of KHz.

Module Contents

Transceiver R/W functions

async get_xcvr_rw_seq_bank(port, bank, page, register, length)[source]

Read a number of bytes from transceiver register interface via I2C.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • bank (int) – The bank address, e.g. 10 or 0xA

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • length (int) – The number of bytes to read

Returns:

The read bytes as a string, e.g. ‘DEADBEEF’

Return type:

str

async set_xcvr_rw_seq_bank(port, bank, page, register, value)[source]

Write a number of bytes to transceiver register interface via I2C.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • bank (int) – The bank address, e.g. 10 or 0xA

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • value (str) – The bytes to write as a string, e.g. ‘DEADBEEF’

async get_xcvr_rw_seq(port, page, register, length)[source]

Read a number of bytes from transceiver register interface via I2C.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • length (int) – The number of bytes to read

Returns:

The read bytes as a string, e.g. ‘DEADBEEF’

Return type:

str

async set_xcvr_rw_seq(port, page, register, value)[source]

Write a number of bytes to transceiver register interface via I2C.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • value (str) – The bytes to write as a string, e.g. ‘DEADBEEF’

async get_xcvr_rw(port, page, register)[source]

Read 4 bytes from transceiver register interface.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

Returns:

The read bytes as a string, e.g. ‘DEADBEEF’

Return type:

str

async set_xcvr_rw(port, page, register, value)[source]

Write 4 bytes to transceiver register interface.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • value (str) – The bytes to write as a string, e.g. ‘DEADBEEF’

async get_xcvr_mii(port, register)[source]

Read 2 bytes from transceiver register interface.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • register (int) – The register address, e.g. 10 or 0xA

Returns:

The read 2 bytes as a string, e.g. ‘DEAF’

Return type:

str

async set_xcvr_mii(port, register, value)[source]

Write 2 bytes to transceiver register interface.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • page (int) – The page address, e.g. 10 or 0xA

  • register (int) – The register address, e.g. 10 or 0xA

  • value (str) – The 2 bytes to write as a string, e.g. ‘DEAF’

async get_i2c_freq_khz(port)[source]

Read access speed on a transceiver I2C access in the unit of KHz. Default to 100.

When the transceiver is plugged out and in again, the speed will be reset to the default value 100. The speed has a minimum and a maximum, which can be obtained from P_CAPABILITIES.

The I2C speed configuration will not be included in the port configuration file (.xpc). When you load a port configuration to a port, the transceiver I2C access speed will be reset to default 100.

Parameters:

port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

Returns:

The current I2C access speed in KHz

Return type:

int

async set_i2c_freq_khz(port, frequency)[source]

Set access speed on a transceiver I2C access in the unit of KHz.

When the transceiver is plugged out and in again, the speed will be reset to the default value 100. The speed has a minimum and a maximum, which can be obtained from P_CAPABILITIES.

The I2C speed configuration will not be included in the port configuration file (.xpc). When you load a port configuration to a port, the transceiver I2C access speed will be reset to default 100.

Parameters:
  • port (Z1600EdunPort | Z800FreyaPort | Z400ThorPort | Z100LokiPort | Z10OdinPort) – The port object

  • frequency (int) – The desired I2C access speed in KHz