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.

AWR1642: Advance frame interrupt and period question

Part Number: AWR1642

Hi,

My customer wants to use the advance frame feature. We changed the code based on mmw demo in sdk 1.0, tested on AWR1642 EVM, found two issues.

1 We found the frame interrupt is triggered per subframe, while not per advance frame. Take below configuration for example, we expect the frame interrupt is triggered per 1024chirps, but actually the frame interrupt is triggered per 512chirps per subframe based on our test on EVM. Would u pls help confirm whether our test is correct or not? And how to make the frame interrupt triggered per advance frame?

2 We only found one parameter subFramePeriodicity for subframe period configuration, but not found parameter to configure the advance frame period.

The customer's target is to combine several subframes as one advance frame for process, the inter subframe time is very short, but need to reserve sufficient time for one advance frame process. Would u pls help instruct how to reach the target? Thanks.

Below show my code changes.

1 Remove the code for frame configuration, add below configuration for advance frame configuration;

/* common adv frame configuration */
advFrameCfg->frameSeq.forceProfile = 1;// 1: force Profile, 0: Don't force profile
advFrameCfg->frameSeq.numFrames = 0;//infinite
advFrameCfg->frameSeq.triggerSelect = 1;//SW Trigger
advFrameCfg->frameSeq.frameTrigDelay= 0;

/* first sub-frame configuration */
advFrameCfg->frameSeq.subFrameCfg[0].forceProfileIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[0].chirpStartIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[0].numOfChirps = 512;
advFrameCfg->frameSeq.subFrameCfg[0].numLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[0].numOfBurst = 1;
advFrameCfg->frameSeq.subFrameCfg[0].numOfBurstLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[0].chirpStartIdxOffset= 0;
advFrameCfg->frameSeq.subFrameCfg[0].burstPeriodicity = 2400000; // 12 msec
advFrameCfg->frameSeq.subFrameCfg[0].subFramePeriodicity= 2400000; // 12 msec


advFrameCfg->frameData.subframeDataCfg[0].numAdcSamples = 64*2;
advFrameCfg->frameData.subframeDataCfg[0].totalChirps = 512;
advFrameCfg->frameData.subframeDataCfg[0].numChirpsInDataPacket = 1;
numOfSubFrame++;

/* second sub-frame configuration */
advFrameCfg->frameSeq.subFrameCfg[1].forceProfileIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[1].chirpStartIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[1].numOfChirps = 512;
advFrameCfg->frameSeq.subFrameCfg[1].numLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[1].numOfBurst = 1;
advFrameCfg->frameSeq.subFrameCfg[1].numOfBurstLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[1].chirpStartIdxOffset= 0;
advFrameCfg->frameSeq.subFrameCfg[1].burstPeriodicity = 2400000; // 12 msec
advFrameCfg->frameSeq.subFrameCfg[1].subFramePeriodicity= 2400000; // 12 msec


advFrameCfg->frameData.subframeDataCfg[1].numAdcSamples = 64*2;
advFrameCfg->frameData.subframeDataCfg[1].totalChirps = 512;
advFrameCfg->frameData.subframeDataCfg[1].numChirpsInDataPacket = 1;
numOfSubFrame++;

advFrameCfg->frameSeq.numOfSubFrames = numOfSubFrame;
advFrameCfg->frameData.numSubFrames = numOfSubFrame;

2 Change the function MMWave_configLink, replace rlSetFrameConfig with rlSetAdvFrameConfig to do advance frame configuration, then rebuild the mmwave lib.

Andy

  • Hi Andy,

    For advanced frame config there is an App note (section-6) available at ti.com which you can go through for detailed info.

    • One burst is equivalent to one legacy frame block. So you will get frame-available interrupt at starting of every burst and chirp interrupts at every chirp of this burst. 
    • sub-frame periodicity = numOfBurst * Burst periodicity + extraTime. Where extraTime may require to meet the timing requirement for the Advanced frame.

    The timing requirements for the advanced frame is as follows: Inter-burst time should be ≥ 50 µsec, inter
    sub-frame time should be ≥ 100 µsec and inter frame time should be ≥ 200 µsec.

    • inter-frame time can be set in form of time duration b/w last burst/sub-frame of a frame to first burst/sub-frame of next frame.

    Regards,

    Jitendra Gupta

  • Jitendra,

    Got it and great thanks. I have checked the app note, it didn't describe how to trigger interrupt in adv frame configuration.
    Andy