Post Go back to editing

I/Q data mixed up in JESD?

Thread Summary

The user encountered a rare issue with the ADRV9009 RF output, where every other I/Q sample was delayed by about 30 samples. The problem was investigated up to the input of the tx_adrv9009_tpl_core in the FPGA design, and the Deframer and Framer status registers showed no consistent errors. The support engineer suggested testing PRBS and provided a Python script to configure the FPGA and check PRBS error counters. The user was also advised to share the RF output spectrum plot when the issue occurs.
AI Generated Content
Category: Software
Software Version: TES3.6.2.1

We have a custom board with an ADRV9009. After power up and configuration, we face rarely strange RF output (less than 1/10 times). On the scope it seems that one I/Q sample over 2 is delayed by about 30 samples. So that samples are coming in the following order:

1, 32, 3, 34, 5, 36, 7, 38, 9, 40, ...

I have added a few recording blocs in the FPGA design to track the issue. First in the code we have written, but data are ok there. Then in the bloc design were some IP are provided by AD. Until the input of tx_adrv9009_tpl_core, it seems that data are ok. Can the issue be related to JESD? Attached is the configuration we use in TES.

Thank you

<GUI_Setup>
  <Device>ADRV9009</Device>
  <DeviceClock>122.88MHz</DeviceClock>
  <TxChannel>TX1 and TX2 Enabled</TxChannel>
  <TxProfile>Tx 100/225MHz, IQrate 245.76MHz</TxProfile>
  <ObsProfile>ORX 200MHz, IQrate 245.76MHz, Dec4</ObsProfile>
  <RxChannel>RX1 and RX2 Enabled</RxChannel>
  <RxProfile>Rx 100MHz, IQrate 122.88MHz, Dec4</RxProfile>
  <RxPllFreq>300</RxPllFreq>
  <RxPllExtLo>NO</RxPllExtLo>
  <Tx1InitAttenuation>40</Tx1InitAttenuation>
  <Tx2InitAttenuation>40</Tx2InitAttenuation>
  <RxFramerSelection>Framer A</RxFramerSelection>
  <TxFramerSelection>Deframer A</TxFramerSelection>
  <ObsRxFramerSelection>Framer B</ObsRxFramerSelection>
  <UseExternalSysRef>True</UseExternalSysRef>
  <FramerALane0>True</FramerALane0>
  <FramerALane1>True</FramerALane1>
  <FramerALane2>False</FramerALane2>
  <FramerALane3>False</FramerALane3>
  <FramerAScrambling>True</FramerAScrambling>
  <FramerARelink>False</FramerARelink>
  <FramerAK>32</FramerAK>
  <FramerAKOffset>31</FramerAKOffset>
  <FramerBLane0>False</FramerBLane0>
  <FramerBLane1>False</FramerBLane1>
  <FramerBLane2>True</FramerBLane2>
  <FramerBLane3>True</FramerBLane3>
  <FramerBScrambling>True</FramerBScrambling>
  <FramerBRelink>False</FramerBRelink>
  <FramerBK>32</FramerBK>
  <FramerBKOffset>31</FramerBKOffset>
  <DeframerALane0>True</DeframerALane0>
  <DeframerALane1>True</DeframerALane1>
  <DeframerALane2>True</DeframerALane2>
  <DeframerALane3>True</DeframerALane3>
  <DeframerAScrambling>True</DeframerAScrambling>
  <DeframerARelink>False</DeframerARelink>
  <DeframerAK>32</DeframerAK>
  <DeframerAKOffset>17</DeframerAKOffset>
  <DeframerBLane0>False</DeframerBLane0>
  <DeframerBLane1>False</DeframerBLane1>
  <DeframerBLane2>True</DeframerBLane2>
  <DeframerBLane3>True</DeframerBLane3>
  <DeframerBScrambling>True</DeframerBScrambling>
  <DeframerBRelink>False</DeframerBRelink>
  <DeframerBK>32</DeframerBK>
  <DeframerBKOffset>17</DeframerBKOffset>
  <RxQECInit>True</RxQECInit>
  <TxQECInit>True</TxQECInit>
  <InternalTxLOLInit>True</InternalTxLOLInit>
  <ExternalTxLOLInit>False</ExternalTxLOLInit>
  <Rx1QECTrack>True</Rx1QECTrack>
  <Rx2QECTrack>True</Rx2QECTrack>
  <Rx1Hd2Track>False</Rx1Hd2Track>
  <Rx2Hd2Track>False</Rx2Hd2Track>
  <Tx1QECTrack>True</Tx1QECTrack>
  <Tx2QECTrack>True</Tx2QECTrack>
  <Tx1LOLTrack>False</Tx1LOLTrack>
  <Tx2LOLTrack>False</Tx2LOLTrack>
  <Orx1QECTrack>False</Orx1QECTrack>
  <Orx2QECTrack>False</Orx2QECTrack>
</GUI_Setup>

Thread Notes

Parents Reply Children
No Data