I'm working with Channel Sounding on the nRF54L15 and trying to understand the CSTONES tone-processing block at the register level so I can post-process the results correctly and, for a custom localization experiment, drive the block directly from the application core via TASKS_CSTONESSTART.
From the Product Specification (RADIO chapter) I understand the chain as: NUMSAMPLES input IQ samples at the 2 MHz sample rate → optional DOWNSAMPLE → IQRAWMEAN ("Mean of IQ values") → MAGPHASEMEAN ("Mean magnitude and phase of the signal before it is converted to PCT16") → PCT16 ("Mean magnitude and mean phase converted to IQ"). I have three questions about where the corrections sit in that chain:
- CSTONES.PHASESHIFT (0x1018, "Parameter used in TPM, provided by software"). Is this phase shift applied to the incoming IQ samples before averaging, so that IQRAWMEAN already reflects it, or is it applied to the mean value after averaging, so that only MAGPHASEMEAN/PCT16 reflect it? What unit and sign convention does it use (e.g., 16-bit fraction of 2π)? What value does the SoftDevice Controller normally program here, and is it derived from the previous step's PCT or from calibration?
- CSTONES.FAEPEER / CSTONES.FREQOFFSET / CSTONES.FFOEST. When the peer's frequency actuation error and the FFO estimate are known, is the resulting phase-rotation compensation performed sample-by-sample on the IQ stream during the T_PM window (a derotation before the mean), or as a single rotation of the averaged value? Same question for the T_PM_CENTER_DELTA correction from Core Vol 6 Part A §6.3.
- Reflector with Inline PCT Transfer enabled. When the reflector adjusts the phase of its transmitted CS tone so that the reported Q sample is zero, which part of the radio applies that adjustment: is the measured phase written into the tone generation path (a phase/DTC setting in the frequency synthesizer), or is a phase rotation applied to a digital baseband value before the transmit path? Is that adjustment visible or configurable from the application core, or entirely inside the SoftDevice Controller? The SDC changelog mentions additional "TX Phase settling time" in T_IP2 when IPT is used; a pointer to what that settling covers would help me set the interlude correctly.
If any of this is documented in a version of the Product Specification or an SDC document I've missed, a link is fine. Thanks.