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.

AWR1843BOOST: Estimation of Elevation AOA

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: CODECOMPOSER, AWR1843

Hello,

I am using AWR1843Boost and configuered RADAR to operate in TDM mode with all 3 transmitters and receivers are being activated.

As TX2 transmitter is placed hugher wrt to other to transmitter anteenas results in 2D virtual antenna array with one of the dimension representaing the elevation of the object.

In this regard,

1. How can we estimate the elevation angle? Is it like by applying Angle FFT along detected target elements obtained from TX 1 and TX2 , TX2 and TX3 at phase 2-omega,3-omega and 4-omega, 5-omega respectively?

2. With just two samples is it possibe to get accurate estimation of angle?

Any other info related to AoA estimation concept, please provide me.

Best Regards,

Yeshaswini

  • Hi Yeshaswini,

    Yes, the elevation information is obtained with the antenna placed higher, which creates a 2D virtual antenna array. The AoA2D data processing unit of the SDK has detailed documentation on the principles and implementation of azimuth+elevation angle estimation. This DPU is used in the OOB demo.

    See here: file:///C:/ti/mmwave_sdk_03_05_00_04/packages/ti/datapath/dpc/dpu/aoa2dproc/docs/doxygen/html/index.html

    For a higher level theoretical explanation of angle estimation in general, see the MIMO Radar  app note.

    Regards,

    Aayush

  • Hello Aayush,

    Thank you for the repsonse.

    Like if I have enabled TDM mode with TX1 and TX3 Transmitters are Chosen (Azimuth antennas), how the chirps are received?

    Consider I have two chirp configuration,

    Chirp 0 -> with TX1 enabled

    Chirp 1 -> with Tx3 enabled

    And Frame configuration is done in such a way that 0 is the chirp start index, 1 is the chirp end index and number of chirp loops set to 64;

    then I receive first chirp transmitted by TX1 at all 4 RX Elements, then I receive first chirp sent by TX3 at all 4 Rx Elements ...

    Chirp1 TX1 (Rx1, RX2, RX3, RX4)

    Chirp1 TX3 (Rx1, RX2, RX3, RX4)

    Chirp 2 TX1 (Rx1, RX2, RX3, RX4)

    Chirp 2 TX3 (Rx1, RX2, RX3, RX4)

    Chirp3 TX1 (Rx1, RX2, RX3, RX4)

    Chirp3 TX3 (Rx1, RX2, RX3, RX4)

    ……………………………...

    Chirp64 TX1 (Rx1, RX2, RX3, RX4)

    Chirp64 TX3 (Rx1, RX2, RX3, RX4)

    Is it the Right way to arrange the chirps recieved from the Ethernet interface?

  • Hi Yeshaswini,

    I am not sure what your use case is.

    In general though, the SDK data processing chain uses DPIF_RADARCUBE_FORMAT_1 specified in <SDK_INSTALL_LOC>/packages/ti/datapath/dpif/dpif_radarcube.h.

    The ADC samples in the ADC buffer are first transferred per ADC buffer event (per chirp by default) to the DSP memory or HWA memory for 1D FFT range processing. The rangeproc data processing unit's FFT output is then stored in the radarcube in L3 memory for every chirp and RX.

    For DPIF_RADARCUBE_FORMAT_1, the radarcube is specified to be arranged in the following format:

    cmplx16ImRe_t x[numTXPatterns][numDopplerChirps][numRX][numRangeBins]
    This format is also depicted diagrammatically in the documentation of all the DPUs. Please look at the "HWA-AOA 2D angle FFT implementation (for 3 Tx antennas)" diagram in the AoA2D DPU for a diagrammatic representation of this.
    Regards,
    Aayush
  • Yes thank you. That diagram was helpful in understanding how chirps are transferred from ADC to further processing.

    I have one more quetsion:

    Say I am sending 100 Frames (4 chirps per Frame) with a periodicity of 2ms. Is this 2ms sufficient to process one Frame. Like how it has been implemented at Hardware side or is there any documentatio regarding this?

    Like can we expect any Buffer Limitation in this Scenario?

    Thanks & Best Regards,

    Yeshaswini

  • Hi Yeshaswini,

    Since the device is highly configurable, this is not a straightforward question to answer. However, you can use the mmWave Demo Visualizer to get a fair idea about this.

    With "Statistics" enabled under plot selection, you can try different configurations. In the plots tab under profiling, you will see inter chirp processing margin, inter frame processing time, inter frame processing margin, transmit output time.

    These fields will give you an idea of how much time processing takes under different configurations. You can save the config to PC, modify it outside of the GUI and load it back in the plots tab to have a finer grain control on the configurations.

    Essentially, there should be enough frame time for chirping + inter-frame processing (doppler, CFAR and AoA processing) + output transmit. Further, the chirps should also have sufficient idle time for inter-chirp processing (range processing). Device temperature might also be a concern.

    Interframe time and output transmit time would vary not only with the configuration, but also with the scene (number of objects) to some extent. 

    Regards,

    Aayush

  • Hello Aayush,

    Thank you for the answer. If I want to start integrating my own code to run on the DSp, what is the good way to begin with?

    Should I use CodeComposer studio, to access the DSP chip and run various instructions? Or is there any other way?

    Like I would like to do simple addition, multiplation uisng integrated DSP of AWR1843.

    Thanks & Best Regards,

    Yeshaswini

    Am 03/12/2020 um 14:27 schrieb Aayush Mahajan1:

     

    A Message from the TI E2E™ support forums

     

    Aayush Mahajan1 replied to AWR1843BOOST: Estimation of Elevation AOA.

    Hi Yeshaswini,

    Since the device is highly configurable, this is not a straightforward question to answer. However, you can use the mmWave Demo Visualizer to get a fair idea about this.

    With "Statistics" enabled under plot selection, you can try different configurations. In the plots tab under profiling, you will see inter chirp processing margin, inter frame processing time, inter frame processing margin, transmit output time.

    These fields will give you an idea of how much time processing takes under different configurations. You can save the config to PC, modify it outside of the GUI and load it back in the plots tab to have a finer grain control on the configurations.

    Essentially, there should be enough frame time for chirping + inter-frame processing (doppler, CFAR and AoA processing) + output transmit. Further, the chirps should also have sufficient idle time for inter-chirp processing (range processing). Device temperature might also be a concern.

    Interframe time and output transmit time would vary not only with the configuration, but also with the scene (number of objects) to some extent. 

    Regards,

    Aayush

     

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

    refid:a1cacd96-e4a5-4abe-8c32-97695809a509

    -- 
    Yeshaswini Palaksha, M.Sc.
    Research Group Aachen
    
    Fraunhofer Institute for High Frequency Physics and Radar Techniques FHR
    Melatener Str. 25 | 52074 Aachen | Germany
    Phone +49 241 80 22275 | Fax -22641
    mailto:yeshaswini.palaksha@fhr.fraunhofer.de
    http://www.fhr.fraunhofer.de
  • Hi Yeshaswini,

    That is correct. You can create a new CCS project for the 1843 device, for the Cortex R or C67xx subsystem. You can then select a project template and start experimenting with code. That would be the easiest way to start experimenting with code on the device.

    Regards,

    Aayush

  • Hi Yeshaswini,

    As there has been no further activity, I'm closing this thread. If you think your issue isn't resolved, please feel free to re-open this thread by replying to it.

    Regards,

    Aayush

  • Hello Ayush,

    I have one more question. How can I estimate the memory consumned by the C code written on my own? Like if I do not want to use the firmware from TI and would like to flash my own firmware, how can I proceed?

    Best Regards,

    Yeshaswini

    Am 06/01/2021 um 09:58 schrieb Aayush Mahajan1:

     

    A Message from the TI E2E™ support forums

     

    Aayush Mahajan1 replied to AWR1843BOOST: Estimation of Elevation AOA.

    Hi Yeshaswini,

    As there has been no further activity, I'm closing this thread. If you think your issue isn't resolved, please feel free to re-open this thread by replying to it.

    Regards,

    Aayush

     

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

    refid:bf06ae25-566e-4e83-85c0-7f28e3ec9735

    -- 
    Yeshaswini Palaksha, M.Sc.
    Research Group Aachen
    
    Fraunhofer Institute for High Frequency Physics and Radar Techniques FHR
    Melatener Str. 25 | 52074 Aachen | Germany
    Phone +49 241 80 22275 | Fax -22641
    mailto:yeshaswini.palaksha@fhr.fraunhofer.de
    http://www.fhr.fraunhofer.de
  • Hi Yeshaswini,

    You can look at the map files generated by the linker to see all the details of static memory utilization and layout. For dynamic memory allocation, you would need to keep track of the memory used in the program and output it. This for example happens in the mmwave demo with CCS debug binaries in the CCS console window.

    Regards,

    Aayush

  • Hello Ayush,

    Another question. Please correct me if I am wrong.

    TI provides MSS and RSS binary files that can be flashed on to the AWR1843 boost.

    So MSS application consists of:

    1. Bootloader

    2. Configuaration and control of device opeartaion via SPI, UART, EDMA, I2C

    3. Controlling Radar firmware via API messages which supports signal processing

    RSS application performs:

    1. controlling and configuring RF and digital front end

    2. Temperature dependent calibration

    3. Range processing

    4. CACFAR

    5. Doppler processing

    6. Segmentation

    Is it right?

    Best Regards,

    Yeshaswini

    Am 21/01/2021 um 08:47 schrieb Aayush Mahajan1:

     

    A Message from the TI E2E™ support forums

     

    Aayush Mahajan1 replied to AWR1843BOOST: Estimation of Elevation AOA.

    Hi Yeshaswini,

    You can look at the map files generated by the linker to see all the details of static memory utilization and layout. For dynamic memory allocation, you would need to keep track of the memory used in the program and output it. This for example happens in the mmwave demo with CCS debug binaries in the CCS console window.

    Regards,

    Aayush

     

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

    refid:39118e86-1a95-44f7-8304-63e95a040f4a

    -- 
    Yeshaswini Palaksha, M.Sc.
    Research Group Aachen
    
    Fraunhofer Institute for High Frequency Physics and Radar Techniques FHR
    Melatener Str. 25 | 52074 Aachen | Germany
    Phone +49 241 80 22275 | Fax -22641
    mailto:yeshaswini.palaksha@fhr.fraunhofer.de
    http://www.fhr.fraunhofer.de
  • Hi Yeshaswini,

    The device actually has three cores: MSS (master subsystem), DSS(DSP subsystem) and BSS(BIST subsystem, sometimes also called radar subsystem or radar frontend)

    A .bin file is a multicore file made up of MSS, DSS and BSS images. You can have a look at the documentation of the ImageCreator script in the SDK scripts folder for more details on this.

    Our CCS debug binaries are only for MSS and DSS code.

    The BSS runs the radar firmware available in SDK firmware folder. This is flashed on the device when you flash CCS debug. If you use a .bin file, it will also contain the firmware to be flashed on the BSS.

    The BSS orchestrates the radar frontend. It is configured via mmwavelink APIs which run on the MSS. This is done through the mmwavelink API as you mentioned.

    The calibrations are actually handled by the BSS firmware, the MSS only configures them and receives reports for them. You can have a look at this app note for details on calibration, including how firmware running on BSS handles them.

    The 'primary' bootloader is not part of the MSS; it is burnt into the device ROM out of box. You can refer to this app note to see how the bootloader works. The documentation on ImageCreator script also mentions the format expected by the primary bootloader, which might be useful.

    MSS mainly controls the radar frontend by communicating with it through mmwavelink APIs. It is also responsible for receiving commands over SPI/UART etc and transmitting the final output.

    I think you mistyped DSS as RSS in your post. The DSS application is used for datapath processing: range, doppler, CFAR, angle, clustering, tracking, etc.

    Regards,

    Aayush

  • Hello Ayush,

    Thank you for the detailed explanation. But the Programmable RAM size is just 512 KB for AWR1843 boost.

    Where can I find this demo DSS .bin file? As part of mmwave studio, I find only .bin files for RSS and MSS.

    Because I am interested to know the size of the DSS .bin file which includes the implementation of all signal processing steps.

    Thanks & Best Regards,

    Yeshaswini

    Am 04/02/2021 um 16:17 schrieb Aayush Mahajan1:

     

    A Message from the TI E2E™ support forums

     

    Aayush Mahajan1 replied to AWR1843BOOST: Estimation of Elevation AOA.

    Hi Yeshaswini,

    The device actually has three cores: MSS (master subsystem), DSS(DSP subsystem) and BSS(BIST subsystem, sometimes also called radar subsystem or radar frontend)

    A .bin file is a multicore file made up of MSS, DSS and BSS images. You can have a look at the documentation of the ImageCreator script in the SDK scripts folder for more details on this.

    Our CCS debug binaries are only for MSS and DSS code.

    The BSS runs the radar firmware available in SDK firmware folder. This is flashed on the device when you flash CCS debug. If you use a .bin file, it will also contain the firmware to be flashed on the BSS.

    The BSS orchestrates the radar frontend. It is configured via mmwavelink APIs which run on the MSS. This is done through the mmwavelink API as you mentioned.

    The calibrations are actually handled by the BSS firmware, the MSS only configures them and receives reports for them. You can have a look at this app note for details on calibration, including how firmware running on BSS handles them.

    The 'primary' bootloader is not part of the MSS; it is burnt into the device ROM out of box. You can refer to this app note to see how the bootloader works. The documentation on ImageCreator script also mentions the format expected by the primary bootloader, which might be useful.

    MSS mainly controls the radar frontend by communicating with it through mmwavelink APIs. It is also responsible for receiving commands over SPI/UART etc and transmitting the final output.

    I think you mistyped DSS as RSS in your post. The DSS application is used for datapath processing: range, doppler, CFAR, angle, clustering, tracking, etc.

    Regards,

    Aayush

     

    ----------------------------------------------------------------------------------------------------------

    Please check TI mmWave FAQs before posting a new query

    OR

    Use your search engine to look for some similar threads as shown below:

    "site e2e.ti.com <Your query>"

    ----------------------------------------------------------------------------------------------------------

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

    refid:035f5d02-e857-4061-ad94-ef32bc9284ee

    -- 
    Yeshaswini Palaksha, M.Sc.
    Research Group Aachen
    
    Fraunhofer Institute for High Frequency Physics and Radar Techniques FHR
    Melatener Str. 25 | 52074 Aachen | Germany
    Phone +49 241 80 22275 | Fax -22641
    mailto:yeshaswini.palaksha@fhr.fraunhofer.de
    http://www.fhr.fraunhofer.de
  • Hi Yeshaswini,

    mmwave studio does not use the DSS in any capacity.

    Our out of box demo, and all labs have a DSS folder as a part of their source. DSS code is compiled into .xe674 files.

    These files are then used to create the final multicore .bin file that you flash on the device. Their size on disk is misleading (out of box demo .xe674 file is around 3000kb!), the DSS .map files will give you exact numbers on how the different memories are used; they are a great resource for compile time memory usage analysis.

    .map corresponding to MSS and DSS binaries are available for labs, out of box demo, etc.

    Regards,

    Aayush

  • Hello Ayush,

    I figuered it out.I can actually convert this .xe74 file into .bin file image creator. That reduces the size to 159 KB.

    The generated .bin file is the actual binary file which can be programed onto the program memory of AWR1843Boost right?

    So this DSS .bin file will be having implementation of alll signal processing algorithms like range, doppler, processing, CA-CFAR, AOA and segmentation right?

    .xe74 is nothing but .out file which contains the symbolcc debug information which links the binary code to actual C source code right?

    Best Regards,

    Yeshaswini

    Am 05/02/2021 um 10:57 schrieb Aayush Mahajan1:

     

    A Message from the TI E2E™ support forums

     

    Aayush Mahajan1 replied to AWR1843BOOST: Estimation of Elevation AOA.

    Hi Yeshaswini,

    mmwave studio does not use the DSS in any capacity.

    Our out of box demo, and all labs have a DSS folder as a part of their source. DSS code is compiled into .xe674 files.

    These files are then used to create the final multicore .bin file that you flash on the device. Their size on disk is misleading (DSS .xe674 file is around 3000kb!), the DSS .map files will give you exact numbers on how the different memories are used; they are a great resource for compile time memory usage analysis.

    .map corresponding to MSS and DSS binaries are available for labs, out of box demo, etc.

    Regards,

    Aayush

     

    ----------------------------------------------------------------------------------------------------------

    Please check TI mmWave FAQs before posting a new query

    OR

    Use your search engine to look for some similar threads as shown below:

    "site e2e.ti.com <Your query>"

    ----------------------------------------------------------------------------------------------------------

     

    You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

    Flag this post as spam/abuse.

    refid:f644bbda-a827-49e7-bd8e-555c0311bc7d

    -- 
    Yeshaswini Palaksha, M.Sc.
    Research Group Aachen
    
    Fraunhofer Institute for High Frequency Physics and Radar Techniques FHR
    Melatener Str. 25 | 52074 Aachen | Germany
    Phone +49 241 80 22275 | Fax -22641
    mailto:yeshaswini.palaksha@fhr.fraunhofer.de
    http://www.fhr.fraunhofer.de
  • Hi Yeshaswini,

    Your interpretation is correct now. out2rprc script is used to convert the .out files (i.e. .xer4f and .xe674 files) to TI's RPRC format, which is later packaged into a multicore image file to be read by the bootloader.

    I would still suggest relying on the .map files generated during linking for memory usage analysis though; they are the authority on memory usage as the linker generates them. They are quite easy to read, give a summary of memory used and have all the details you might want (including up to which function/global variable is placed at which memory address, how much memory it takes up, etc.)

    I will close this thread now since the discussion has drifted from the original title question a bit. Please feel free to open a separate thread for any questions you might have.

    Regards,

    Aayush