xWRL1432 MMWAVE-L-SDK  05.03.00
Mmwave Demo

The millimeter wave drmo (Mmwave_demo) is the out of box (OOB) millimeter wave radar signal processing chain demo on xWRL1432 SOC device. It is based on range-doppler point-cloud detection. This processing chain can be used as a resource for initiating parking-assist applications, blind spot detection (BSD) applications, and many more applications.

For detailed information on the demo implementation please refer to MmwaveDemo_documentation.pdf

Supported Combinations

Parameter Value
CPU + OS m4fss0-0 freertos
Toolchain ti-arm-clang
Board xWRL1432-evm
Example folder examples/mmw_demo/mmwave_demo

Steps to Run the Example

Configuration (.cfg) File Format (CLI INTERFACE)

Attention
Converting configuration from older SDK release to current SDK release:
As new versions of SDK releases are available, there are usually changes to the configuration commands that are supported in the new release. Now, users may have some hand crafted config file which worked perfectly well on older SDK release version but will not work as is with the new SDK release. Check users guide for details.
Note
Example configuration files are available at '${SDK_INSTALL_PATH}/examples/mmw_demo/mmwave_demo/profiles/{board}' and '${SDK_INSTALL_PATH}/examples/mmw_demo/mmwave_demo/profiles/{board}'. All the CLI commands should be between 'sensorStop' and 'sensorStart'

Each line in the .cfg file describes a command with parameters. The various commands and their arguments are described in the table below (arguments are in sequence)

Sensor front-end parameters

