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/AWR1642: Raw ADC data - Capture Demo

Part Number: AWR1642

Tool/software: Code Composer Studio

Dear all,

I am working with AWR1642 BOOST mmWaveSensor in order to capture raw data and apply my signal processing in offline mode with matlab. I am trying to use the Capture demo available in the mmwave_sdk_01_01_00_02 and I read the section 3. 4. 3. Capture demo for xWR16xx in the mmwave-sdk-user-guide, but I still have some doubts. 

To let you understand I report all the procedure that I am doing:

1) Flashing CCS debug file: from the user guide I see that just a .bin file is needed. So the file xwr16xx_ccsdebug.bin has been selected from the folder mmwave_sdk_01_01_00_02\packages\ti\ utils\ccsdebug. When the flash procedure completes, the board is powered off end the jumper from header SOP2  is removed. 

2) Connection to CCS: after the creation of new target configuration file, the selected configurations is launched. From the debug window C674X_0/DSS and Cortex_R4_0/MSS are visible.  Since I need Raw data, I guess only the MSS has to be connected (right?) where xwr16xx_capture_demo_mss.xer4f has been loaded, found at C:\ti\mmwave_sdk_01_01_00_02\packages\ti\demo\xwr16xx\capture. No other actions have been done for C674X_0

3) Sending the Configuration: after setting up the Tera Term console, the MSS DEMO configuration is chosen. For the configuration of the parameters, the  file capture_demo_script has been chosen, found in the folder C:\ti\mmwave_sdk_01_01_00_02\packages\ti\demo\xwr16xx\capture.

At this point, when I go to open the Momory Browser on CCS to view the ADC contents, Which memory address should I use?

Then, I would like to set the parameters in order to have a continous wave radar. I see that in the folder C:\ti\mmwave_sdk_01_01_00_02\packages\ti\demo\xwr16xx\capture even capture_demo_script_lvds_cont_mode is present, but when I set dfeDataOutputMode equal to 2, TeraTerm console output is: 'dfeDataOutputMode is not recognized as a CLI command'. 

Reading from two different versions of the sdk user guide, I found a discrepancy between the configuration command dfeDataOutputMode for the capture demo with xwr16xx, where in one only option 1(frame based chirp) and option 3(advanced frame config) are supported while on the other version option 1 and option 2(continuous chirp) are supported. So I am a bit confused. Is it possible to have a CW setup? Did I make mistakes with the procedure listed above? 

Many thanks in advance. 

Alessio

  • Hi Alessio,

    Why do you want to run in continuous chirping mode vs frame chirping mode?

    When loading the debug software, you will have to connect to both the DSS and MSS, and load software (.xe674 and .xer4f) onto both.  The data will be stored in the gDataCube - you should be able to search for this in the memory browser. If not, the address is 0x51020000.

    Regards,

    Justin

  • Hi Justin,

    really thanks for your reply. Well, the idea was to run continuous chirping mode but it did not work since the DSS was not connected,I guess. So I gave a try running the frame chirping mode. By the way, now it looks work. At least now I can see the data in the memory browser (selecting the address 0x51020000). 

    I have another question. How can I specify the number of memory words to read? I used the configuration reported below: 

    flushCfg
    dfeDataOutputMode 2
    channelCfg 2 1 0
    adcCfg 2 2
    adcbufCfg 0 0 1 1
    lowPower 0 0
    contModeCfg 77 0 0 6000 0 0 30 1 1024
    setHSI LVDS ADC disable
    sensorStart

    On my understanding, to find the number of memory words I have to calculate:

    TOT=num of ADC samples*num of RX channel * num of Frames*Num of chirps * 4 Bytes per sample

    Assuming a 16 bit hex ti style format 

    num_word= TOT/16. 

    From the configuration reported, I know the number of ADC sample (1024) and num of RX channel (2 - not really clear in the user manual). WHat about the number of frames and number of chirp?

    Regards,

    Alessio

  • Hi Alessio,

    Because you are using Continuous mode, there are no chirps or frames - the device transmits one frequency. Generally, this is used for debug or test purposes.
    In chirp mode, the number of bytes to read is num of ADC samples*num of RX channel * num of Frames*Num of chirps * 4 Bytes per sample.
    Where Num of chirps = NumTx*numChirpPerTx
    This will give you the number of bytes to read. To get the number of 16 bit words, divide by two. Each sample is two 16 bit words, one real and one imaginary value.

    Regards,
    Justin
  • Hi Justin, 

    sorry but it is not clear yet. If there are no chirp or frame in continuous mode, how can I use  numADC samples*num of RX channel * num of Frames*Num of chirps * 4 Bytes per sample to read tje number of bytes?

    Could you please explain it with an example?  For example, in my case I have set :

    numADCsample=1024 

    numRxChannel=1

    with numTX=1.

    Thanks 

    Alessio

  • Hi Alessio,

    Since you are taking 1024 samples, and each sample is 4 bytes, the size of memory used is 1024*4 = 4096 bytes.

    Regards,

    Justin

  • Hi Justin, 

    ok I have got this. So let say, in case I choose the continuous mode configuration as follow:

    contModeCfg 77 0 0 6000 0 0 30 1 6000

    I will have 6000*4=24000 bytes, so 12000 16 - bit words, which means an acquisition of 0.1 seconds considering a ADC sample frequency of 6000ksps. Is it right? 

    Then, Where can I find information about the size of the L3 memory?

    Thanks in advance. Regards,

    Alessio

  • Hi Alessio,

    The Technical reference manual has information about the size of L3. (Its 2MB total).  Note that based on the demo, some memory will be used for things besides storing ADC Data.

    Regards,

    Justin

  • Hi Justin, 

    thanks a lot for your reply. What about the example I posted previously? Is it right? 

    Regards,

    Alessio

  • Hi Alessio,

    Sorry for the delayed response. You are collecting 6000 samples at a rate of 6000ksps. This will take:
    6000samples/6000ksps = 0.001 seconds.

    Regards,
    Justin
  • Hi Justin,

    no problem at all. Just few more questions:

    1) Is it possible that, if a run both the MSS and DSS on CCS, the velue in the memory browser are all null and instead if I run only the MSS the value are different from null value?

    2) How can I read the ADC data in matlab? Is there a scritp already implemented somewhere? 

    Best regards,

    Alessio

  • Hi Alessio,

    1) The memory will be filled by the ADC. The 1642 capture demo allows you to use the MSS or the DSP to capture the data - generally I recommend just using the MSS.

    2) The data format is described in this document.

    Regards,

    Justin