From 58504a8b0e81e2674ed8303a322bfb08ae4736ad Mon Sep 17 00:00:00 2001 From: Martin Anderseck Date: Mon, 4 May 2026 12:00:25 +0200 Subject: [PATCH] host: cal: Use burst_poke to write IQ coeffs This changes the IQ/DC offset compensation measurement script to use the burst_poke functionality instead of poking 15 times individually. --- .../python/uhd/usrp/cal/iq_dc_compensation.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/host/python/uhd/usrp/cal/iq_dc_compensation.py b/host/python/uhd/usrp/cal/iq_dc_compensation.py index 3d4ac0f64..c9fd96a15 100644 --- a/host/python/uhd/usrp/cal/iq_dc_compensation.py +++ b/host/python/uhd/usrp/cal/iq_dc_compensation.py @@ -883,17 +883,14 @@ class HBXCompensator: PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + IINLINE_COEFF_REG, iinline_coeff, ) - for i in reversed(range(num_coeffs)): - qinline_coeff = coefficient_to_fixed_point(qinline_factor) if i == 0 else 0 - radio.poke32( - PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + QINLINE_COEFF_REG, - qinline_coeff, - ) - icross_coeff = coefficient_to_fixed_point(icross_factor) if i == 0 else 0 - radio.poke32( - PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + ICROSS_COEFF_REG, - icross_coeff, - ) + qinline_coeffs = [0] * (num_coeffs - 1) + [coefficient_to_fixed_point(qinline_factor)] + icross_coeffs = [0] * (num_coeffs - 1) + [coefficient_to_fixed_point(icross_factor)] + radio.burst_poke32( + PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + QINLINE_COEFF_REG, qinline_coeffs + ) + radio.burst_poke32( + PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + ICROSS_COEFF_REG, icross_coeffs + ) radio.poke32(PERIPH_BASE + RF_CORE_WINDOW + IMP_TX_OFFSET + GROUP_DELAY_REG_OFFSET, 0) def _measure(self, tx, rx, rx_waveform, waveform_mem_region):