UG-1828
Preliminary Technical Data
Rev. PrC | Page 92 of 338
Make all ADRV9001 chips and channels of interest to MCS READY substate by issuing adi_adrv9001_Radio_ToMcsReady(). This
function will transition all ADRV9001 channels from the CALIBRATED state to MCS READY substate. This is necessary before issuing
all MCS pulses.
2.
Configure and send MCS pulses
BBIC or clock chip will configure MCS with 6 pulses as inputs to ADRV9001 MCS pin. The timing for these pulses is specified as in Table
33. This will be a BBIC specific function implemented by the user. adi_fpga9001_Mcs_Configure() and adi_fpga9001_Mcs_Start() are
examples in the SDK provided for the EVB system FPGA board. Here user needs to specify the pulse width and wait time and make sure
they don’t exceed the minimum requirement. While MCS is running, ADRV9001 should be in MCS transition substate.
3.
MCS done
After all 6 pulses are received, MCS will be finished. At this point, ADRV9001 should be in MCS DONE substate.
SAMPLE DELAY AND READ DELAY
ADRV9001 also supports the scenario where data coming from/going to SSI interface for multiple channels have different delays. This is
typically more important on the transmit side where data coming to SSI interface have different delays. On the receive side, the delay can
be manipulated by the baseband processor.
To mitigate this delay difference, ADRV9001 provides the measurement from the last MCS pulse edge to the Tx strobe for different
channels. This measurement will be effective for all channels associated to MCS, as Tx strobe of each channel may have a different delay
relative to the MCS pulse signal. The function that achieves this is adi_adrv9001_Mcs_TxMcsToStrobeSampleLatency_Get, which takes
the channel number and provides the latency, in samples, from MCS to the Tx strobe for the specified channel.
Once the latency is measured for all channels, let’s call this MCS_to_Strobe latency, then user can calculate the Sample Delay and Read
Delay separately.
Sample Delay
– this delay will help delay the ADRV9001 internal FIFO read point so that if MCS_to_Strobe is too big, then it will delay
the FIFO so that FIFO saves less irrelevant information.
Read Delay
– this delay will help delay FIFO read time. Once information is fed in the FIFO, this value will guarantee the FIFO has
samples for all channels before reading.
Figure 86 Tx MCS to Strobe Timing Diagram