8.2.3.9. Advanced Timing

8.2.3.9.1. TX Clock Filter Loop Bandwidth

For test modules with advanced timing features, the loop bandwidth on the TX clock filter.

Corresponding low-level API class: M_TXCLOCKFILTER_NEW

# TX Clock Filter Loop Bandwidth
await module.advanced_timing.clock_tx.filter.set(filter_bandwidth=enums.LoopBandwidth.BW103HZ)
await module.advanced_timing.clock_tx.filter.set_bw103hz()
await module.advanced_timing.clock_tx.filter.set(filter_bandwidth=enums.LoopBandwidth.BW1683HZ)
await module.advanced_timing.clock_tx.filter.set_bw1683hz()
await module.advanced_timing.clock_tx.filter.set(filter_bandwidth=enums.LoopBandwidth.BW207HZ)
await module.advanced_timing.clock_tx.filter.set_bw207hz()
await module.advanced_timing.clock_tx.filter.set(filter_bandwidth=enums.LoopBandwidth.BW416HZ)
await module.advanced_timing.clock_tx.filter.set_bw416hz()
await module.advanced_timing.clock_tx.filter.set(filter_bandwidth=enums.LoopBandwidth.BW7019HZ)
await module.advanced_timing.clock_tx.filter.set_bw7019hz()

resp = await module.advanced_timing.clock_tx.filter.get()
resp.filter_bandwidth

8.2.3.9.2. TX Clock Source

For test modules with advanced timing features, select what clock drives the port TX rates.

Corresponding low-level API class: M_TXCLOCKSOURCE_NEW

# TX Clock Source
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.MODULELOCALCLOCK)
await module.advanced_timing.clock_tx.source.set_modulelocalclock()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P0RXCLK)
await module.advanced_timing.clock_tx.source.set_p0rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P1RXCLK)
await module.advanced_timing.clock_tx.source.set_p1rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P2RXCLK)
await module.advanced_timing.clock_tx.source.set_p2rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P3RXCLK)
await module.advanced_timing.clock_tx.source.set_p3rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P4RXCLK)
await module.advanced_timing.clock_tx.source.set_p4rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P5RXCLK)
await module.advanced_timing.clock_tx.source.set_p5rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P6RXCLK)
await module.advanced_timing.clock_tx.source.set_p6rxclk()
await module.advanced_timing.clock_tx.source.set(tx_clock=enums.TXClockSource.P7RXCLK)
await module.advanced_timing.clock_tx.source.set_p7rxclk()

resp = await module.advanced_timing.clock_tx.source.get()
resp.tx_clock

8.2.3.9.3. TX Clock Status

For test modules with advanced timing features, check whether a valid clock is present.

Corresponding low-level API class: M_TXCLOCKSTATUS_NEW

# TX Clock Status
resp = await module.advanced_timing.clock_tx.status.get()
resp.status

8.2.3.9.4. SMA Status

For test modules with SMA connectors, this returns the status of the SMA input.

Corresponding low-level API class: M_SMASTATUS

# SMA Status
resp = await module.advanced_timing.sma.status.get()
resp.status

8.2.3.9.5. SMA Input

For test modules with SMA (SubMiniature version A) connectors, selects the function of the SMA input.

Corresponding low-level API class: M_SMAINPUT

# SMA Input
await module.advanced_timing.sma.input.set(sma_in=enums.SMAInputFunction.NOT_USED)
await module.advanced_timing.sma.input.set_notused()
await module.advanced_timing.sma.input.set(sma_in=enums.SMAInputFunction.TX10MHZ)
await module.advanced_timing.sma.input.set_tx10mhz()
await module.advanced_timing.sma.input.set(sma_in=enums.SMAInputFunction.TX2MHZ)
await module.advanced_timing.sma.input.set_tx2mhz()

resp = await module.advanced_timing.sma.input.get()
resp.sma_in

8.2.3.9.6. SMA Output

For test modules with SMA (SubMiniature version A) connectors, selects the function of the SMA output.

Corresponding low-level API class: M_SMAOUTPUT

# SMA Output
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.DISABLED)
await module.advanced_timing.sma.output.set_disabled()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P0RXCLK)
await module.advanced_timing.sma.output.set_p0rxclk()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P0RXCLK2MHZ)
await module.advanced_timing.sma.output.set_p0rxclk2mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P0SOF)
await module.advanced_timing.sma.output.set_p0sof()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P1RXCLK)
await module.advanced_timing.sma.output.set_p1rxclk()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P1RXCLK2MHZ)
await module.advanced_timing.sma.output.set_p1rxclk2mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.P1SOF)
await module.advanced_timing.sma.output.set_p1sof()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.PASSTHROUGH)
await module.advanced_timing.sma.output.set_passthrough()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.REF10MHZ)
await module.advanced_timing.sma.output.set_ref10mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.REF125MHZ)
await module.advanced_timing.sma.output.set_ref125mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.REF156MHZ)
await module.advanced_timing.sma.output.set_ref156mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.REF2MHZ)
await module.advanced_timing.sma.output.set_ref2mhz()
await module.advanced_timing.sma.output.set(sma_out=enums.SMAOutputFunction.TS_PPS)
await module.advanced_timing.sma.output.set_ts_pps()

resp = await module.advanced_timing.sma.output.get()
resp.sma_out