Commands Parameters Notes
sensorStop FrameStopMode Indicates the frame stop mode. This command stops the sensor from transmitting further frames.
Important Note: This command is not supported when lowPowerCfg is 1
channelCfg RxChCtrlBitMask RX antennas 1 and 2, mask = 0x011b = 3
RX antennas 1 and 3, mask = 0x101b = 5
RX antennas 2 and 3, mask = 0x110b = 6
RX antennas 1, 2 & 3, mask = 0x111b = 7
TxChCtrlBitMask TX antennas 1 and 2, mask = 0x011b = 3
TX antenna 1, mask = 0x001b = 1
TX antenna 2, mask = 0x010b = 2
MiscCtrl Not supported on the current version of the SDK.
chirpComnCfg DigOutputSampRate Digital output Sampling rate for chirp ADC samples. Digital sampling rate is given by 100MHz/ DigOutputSampRate. The valid sampling rate can be configured as per below.
8 - 12.5 MHz
9 - 11.11 MHz
10 - 10 MHz
12 - 8.333 MHz
16 - 6.25 MHz
20 - 5 MHz
25 - 4 MHz
32 - 3.125 MHz
40 - 2.5 MHz
50 - 2 MHz
64 - 1.5625 MHz
80 - 1.25 MHz
100 - 1 MHz
DigOutputBitsSel Digital output sample bits select, this field governs which bits of the FECSS DFE's internal 16 bit signed data path are sent as output.
0 - Digital sample output is 12 MSB bits of DFE after rounding 4 LSBs
1 - Digital sample output is 12 bits after rounding 3 LSBs & clipping 1 MSB
2 - Digital sample output is 12 bits after rounding 2 LSBs & clipping 2 MSB
3 - Digital sample output is 12 bits after rounding 1 LSBs & clipping 3 MSB
4 - Digital sample output is 12 LSB bits after clipping 4 MSB
5 - Digital sample output is 16 bits
DfeFirSel The final stage FIR filter's characteristics can be selected as below.
0 - Long Filter (90% visibility): This provides visibility to a larger range of IF frequencies: 0 to 0.45 x Sampling Rate. Beyond that, the filter response starts drooping & enters filter transition band.
1 - Short Filter (80% visibility): This provides faster settled outputs but the IF frequency range visible is 0 to 0.40 x Sampling Rate. Beyond that, the filter response starts drooping & enters filter transition band.
NumOfAdcSamples No. of ADC samples. Current SDK work for values with powers of 2
Valid Range: 2 to 2048
ChirpTxMimoPatSel Note Only the BPM_2TX pattern is supported in this demo.
0 - TX BPM MIMO pattern disabled
1 - TDMA_2TX pattern
4 - BPM_2TX pattern
ChirpRampEndTime Chirp Profile Ramp end Time. This is a common ramp end time value for all chirps in a frame.
ChirpRxHpfSel Chirp Profile HPF corner frequency. This is a common HPF corner frequency value for all chirps in a frame.
0 - 175kHz HPF corner frequency
1 - 350kHz HPF corner frequency
2 - 700kHz HPF corner frequency
3 - 1400kHz HPF corner frequency
chirpTimingCfg ChirpIdleTime Chirp Profile Idle Time. This is a common idle time value for all chirps in a frame.
Unit: 1us.
ChirpAdcSkipSamples Chirp Profile ADC start skip samples. This is a common adc start time value for all chirps in a frame
Valid range: 0 to 63
ChirpTxStartTime Chirp Profile TX start Time. This is a common TX start time value for all chirps in a frame.This field indicates the TX start time in the chirp cycle with respect to the knee of the ramp.
Unit: In usec
ChirpRfFreqSlope Chirp Profile RF Frequency Slope. This is a common RF frequency slope value for all chirps in a frame.This field indicates the required FMCW slope of the chirp.
Unit: MHz/us
Valid range:- 399MHz/us to +399MHz/us.
ChirpRfFreqStart Chirp Profile RF start Frequency. This is a common RF start frequency value for all chirps in a frame. This field indicates the required start frequency of the chirp.
Unit: GHz
Valid range:58GHz to 62.5GHz for ES1.0 devices
frameCfg NumOfChirpsInBurst Number of Chirps in a Burst. This field indicates the number of chirps to be generated per burst.
Valid range: 1 to 65535 chirps .
(Limited support in current OOB)
NumOfChirpsAccum Number of accumulation per chirp. This field indicates the Number of chirps to be accumulated before sending the ADC data out in DFE, this can be used to increase the SNR without increasing the number of chirps to process in the DSP/HW accelerator.
Valid range: : 0 to 64 chirps.
(Limited support in current OOB)
BurstPeriodicity Burst periodicity in μs. This field indicates the period of the burst.
(Limited support in current OOB)
NumOfBurstsInFrame Note Only one burst per frame is supported in this demo.
Number of bursts per frame.
Valid range:1 to 4096
(Limited support in current OOB)
FramePeriodicity Frame Periodicity. This field indicates the period of the frame, 32bit counter.This field indicates the frame periodicity, the time gap between successive frame starts.
Unit: ms
Valid range:100 to 4294967295 (Limited support in current OOB)
NumOfFrames Number of frames.
Valid range: 0 to 65535, 0 means infinite
lowPowerCfg Enable/Diable Configuration to enable/disable the power management framework.
0 - Disabled
1 - Enabled
factoryCalibcfg Save enable When this option is enabled application will boot-up normally and configure the FECSS to perform all applicable factory calibrations during FECSS initialization. Once the calibrations are performed, application will retrieve the calibration data from FECSS and save it to FLASH. User need to specify valid <flash offset> value. <restore enable> option should be set to 0.
Note The factory calibration should be done at room temp (25 °C +/- 15 °C)
0 - Save Disabled
1 - Save Enabled
restore enable When Restore enabled option is set, application will check the FLASH for a valid calibration data section. If present, it will restore the data from FLASH and provide it to FECSS while configuring it to skip any real-time factory calibrations and use provided calibration data. User need to specify valid <flash offset> value which was used during saving of calibration data. <save enable> option should be set to 0. <rxGain> and <backoff0> arguments will be ignored when restore option is enabled.
0 - Restored Disabled
1 - Restore Enabled
rxGain Recommended value is 30db to 40db.
Units: db.
backoff0 TX channel power calibration. Valid Range: 0db to 26db.
Units: db.
flash offset Address offset in the flash to be used while saving or restoring calibration data. Make sure the address doesn't overlap the location in FLASH where application images are stored and has enough space for saving factory Calibration data. This field is don't care if both save and restore are disabled.Flash address range is 0x0 to 0x1FFFFF (16Mb) Actual Factory calibration data is of size 128 bytes. It is recommended to use last sector of flash memory starting with address 0x1FF000.
Note The flash offset should be greater than 1MB (0x100000h) for EVM. This check is only to make sure Appimage and ATE calibration data is not corrupted.
baudRate baudRateVal The sensor starts with 115200 baud rate by default. When this command is sent to the device, the baud rate for the UART communication is updated according to the given value. Currently only baudRateVal=1250000 is supported
sensorStart 'FrameTrigMode' Frame Trigger Mode.
0 - Frame SW immediate trigger Mode (SW_TRIG).
1 - Frame SW timer based trigger Mode (SW_TIMER_TRIG).
2 - Frame HW trigger low power Mode (HW_LOW_PWR_TRIG).
3 - Frame HW trigger low jitter Mode (HW_LOW_JIT_TRIG).
4 - CW CZ Trigger Mode (CW_CZ_TRIG).
5 - Chirp Timer Override Trigger Mode (CT_OVRD_TRIG).
(Currently SDK supports only SW_TRIG mode(0))
'ChirpStartSigLbE' Chirp Timer (CT) start signal loopback enable control.
0 - CHIRP_START_SIGNAL to DIG_SYNC_OUT Loopback Disable
1 - CHIRP_START_SIGNAL to DIG_SYNC_OUT Loopback Enable.
(Currently SDK supports only Loopback Disable mode(0))
'FrameLivMonEn' Frame Live monitors enable control.
0 - Live monitor Disabled
1 - Live monitor Enabled
(Currently SDK supports only Live monitor Disabled(0))
'FrameTrigTimerVal' Frame Trigger Timer Value. 32bit counter value.
(Currently SDK demo is tested only with value 0)

