This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWRL6432: IWRL6432 ADC samples of last two chirps via TLV 316

Part Number: IWRL6432

Hi,

I'm using the IWRL6432 radar without ADC 1000.

I'm trying to get the raw ADC samples of the last two chirps of the frame, by using the guiMonitor->adcSamples parameter of the configuration file.

When enabling this parameter, we receive a TLV trame with identifier 316. It is specified on the Doc that we expect to receive "NumADCSamples x NumRxChannels x NumTxChannels * 4 Bytes", but we receive half this size (data length is read in the TLV header).

I have the following questions:

  1. Why is the data length received half the expected amount ?
  2. The expected value is described in the Doc for TLV 316 as "Sends last two chirps for two TX and last one chirp for one TX recorded and stored in ping/pong buffer", but the cfg parameter adcSamples says "Enable/Disable the transmission of the raw ADC samplse of the last two chirps of the frame". That is not the same so who is right ?
  3. How are we supposed to read this raw data ? Is it composed of 2 Bytes shorts, imaginary and real parts ? Are the imaginary and real parts interleaved ?

Here is our config file:

sensorStop 0
channelCfg 3 3 0
chirpComnCfg 20 0 0 32 4 32.40 0
chirpTimingCfg 6.00 24 0 84.40 58.63
frameCfg 4 0 1960.78 2 250.00 0
guiMonitor 0 0 0 0 0 0 0 1 0 0 0
sigProcChainCfg 16 16 2 0 1 4 0 20
cfarCfg 2 4 3 2 0 14.00 0 0.5 0 1 1 1
aoaFovCfg -60 60 -40 40
rangeSelCfg 0.1 4.44
clutterRemoval 1
compRangeBiasAndRxChanPhase 0.0 1 0 -1 0 1 0 -1 0 1 0 -1 0
adcDataSource 0 adcData_1_000.bin
adcLogging 0
lowPowerCfg 1
factoryCalibCfg 1 0 40 0 0x1ff000
sensorPosition 0 0 0 0 0
minorStateCfg 4 3 10 8 6 20 8 4
clusterCfg 1 0.5 2
sensorStart 0 0 0 0

As you can see, we have here 2 RX, 2 TX and 32 samples. So we expect to see 32 * 2 * 2 * 4 = 512 Bytes of raw data in the TLV 316, but we received a TLV trame of value length 256 (half). And I don't know how to read these values since I haven't found more info in the docs.

Thanks in advance.

  • Hi,

    Thanks for your query. Please allow us a couple of days to respond

    Regards

  • Hello.

    The IWRL6432 only provides the real component, so while the formula you provided is for real+imaginary, streaming only the real will provide exactly half.  You can see this in the transmitProcessedOutputTask() where the size of each ADC sample is a uint16_t as opposed to a uint32_t.

    The expected value is described in the Doc for TLV 316 as "Sends last two chirps for two TX and last one chirp for one TX recorded and stored in ping/pong buffer", but the cfg parameter adcSamples says "Enable/Disable the transmission of the raw ADC samplse of the last two chirps of the frame". That is not the same so who is right ?

    I believe they are both right, it is just that the first definition provides an expansion to a scenario where the device is only using 1 TX, while the second omitted this extra definition.

    How are we supposed to read this raw data ? Is it composed of 2 Bytes shorts, imaginary and real parts ? Are the imaginary and real parts interleaved

    As I stated earlier, it is just the real data and not the imaginary, so each sample streamed off the device is a 2 byte sample.

    Sincerely,

    Santosh