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.

TDA3: Chirp Config Modification

Part Number: TDA3

Hi,

I am trying to change the chirp profile idleTimeConst parameter from 2 usec to 1000 usec which should be a valid number (since it's max is 4095). Changing it to 1000 caused error 80 which defined to be:

#define RL_RET_CODE_FRAME_PERIOD_1INVAL_IN            (80U) /* Frame ON time < Frame periodicity */

Why did I get this error message?

My Chirp Config is set to below:

static rlFrameCfg_t gAr1243FrmArgs_RadarMode2 =
{
.chirpStartIdx = (rlUInt16_t) 0,
.chirpEndIdx = (rlUInt16_t) CHAINS_RADAR_NUM_TX_ANTENNA - (rlUInt16_t)1, /* 1 */
.numLoops = (rlUInt16_t) AR1243_RADAR_HEIGHT, /* 128 */
.numFrames = (rlUInt16_t) 0,
/* profileCfgArgs[1].numAdcSamples * 2 - 512 * 2*/
.numAdcSamples = (rlUInt16_t) AR1243_PROFILE2_RADAR_WIDTH * (rlUInt16_t)2, /* 512 * 2 */
.framePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U), /* 33 ms / 30 FPS, 20 ms / 50fps */
.triggerSelect = (rlUInt16_t) RL_FRAMESTRT_API_TRIGGER,
.reserved = (rlUInt32_t) 0,
.reserved2 = (rlUInt32_t) 0,
.frameTriggerDelay = (rlUInt32_t) 0
};

static rlProfileCfg_t gAr1243ProfileArgs_RadarMode[] = {

{

.profileId = (rlUInt16_t) 0,
.pfVcoSelect = (rlUInt8_t) 0,
.pfCalLutUpdate = (rlUInt8_t) 0,
.startFreqConst = (rlUInt32_t) CHAINS_AR1243_FREQ_GHZ_CONV(77),
.idleTimeConst = (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(1000),
.adcStartTimeConst = (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(6),
.rampEndTime = (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(30.87),
.txOutPowerBackoffCode = (rlUInt32_t) 10,
.txPhaseShifter = (rlUInt32_t) 0,
.freqSlopeConst = (rlInt16_t) CHAINS_AR1243_FREQ_MHZ_PER_MICRO_S_SLOPE_CONV(8.52),
.txStartTime = (rlInt16_t) CHAINS_AR1243_TIME_US_TO_10NS(1U),
.numAdcSamples = (rlUInt16_t) AR1243_PROFILE2_RADAR_WIDTH,
.digOutSampleRate = (rlUInt16_t) 18750, // Kilo Samples per second
.hpfCornerFreq1 = (rlUInt8_t) RL_RX_HPF1_175_KHz, // Khai: change this to eliminate the range wrap around
.hpfCornerFreq2 = (rlUInt8_t) RL_RX_HPF2_350_KHz, // Khai: change this to eliminate the range wrap around
.reserved0 = (rlUInt16_t) 0,
.rxGain = (rlUInt16_t) 38
}

Thanks,

--Khai

  • Khai,

    YOu need to adjust .framePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U), /* 33 ms / 30 FPS, 20 ms / 50fps */ as well to match the overall frame time,

    (IDLE Time + Ramp End Time) * total number of chirps in the frame < Frame periodicity.

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Thanks for the answer. I realized that after submitting the ticket.

    For our Beam Steering to work, we must reduce our frame periodicity to as low as possible so the entire scan time across the angle width (-22 to 22) can be as fast as possible. Since our beam width is very narrow (2 degrees), we are stepping at a 1 degree increment. Therefore, we were asking if TI to support 16 chirps FFT so the frame rate can come down to about 5 ms dwell time per scan angle.That's still required 110 ms to scan across the angle width we would like to cover. I know you don't have plans for support such low FFT sample. However, I don't see why can that be done. Other platforms we have here support any size FFT.

    Thanks,

    --Khai 

  • Khai,

    From a hardware perspective , the EVE is a programmable core and it can support smaller sizes of FFTs as well.
    From a software perspective, we have no plans to support 16 point on the EVE.

    The DSP is another option you can explore for such small FFTs. The DSPLib is packaged in Processor SDK Radar 3.04 onwards.

    Thanks and Regards,
    Piyali