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.

CCS/IWR6843: HowTo get the continuous wave Running

Part Number: IWR6843
Other Parts Discussed in Thread: MMWAVE-STUDIO, SYSBIOS

Tool/software: Code Composer Studio

Hi,

is there an example on howto get the IWR6843 running in the Continuous Wave mode? Means that the chirp is deactivated.

I have tried to configure the ADCBuf as well as the MMWave into Continuous Mode (not Frame or advanced Frame mode). For the Profile and Chirp config first I had leaving them in them Demo configuration and tried to play with them (setting the slop to0 etc.) neither of these trials left me without an Error on starting the sensor (Init, Sync, Execute- Task, Config and Open are functional).

So what am I doing wrong?

Thanks and best

Daniel 

  • Hello Daniel,

    Attributing to the fundamental reasons discussed in the following thread, CW Doppler Radar is not supported on our devices and therefore we do not have any documentation or example code for the same.

    IWR1642: CW Doppler Radar

    MMWAVE-STUDIO includes continuous streaming mode which you can use to capture raw data samples in continuous mode, but please note that it is provided for testing purposes only. You will need the DCA1000 EVM to capture raw data. Please refer to the following training video and MMWAVE-STUDIO user guide. 

    DCA1000 Training Video

    Regards

    -Nitin

  • Hi Nitin,

    okay, but to my understanding and according to the Documentation it should be possible to set the RF in a single tone mode (or continuous mode) where it is should sending in a fixed frequency and according to this the ADC(Buf) is continuously sampling. Retrieving these IQ-data into the L3 should make them available for whatever I want to do ... even averaging and send them out using the UART.

    Just to emphasize this, the intention is not to build a Doppler Radar but some kind of an interferometer.

    If I got it correct the DCA1000 is doing this using the LVDS which was not intended form my side, esp. since the bandwidth if of lower priority.  Not a talking about the form factor ...

    Best Regards,

    Daniel 

  • Hi Daniel,

    Sorry for the delayed response.  As indicated earlier, DCA1000 + MMWAVE-STUDIO is the supported solution for raw data capture, including CW mode data.

    There is a mem capture test available in the SDK under ti\drivers\test directory, which demonstrates limited raw data capture in the L3 memory.  I'm checking whether CW mode has been tested with that, and should be able to provide a response tomorrow.

    Regards

    - Nitin

  • Hi Daniel,

    The mem_capture driver test in SDK 3.2.0.4 under ti\drivers\test directory does not support CW mode and hence is not tested for CW data. I am looking into the code changes needed to enable this test for CW data capture and expect to respond to you next week.

    Regards

    -Nitin 

  • Hi Daniel,

    Sorry for the delay. I'm still looking into this and expect to have the changes next week.

    Regards

    -Nitin

  • Hi Nitin,

    No Problem, I am just looking forward on your solution.

    Best,

    Daniel

  • Hi Daniel,

    I have a few basic questions on this topic.

    1. I assume that you want to use the sensor in RX only mode i.e. turn the transmitters off, correct? Since using continuous mode receiver with transmitters ON will not provide any useful information since there will be no difference between the TX and RX frequency and the IF spectrum would essentially contain DC only. Typically continuous mode is used for either TX side testing or RX side testing.

    2. Also, keeping the transmitters on all the time i.e. 100 percent duty cycle will cause the device to overheat very quickly and go into thermal shutdown.

    3. Can you please provide some more details of the use case? You mentioned "some sort of Interferometer" in your earlier post. Could you please clarify.

    Regards

    -Nitin

  • Hi Nitin,

    just to give you a coarse outline, we would use the Radar more like an Interferometer. This means that the time of flight (ToF) is short enough that the IQ-Demodulator is showing a phase shift within the first cycle, which is different to a (Doppler) Radar. Due to this the a common FFT would fail show and phase dependent IQ. This also explains why wie do not have any benefit sweeping the frequency, even worse the IQ-Diagram (polar coordinates) would be obstructed. 

    In regards that an overheating is likely on a 100 % d.c., that would not be an issue as long as there is a trigger and it is ensured that the device stabilizes right before the ADC is capturing the IQ values. The targeted period would be around 150µs (trigger to trigger).

    To sum it up, the TX as well as RX portion would be needed running on a fixed Freq. Pulsed as mentioned ensuring a reliable functionality and neglecting the overheating pattern.

    Best,

    Daniel

  • Hi Daniel,

    I have attached two files here. You need to replace the corresponding files in mmwave SDK 3.3 mem_capture test with these and rebuild the test as given below:

    1. Create a copy of the mem_capture test directory so that you can compare the code changes made for continuous mode below: 
    2. Replace C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture\capture.c with capture.c attached here.
    3. Replace C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture\xwr68xx\mss.c with mss.c attached here
    4. Rebuild the mem_capture test following the standard SDK compile instructions provided in the SDK user guide.
    5. The sensor configuration parameters are defined/hard-coded in various functions in mss.c. You will need to modify these per your test requirements and re-build the code.

    File-1: Capture.c/cfs-file/__key/communityserver-discussions-components-files/1023/capture.c

    File-2: mss.c/cfs-file/__key/communityserver-discussions-components-files/1023/mss.c

    This test captures ADC data in L3 memory until the memory is full. Please refer to the SDK user guide for usage details (Search for .mem_capture)

    Please note that we are providing this code as-is on a one time basis as an example. I would still recommend you to use the DCA1000 EVM with MMWAVE-STUDIO which is the supported method for Raw ADC data capture.

    Regards

    -Nitin

  • Hi Nitin,

    thanks for the update compiling the Files wihtin the mmWave SDK 03.02.00.06 AOP harvests the following set of errors:

     

    C:\ti\mmwave_sdk_03_02_00_06_AOP\packages\ti\drivers\test\mem_capture>gmake test
    SHMEM_ALLOC is set to 0x02000006
    Configuring RTSC packages...
    c:/ti/xdctools_3_50_08_24_core/xs --xdcpath="c:/ti/bios_6_73_01_01/packages;c:/ti/mmwave_sdk_03_02_00_06_AOP/packages" xdc.tools.configuro -t ti.targets.arm.elf.R4Ft -p ti.platforms.cortexR:IWR68XX:false:200 -r release -c c:/ti/ti-cgt-arm_16.9.6.LTS -DMMWAVE_SDK_DEVICE_TYPE=xwr68xx --compileOptions "--enum_type=int"  -o xwr68xx/mss_configPkg_xwr68xx xwr68xx/mss.cfg
    Finished configuring packages
    [R4 Device/Type: iwr68xx/xwr68xx] Building file: c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 422: error: struct "MMWave_OpenCfg_t" has no field "calibMonTimeUnit"
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 883: error: variable "profileCfg" is used before its value is set
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 780: error: variable "chirpCfg" was declared but never referenced
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 781: error: variable "profileHandle" was declared but never referenced
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 321: error: function "MemCapture_initLinkProfileCfgParams" was declared but never referenced
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 354: error: function "MemCapture_initLinkChirpCfgParams" was declared but never referenced
    "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 381: error: function "MemCapture_initLinkFrameParams" was declared but never referenced
    7 errors detected in the compilation of "c:/ti/mmwave_sdk_03_02_00_06_AOP/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c".
    What is different btw. the versions used on your and my side?
    Thanks.
    Best,
    Daniel
  • Hi Daniel,

    I had modified the example based on SDK 3.3 as mentioned in the instructions. SDK 3.3 supports IWR6843 ES2.0 and it brings certain API changes which are incompatible with SDK 3.2.x resulting in the build errors you got.

    Let me look into modifying the example for SDK 3.2 and get back to you.

    Regards

    -Nitin

  • Hi Daniel,

    Thank you for your patience, are you still having this issue?

    Cheers,

    Akash

  • Hi Daniel,

    Could you please confirm if you've resolved this issue or need further support?

    Thanks

    -Nitin

  • Hi Nitin,

    sorry I was captured from another thing I have tried to compile against the 3.0.0.0 (and that it is compatible to IWR6843 AOP , since I do not have the ISK version) unfortunately I am getting the following printout:

    C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture>gmake all
    SHMEM_ALLOC is set to 0x00000006
    Configuring RTSC packages...
    C:/ti/xdctools_3_50_08_24_core/xs --xdcpath="C:/ti/bios_6_73_01_01/packages;C:/ti/mmwave_sdk_03_03_00_03/packages" xdc.tools.configuro -t ti.targets.arm.elf.R4Ft -p ti.platforms.cortexR:IWR68XX:false:200 -r release -c C:/ti/ti-cgt-arm_16.9.6.LTS -DMMWAVE_SDK_DEVICE_TYPE=xwr68xx --compileOptions "--enum_type=int"  -o xwr68xx/mss_configPkg_xwr68xx xwr68xx/mss.cfg
    Finished configuring packages

    [R4 Device/Type: iwr68xx/xwr68xx] Building file: C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 883: error: variable "profileCfg" is used before its value is set
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 780: error: variable "chirpCfg" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 781: error: variable "profileHandle" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 321: error: function "MemCapture_initLinkProfileCfgParams" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 354: error: function "MemCapture_initLinkChirpCfgParams" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 381: error: function "MemCapture_initLinkFrameParams" was declared but never referenced
    6 errors detected in the compilation of "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c".

    >> Compilation failure
    gmake: *** [obj_xwr68xx/mss.oer4f] Error 1

    C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture>gmake clean
    SHMEM_ALLOC is set to 0x00000006
    Cleaning the xwr68xx MSS Memory Capture objects
    Cleaning the xwr68xx MSS Memory Capture RTSC package
    Cleaning the DSS Memory Capture Objects
    Cleaning the DSS Memory Capture RTSC package

    C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture>gmake clean
    SHMEM_ALLOC is set to 0x00000006
    Cleaning the xwr68xx MSS Memory Capture objects
    Cleaning the xwr68xx MSS Memory Capture RTSC package
    Cleaning the DSS Memory Capture Objects
    Cleaning the DSS Memory Capture RTSC package

    C:\ti\mmwave_sdk_03_03_00_03\packages\ti\drivers\test\mem_capture>gmake all
    SHMEM_ALLOC is set to 0x00000006
    Configuring RTSC packages...
    C:/ti/xdctools_3_50_08_24_core/xs --xdcpath="C:/ti/bios_6_73_01_01/packages;C:/ti/mmwave_sdk_03_03_00_03/packages" xdc.tools.configuro -t ti.targets.arm.elf.R4Ft -p ti.platforms.cortexR:IWR68XX:false:200 -r release -c C:/ti/ti-cgt-arm_16.9.6.LTS -DMMWAVE_SDK_DEVICE_TYPE=xwr68xx --compileOptions "--enum_type=int"  -o xwr68xx/mss_configPkg_xwr68xx xwr68xx/mss.cfg
    making package.mak (because of package.bld) ...
    generating interfaces for package mss_configPkg_xwr68xx (because package/package.xdc.inc is older than package.xdc) ...
    configuring mss.xer4ft from package/cfg/mss_per4ft.cfg ...
    generating custom ti.sysbios library makefile ...
    Starting build of library sources ...
    making C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss_configPkg_xwr68xx/package/cfg/mss_per4ft.src/sysbios/sysbios.aer4ft ...
    gmake[1]: Entering directory `C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss_configPkg_xwr68xx/package/cfg/mss_per4ft.src/sysbios'
    cler4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/BIOS.c ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm.asm ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/TaskSupport_asm.asm ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/v7r/vim/Hwi_asm.sv7R ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/v7r/vim/Hwi_asm_switch.sv7R ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/exc/Exception_asm.asm ...
    asmer4ft C:/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/v7r/tms570/Core_asm.sv7R ...
    arer4ft BIOS.obj arm_IntrinsicsSupport_asm.obj arm_TaskSupport_asm.obj vim_Hwi_asm.obj vim_Hwi_asm_switch.obj exc_Exception_asm.obj tms570_Core_asm.obj ...
    gmake[1]: Leaving directory `C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss_configPkg_xwr68xx/package/cfg/mss_per4ft.src/sysbios'
    Build of libraries done.
    cler4ft package/cfg/mss_per4ft.c ...
    Finished configuring packages

    [R4 Device/Type: iwr68xx/xwr68xx] Building file: C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 883: error: variable "profileCfg" is used before its value is set
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 780: error: variable "chirpCfg" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 781: error: variable "profileHandle" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 321: error: function "MemCapture_initLinkProfileCfgParams" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 354: error: function "MemCapture_initLinkChirpCfgParams" was declared but never referenced
    "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c", line 381: error: function "MemCapture_initLinkFrameParams" was declared but never referenced
    6 errors detected in the compilation of "C:/ti/mmwave_sdk_03_03_00_03/packages/ti/drivers/test/mem_capture/xwr68xx/mss.c".

    >> Compilation failure
    gmake: *** [obj_xwr68xx/mss.oer4f] Error 1

    Best Daniel

  • HI Daniel,

    I have modified the attached mss.c to compile the mem_capture test for SDK 3.2.0.6_AOP. I have also copied the full set of instructions provided earlier for completeness below (note that the instructions below refer to SDK 3.2.0.6.AOP).

    I have attached two files here. You need to replace the corresponding files in mmwave SDK 3.2.0.6.AOP mem_capture test with these and rebuild the test as given below:

    1. Create a copy of the mem_capture test directory so that you can compare the code changes made for continuous mode below: 
    2. Replace C:\ti\mmwave_sdk_03_02_00_06_AOP\packages\ti\drivers\test\mem_capture\capture.c with the capture.c attached here.
    3. Replace C:\ti\mmwave_sdk_03_02_00_06_AOP\packages\ti\drivers\test\mem_capture\xwr68xx\mss.c with the mss.c attached here
    4. Rebuild the mem_capture test following the standard SDK compile instructions provided in the SDK user guide.
    5. The sensor configuration parameters are defined/hard-coded in various functions in mss.c. You will need to modify these per your test requirements and re-build the code.

    File-1: Capture.c/cfs-file/__key/communityserver-discussions-components-files/1023/capture.c

    File-2: mss.c/cfs-file/__key/communityserver-discussions-components-files/1023/5315.mss.c

    This test captures ADC data in L3 memory until the memory is full. Please refer to the SDK user guide for usage details (Search for .mem_capture)

    Please note that we are providing this code as-is on a one time basis as an example. I would still recommend you to use the DCA1000 EVM with MMWAVE-STUDIO which is the supported method for Raw ADC data capture.

    Regards

    -Nitin