Detection layer parameters

Commands Parameters Notes
sigProcChainCfg azimuthFftSize Azimuth FFT size. Suggested to set as power of 2
elevationFftSize Elevation FFT size. Suggested to set as power of 2
motDetMode The flag must be set to 1.
coherentDoppler This flag is ignored.
numFrmPerMinorMotProc This flag is ignored.
numMinorMotionChirpsPerFrame This flag is ignored.
forceMinorMotionVelocityToZero This flag is ignored.
minorMotionVelocityInclusionThr This flag is ignored.
cfarCfg averageMode CFAR Averaging mode selection Recommened to set 2
0 - CFAR-CA
1 - CFAR-CAGO
2 - CFAR-CASO
winLen One-sided noise averaging window length (in samples) of range-CFAR Recommened to set as power of 2
guardLen One-sided guard length (in samples) of range-CFAR.
noiseDiv Cumulative noise sum divisor expressed as a shift. Sum of noise samples is divided by 2^noiseDiv. Suggested to set as log2(winLen).
cyclicMode Cyclic mode or wrapped around mode.
0 - Disabled
1 - Enabled
thresholdScale Threshold factor of range-CFAR in dB scale (20log10).
peakGroupingEn Enable or disable Peakgrouping
0 - Disabled
1 - Enabled
sideLobeThreshold Note: This flag is used by AoA2D DPU.
Sidelobe threshold (in linear scale) in azimuth domain to declare a local peak as a valid detection.
localMaxRangeDomain Enable/disable selection of the local maximum in the range domain
0 - Disabled
1 - Enabled
localMaxDopplerDomain Enable/disable selection of the local maximum in the Doppler domain
0 - Disabled
1 - Enabled
interpolateRange Enable /disable the interpolation of the range
0 - Disabled
1 - Enabled
interpolateDopplerDomain Enable /disable the interpolation of the Doppler
0 - Disabled
1 - Enabled
aoaFovCfg minAzimuthDeg Minimum azimuth angle (in degrees) that specifies the start of field of view
maxAzimuthDeg Maximum azimuth angle (in degrees) that specifies the end of field of view
minElevationDeg Minimum elevation angle (in degrees) that specifies the start of field of view
maxElevationDeg Maximum elevation angle (in degrees) that specifies the end of field of view
rangeSelCfg minMeters Minimum range of exported detected points
maxMeters Maximum range of exported detected points
clutterRemoval enabled Note: Clutter removal is not supported. The flag must be set to 0.
compRangeBiasAndRxChanPhase rangeBias Value of the Range Bias (m).
virtAntIdx 1 Phase compensation factor (real, imaginary) of virtual antenna 1.
virtAntIdx 2 Phase compensation factor (real, imaginary) of virtual antenna 2.
virtAntIdx 3 Phase compensation factor (real, imaginary) of virtual antenna 3.
virtAntIdx 4 Phase compensation factor (real, imaginary) of virtual antenna 4.
virtAntIdx 5 Phase compensation factor (real, imaginary) of virtual antenna 5.
virtAntIdx 6 Phase compensation factor (real, imaginary) of virtual antenna 6.
measureRangeBiasAndRxChanPhase enabled Enable measurement of the range bias and rx channel gain and phase imperfections
0 - Disabled
1 - Enabled
targetDistance Distance in meters where strong reflector is located to be used as test object for measurement. This field is only used when measurement mode is enabled.
searchWin Distance in meters of the search window around targetDistance where the peak will be searched
guiMonitor pointCloud Enable/Disable the transmission of the point cloud data
0 - Disable
1 - Enable, point cloud in floating point format, plus side information,
2 - Enable, point cloud in compressed format (fixed point)
rangeProfile Enable/Disable the transmission of the Range Profile data.
0 - Disable
1 - Enable
NoiseProfile Not supported, must be set to 0
rangeAzimuthHeatMap Not supported, must be set to 0
rangeDopplerHeatMap Enable/Disable transmission of the Range Doppler heatmap
0 - Disable
1 - Enable
statsInfo Enable/Disable the transmission of the Statistics info that include processing time, temperature, power. (Partially supported in the current SDK)
0 - Disabled
1 - Enabled
presenceInfo Not supported, must be set to 0
adcSamples Enable/Disable the transmission of the raw ADC samplse of the last two chirps of the frame
0 - Disabled
1 - Enabled
trackerInfo Not supported, must be set to 0
microDopplerInfo Not supported, must be set to 0
classifierInfo Not supported, must be set to 0
antGeometryCfg vAnt1_row row index of virtual antenna 1. (TxAnt1->RxAnt1)
vAnt1_col column index of virtual antenna 1. (TxAnt1->RxAnt1)
vAnt2_row row index of virtual antenna 2. (TxAnt1->RxAnt2)
vAnt2_col column index of virtual antenna 2. (TxAnt1->RxAnt2)
vAnt3_row row index of virtual antenna 3. (TxAnt1->RxAnt3)
vAnt3_col column index of virtual antenna 3. (TxAnt1->RxAnt3)
vAnt4_row row index of virtual antenna 4. (TxAnt2->RxAnt1)
vAnt4_col column index of virtual antenna 4. (TxAnt2->RxAnt1)
vAnt5_row row index of virtual antenna 5. (TxAnt2->RxAnt2)
vAnt5_col column index of virtual antenna 5. (TxAnt2->RxAnt2)
vAnt6_row row index of virtual antenna 6. (TxAnt2->RxAnt3)
vAnt6_col column index of virtual antenna 6. (TxAnt2->RxAnt3)
antDistX Antenna spacing in X dimension in mm. This is optional argument. If omitted, it is assumed that λ/dx=2
antDistZ Antenna spacing in Z dimension in mm. This is optional argument. If omitted, it is assumed that λ/dz=2

Flow Diagram in Low Power Configuration (lowPowerCfg = 1)

Below is the high level flow diagram of Motion and Presence detection OOB demo in Low Power Mode:

Flow in Low Power Mode

Power Measurements with INA228

Following are power numbers with SDK default configurations measured using INA228 sensor.

Configuration Average Power (mW)
Automated Parking 32.3