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.

IWR6843AOPEVM: 如何在不使用 MMWAVEICBOOST 和 DCA1000的情况下,利用低速串行总线得到原始数据(每个通道的数据)。

Part Number: IWR6843AOPEVM
Other Parts Discussed in Thread: IWR6843, MMWAVEICBOOST, IWR6843AOP

我查阅了相关资料,有一份基于IWR6843的获取原始数据的文档《使用低速串行总线的实时 ADC 原始数据采集方法》,我想知道这份文档使用的方法是否适用于IWR6843AOPEVM;

如果适用,我应该基于哪个demo的工程进行修改,修改方式是否和上述文档一致。

  • 可用,问题不大。不敢保证完全不用改,但是大体上是一致的。需注意,IWR6843AOPEVM 板载串口最大通信速率限制,MSS LOGGER口为921600bps。Cfg uart为2Mbps。如需使用更大的波特率,需要使用mmwave icboost。

  • 好的,谢谢你的回复。

    请问是基于ti\mmwave_sdk_03_05_00_04\packages\ti\demo\xwr64xx\mmw\里的文件进行修改吗;还是应该基于mmwave_industrial_toolbox_4_11_0里的3D_People_Counting工程进行修改,需要您的建议。

  • 基于ti\mmwave_sdk_03_05_00_04\packages\ti\demo\xwr64xx\mmw

  • 谢谢你的回复,我目前是基于C:\ti\mmwave_industrial_toolbox_4_11_0\labs\Out_Of_Box_Demo\src\xwr6843AOP 里的工程文件进行修改的。

    我基于 C:\ti\mmwave_industrial_toolbox_4_11_0\labs\People_Counting\visualizer 中的文件进行上位机GUI的开发,调试中遇到了如下的几个问题(以下《使用低速串行总线的实时 ADC 原始数据采集方法》文档简称《方法》):

    1. 《方法》中提到修改 oob_parser.py 中的相应代码为:

    def connectComPorts(self, uartCom, dataCom):
        self.uartCom = serial.Serial(uartCom, 
        115200,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.3)
        if (self.capon3D == 1 and self.aop == 0):
            self.dataCom = serial.Serial(dataCom, 
            921600*1,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.025)
        else:
            self.dataCom = serial.Serial(dataCom, 
            3125000,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.01) 
        self.dataCom.reset_output_buffer()
        print('Connected')
    

    您之前提到过 “IWR6843AOPEVM 板载串口最大通信速率限制,MSS LOGGER口为921600bps。Cfg uart为2Mbps。” 我留意了这个问题,所以将代码中的

    3125000 改成了 2000000 ( 不知道这样理解是否有误) 。
    然后我在调试 gui_main.py 文件时,发现只有 config type 为3D people counting 时,才能connectted(端口号无误),SDK out of box demo 下无法连接成功;后将代码中的 2000000 修改为 921600,端口连接成功。请问这样做是否合理。
    2. 在处于 SDK out of box demo  连接成功的基础上(问题1的设置方式),我使用 mmWave Demo Visulizer(dev.ti.com/.../) 生成的相应 config 文件(cfg文件如下)
    % ***************************************************************
    % Created for SDK ver:03.05
    % Created using Visualizer ver:3.5.0.0
    % Frequency:60
    % Platform:xWR68xx_AOP
    % Scene Classifier:best_range_res
    % Azimuth Resolution(deg):30 + 30
    % Range Resolution(m):0.044
    % Maximum unambiguous Range(m):9.02
    % Maximum Radial Velocity(m/s):1
    % Radial velocity resolution(m/s):0.13
    % Frame Duration(msec):1000
    % RF calibration data:None
    % Range Detection Threshold (dB):15
    % Doppler Detection Threshold (dB):15
    % Range Peak Grouping:enabled
    % Doppler Peak Grouping:enabled
    % Static clutter removal:disabled
    % Angle of Arrival FoV: Full FoV
    % Range FoV: Full FoV
    % Doppler FoV: Full FoV
    % ***************************************************************
    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 7 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    profileCfg 0 60 359 7 57.14 0 0 70 1 256 5209 0 0 158
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 16 0 1000 1 0
    lowPower 0 0
    guiMonitor -1 1 1 0 0 0 1
    cfarCfg -1 0 2 8 4 3 0 15 1
    cfarCfg -1 1 0 4 2 3 1 15 1
    multiObjBeamForming -1 1 0.5
    clutterRemoval -1 0
    calibDcRangeSig -1 0 -5 8 256
    extendedMaxVelocity -1 0
    lvdsStreamCfg -1 0 0 0
    compRangeBiasAndRxChanPhase 0.0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0
    measureRangeBiasAndRxChanPhase 0 1.5 0.2
    CQRxSatMonitor 0 3 5 121 0
    CQSigImgMonitor 0 127 4
    analogMonitor 0 0
    aoaFovCfg -1 -90 90 -90 90
    cfarFovCfg -1 0 0 8.92
    cfarFovCfg -1 1 -1 1.00
    calibData 0 0 0
    sensorStart
    进行  start and send configuration,终端循环输出
    Traceback (most recent call last):
      File "c:\ti\mmwave_industrial_toolbox_4_11_0\labs\People_Counting\visualizer\gui_threads.py", line 26, in run
        pointCloud = self.parser.readAndParseUart()
      File "c:\ti\mmwave_industrial_toolbox_4_11_0\labs\People_Counting\visualizer\oob_parser.py", line 1306, in readAndParseUart
        self.byteData = self.sdk3xTLVHeader(self.byteData)
      File "c:\ti\mmwave_industrial_toolbox_4_11_0\labs\People_Counting\visualizer\oob_parser.py", line 971, in sdk3xTLVHeader
        self.parseL3Data(dataIn[:tlvLength], self.profile)
    AttributeError: 'uartParserSDK' object has no attribute 'profile'
    请问这是为什么。
    3. 我参阅了People Counting Visualizer User's Guide中 save the output  的设置
    Saving the Output
    The output data from the mmWave sensor can be saved for future use in 2 ways:
    as a binary bitstream of the UART data, and as a csv file of the frame headers
    and TLVs.
    
    To save either of these files, in oob_parser.py, set self.saveBinary and/or 
    self.saveTextFile equal to 1, save the file, then run start the gui as described 
    above. The output data will be recorded relative to the mmWave sensor, not rotated 
    for world coordinates as the display is.
    请问这样做是否能够保存我想要的原始数据。
    4. 《方法》中提到要将 C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc\src\rangeprochwa.c 文件中 “ FFTEN 及 windowEN 设置修改为 0 ”。
    我在基于C:\ti\mmwave_industrial_toolbox_4_11_0\labs\Out_Of_Box_Demo\src\xwr6843AOP 里的工程文件进行修改的情况下,修改了C:\ti\mmwave_industrial_toolbox_4_11_0\labs\common\src\dpu\rangeprochwa\src\rangeprochwa.c 中的相关参数;
    请问这样做是否合理。
    需要您的建议,谢谢!
  • 针对问题2:

    我保存了 gui_main.py 里的 profile 为 RawData_Configuration.npy;并在oob_parser.py 中的 sdk3xTLVHeader 函数进行处理时进行导入,解决了这一问题。现在的输出为:

    ...
    b'Done\n'
    b'\rmmwDemo:/>calibData 0 0 0\n'
    ('unpack requires a buffer of 196610 bytes',)
    
    ADC RAW error!
    dataInLength =  64784

    请问这和我的波特率设置有关系吗,还是因为我一帧数据太多的原因。

  • 我需要问一下写文档的工程师。

  • 谢谢您!期待您的回复。

  • 请参考附件我们FAE分享的源码。

    Release_20220705.zip

  • 感谢您分享的源码,我详细调试了每一个环节,还是发现了以下问题:

    1. 我的硬件只有 IWR6843AOPEVM ,通过micro usb 连接线直接与PC的USB端口相连;串口信息如下

    Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port (COM 8)
    Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port (COM 7)

    源码的readme以及《方法》中都提到了只有 MMWAVEICBOOST 支持UART 3125000 bps 的速率,所以我将源码中的 mss_main.c 中的 loggingBaudRate 修改为 921600*2

        config->loggingBaudRate     = 1843200 //921600;
        config->commandBaudRate     = 115200;

    先后rebuild dss工程和mss工程,将Release_20220705\mmwave_sdk_68xx_dsp_mss\Debug\xwr68xx_mmw_demo.bin 刷入板子;

    然后将 oob_parser.py 中 dataCom 的BaudRate修改为921600*2

     

    def connectComPorts(self, uartCom, dataCom):
            self.uartCom = serial.Serial(uartCom,
                                         115200,
                                         parity=serial.PARITY_NONE,
                                         stopbits=serial.STOPBITS_ONE,
                                         timeout=0.3)
            if (self.capon3D == 1 and self.aop == 0):
                self.dataCom = serial.Serial(dataCom,
                                             921600 * 1,
                                             parity=serial.PARITY_NONE,
                                             stopbits=serial.STOPBITS_ONE,
                                             timeout=0.025)
            else:
                self.dataCom = serial.Serial(dataCom,
                                             921600 * 2,
                                             parity=serial.PARITY_NONE,
                                             stopbits=serial.STOPBITS_ONE,
                                             timeout=0.01)
                # self.dataCom = serial.Serial(dataCom, 921600,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.025)
            self.dataCom.reset_output_buffer()
            print('Connected')

    运行 gui_main.py, 输入对应 uart com和data com 端口号为 8 和 7;显示

    Unable to Connect
    在此基础上,将 oob_parser.py 中 dataCom 的BaudRate修改为921600;可以成功连接 connected ;运行后的输出如下
    Python is  64  bit
    Python version:  sys.version_info(major=3, minor=6, micro=15, releaselevel='final', serial=0)
    Parser type:  SDK Out of Box Demo
    Connected
    {'startFreq': 60.0, 'numLoops': 64, 'numTx': 3, 'sensorHeight': 3, 'maxRange': 10, 'az_tilt': 0, 'elev_tilt': 0, 'idle': 567.0, 'adcStart': 7.0, 'rampEnd': 57.14, 'slope': 70.0, 'samples': 128.0, 'sampleRate': 5209.0}
    Setting box  0  invisisble
    Setting box  1  invisisble
    b'sensorStop\n'
    b'Ignored: Sensor is already stopped\n'
    b'\rDone\n'
    b'\rmmwDemo:/>flushCfg\n'
    b'Done\n'
    b'\rmmwDemo:/>dfeDataOutputMode 1\n'
    b'Done\n'
    b'\rmmwDemo:/>channelCfg 15 5 0\n'
    b'Done\n'
    b'\rmmwDemo:/>adcCfg 2 1\n'
    b'Done\n'
    b'\rmmwDemo:/>adcbufCfg -1 0 1 1 1\n'
    b'Done\n'
    b'\rmmwDemo:/>profileCfg 0 60 567 7 57.14 0 0 70 1 128 5209 0 0 30\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 0 0 0 0 0 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 1 1 0 0 0 0 0 4\n'
    b'Done\n'
    b'\rmmwDemo:/>frameCfg 0 1 64 0 1000 1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>lowPower 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>guiMonitor -1 1 0 0 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 0 2 8 4 3 0 15 1\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 1 0 4 2 3 1 15 1\n'
    b'Done\n'
    b'\rmmwDemo:/>multiObjBeamForming -1 1 0.5\n'
    b'Done\n'
    b'\rmmwDemo:/>clutterRemoval -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>calibDcRangeSig -1 0 -5 8 256\n'
    b'Done\n'
    b'\rmmwDemo:/>extendedMaxVelocity -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>bpmCfg -1 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>lvdsStreamCfg -1 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>measureRangeBiasAndRxChanPhase 0 1.5 0.2\n'
    b'Done\n'
    b'\rmmwDemo:/>CQRxSatMonitor 0 3 5 121 0\n'
    b'Done\n'
    b'\rmmwDemo:/>CQSigImgMonitor 0 127 4\n'
    b'Done\n'
    b'\rmmwDemo:/>analogMonitor 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>aoaFovCfg -1 -90 90 -90 90\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 0 0 8.92\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 1 -1 1.00\n'
    b'Done\n'
    b'\rmmwDemo:/>calibData 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>sensorStart\n'
    然后无法继续执行下去,一直卡在此处,也没有数据bin文件产生。
    2. 我重新将源码中的 mss_main.c 中的 loggingBaudRate 修改为 921600;rebuild之后重新刷入固件;
    执行gui,connected 并 send cfg 之后依然卡住不动,且没有数据bin文件产生。

    我的疑惑如下:
    1.  是否 Enhanced COM Port (COM 8) 的最高速度为 2M bps,Standard COM Port (COM 7) 的最高速度为 921600 bps。
    2.  如果 仅 基于 当前的 硬件配置(没有 MMWAVEICBOOST 以及 相关转接板) 以及 《方法》 和 源码 的指导,
    是否只能将 Standard COM Port (COM 7)  作为 dataCom 进行数据传输;
    是否意味着我的数据最高传输速率 不是 UART的最大传输速率 2M bps (没有 MMWAVEICBOOST 的情况下),而是 921600 bps。
    3.  我的任务不需要很高的帧率和实时性,但是对便携性要求很高,所以才使用单个的iwr6843aop板进行开发。
    请问能否使用 Enhanced COM Port (COM 8)  进行数据传输,如果可以,应该怎么修改工程。
    4.  问题1和2 中,输出为什么会卡住。
    谢谢您的耐心解答!
  • 目前最接近成功的配置如下

    1. mss_main.c 配置:

        config->loggingBaudRate     = 921600;//921600;
        config->commandBaudRate     = 1843200;

    2. oor_parser.py :

    def connectComPorts(self, uartCom, dataCom):
            self.uartCom = serial.Serial(uartCom,
                                         921600 * 2,
                                         parity=serial.PARITY_NONE,
                                         stopbits=serial.STOPBITS_ONE,
                                         timeout=0.3)
            if (self.capon3D == 1 and self.aop == 0):
                self.dataCom = serial.Serial(dataCom,
                                             921600 * 1,
                                             parity=serial.PARITY_NONE,
                                             stopbits=serial.STOPBITS_ONE,
                                             timeout=0.025)
            else:
                self.dataCom = serial.Serial(dataCom,
                                             921600 * 1,
                                             parity=serial.PARITY_NONE,
                                             stopbits=serial.STOPBITS_ONE,
                                             timeout=0.01)
                # self.dataCom = serial.Serial(dataCom, 921600,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.025)
            self.dataCom.reset_output_buffer()
            print('Connected')

    3. 修改后的profile.cfg(减小loop的数量,减小数据量):

    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 5 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    profileCfg 0 60 567 7 57.14 0 0 70 1 128 5209 0 0 30
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 4
    frameCfg 0 1 4 0 1000 1 0
    lowPower 0 0
    guiMonitor -1 1 0 0 0 0 0
    cfarCfg -1 0 2 8 4 3 0 15 1
    cfarCfg -1 1 0 4 2 3 1 15 1
    multiObjBeamForming -1 1 0.5
    clutterRemoval -1 0
    calibDcRangeSig -1 0 -5 8 256
    extendedMaxVelocity -1 0
    bpmCfg -1 0 0 1
    lvdsStreamCfg -1 0 0 0
    compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
    measureRangeBiasAndRxChanPhase 0 1.5 0.2
    CQRxSatMonitor 0 3 5 121 0
    CQSigImgMonitor 0 127 4
    analogMonitor 0 0
    aoaFovCfg -1 -90 90 -90 90
    cfarFovCfg -1 0 0 8.92
    cfarFovCfg -1 1 -1 1.00
    calibData 0 0 0
    sensorStart

    4.  使用的matlab代码如下:

    close all;
    clear all;
    file_path = '20220706-2130.bin';
    numFramesRead = 5;%5
    number_of_Channels = 8;
    samplesPerChirp = 128;%128*2
    chirpsPerFrame = 32;%32
    fid = fopen(file_path, 'rb');
    %%%%%%%%%%%  Read the Binary Data File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    readBufferSize = numFramesRead*number_of_Channels*samplesPerChirp*chirpsPerFrame;
    CollectBuffer = fread(fid,readBufferSize, 'int16',0,'l') ;
    radar_data = reshape(CollectBuffer, samplesPerChirp, number_of_Channels, chirpsPerFrame, numFramesRead );%DPIF_RADARCUBE_FORMAT_1
    % |cmplx16ImRe_t x[numTXPatterns][numDopplerChirps][numRX][numRangeBins] |1D Range FFT output
     
    %%%%%%%%%%%  Re-Format the DATA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    radar_data_I_Channel = radar_data(2:2:samplesPerChirp, :, :, :); 
    radar_data_Q_Channel = radar_data(1:2:samplesPerChirp, :, :, :); 
    radar_data = radar_data_I_Channel + sqrt(-1)*radar_data_Q_Channel; 
    radar_data_cube = permute(radar_data,[1 3 2 4]);
    
    %%%%%%%%%%%  Plot %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %figure(1),mesh(abs(radar_data_cube(:,:,1,1)));%1DFFT data
    figure(1),mesh(real(radar_data_cube(:,:,1,1)));%ADC RAW
    %plot(imag(radar_data_cube(:,:,1,1)),'b');
    legend('Real');
    figure(2),plot(real(radar_data_cube(:,1,1,5)));
    hold on,plot(imag(radar_data_cube(:,1,1,5)));

    终端输出如下(显示crc校验有问题):

    (mmw_demo_py36) PS C:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer>  c:; cd 'c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer'; & 'C:\ProgramData\Miniconda3\envs\mmw_demo_py36\python.exe' 'c:\Users\han\.vscode\extensions\ms-python.python-2022.8.1\pythonFiles\lib\python\debugpy\launcher' '53816' '--' 'c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer\gui_main.py' 
    Python is  64  bit
    Python version:  sys.version_info(major=3, minor=6, micro=15, releaselevel='final', serial=0)
    Parser type:  SDK Out of Box Demo
    Connected
    {'startFreq': 60.0, 'numLoops': 64, 'numTx': 3, 'sensorHeight': 3, 'maxRange': 10, 'az_tilt': 0, 'elev_tilt': 0, 'idle': 567.0, 'adcStart': 7.0, 'rampEnd': 57.14, 'slope': 70.0, 'samples': 128.0, 'sampleRate': 5209.0}
    Setting box  0  invisisble
    Setting box  1  invisisble
    b'sensorStop\n'
    b'Ignored: Sensor is already stopped\n'
    b'\rDone\n'
    b'\rmmwDemo:/>flushCfg\n'
    b'Done\n'
    b'\rmmwDemo:/>dfeDataOutputMode 1\n'
    b'Done\n'
    b'\rmmwDemo:/>channelCfg 15 5 0\n'
    b'Done\n'
    b'\rmmwDemo:/>adcCfg 2 1\n'
    b'Done\n'
    b'\rmmwDemo:/>adcbufCfg -1 0 1 1 1\n'
    b'Done\n'
    b'\rmmwDemo:/>profileCfg 0 60 567 7 57.14 0 0 70 1 128 5209 0 0 30\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 0 0 0 0 0 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 1 1 0 0 0 0 0 4\n'
    b'Done\n'
    b'\rmmwDemo:/>frameCfg 0 1 4 0 1000 1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>lowPower 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>guiMonitor -1 1 0 0 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 0 2 8 4 3 0 15 1\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 1 0 4 2 3 1 15 1\n'
    b'Done\n'
    b'\rmmwDemo:/>multiObjBeamForming -1 1 0.5\n'
    b'Done\n'
    b'\rmmwDemo:/>clutterRemoval -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>calibDcRangeSig -1 0 -5 8 256\n'
    b'Done\n'
    b'\rmmwDemo:/>extendedMaxVelocity -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>bpmCfg -1 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>lvdsStreamCfg -1 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>measureRangeBiasAndRxChanPhase 0 1.5 0.2\n'
    b'Done\n'
    b'\rmmwDemo:/>CQRxSatMonitor 0 3 5 121 0\n'
    b'Done\n'
    b'\rmmwDemo:/>CQSigImgMonitor 0 127 4\n'
    b'Done\n'
    b'\rmmwDemo:/>analogMonitor 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>aoaFovCfg -1 -90 90 -90 90\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 0 0 8.92\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 1 -1 1.00\n'
    b'Done\n'
    b'\rmmwDemo:/>calibData 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>sensorStart\n'
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x101f
    
     GUI-CRC:
    0x5a0a
    Traceback (most recent call last):
      File "c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer\gui_main.py", line 604, in updateGraph
        rotPointDataX,rotPointDataY,rotPointDataZ = rotX ([pointCloud[0,i]],[pointCloud[1,i]],[pointCloud[2,i]],-1*self.profile['elev_tilt'])
    IndexError: index 1150 is out of bounds for axis 1 with size 1150
    Traceback (most recent call last):
      File "c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer\gui_main.py", line 604, in updateGraph
        rotPointDataX,rotPointDataY,rotPointDataZ = rotX ([pointCloud[0,i]],[pointCloud[1,i]],[pointCloud[2,i]],-1*self.profile['elev_tilt'])
    IndexError: index 1150 is out of bounds for axis 1 with size 1150
    Traceback (most recent call last):
      File "c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer\gui_main.py", line 604, in updateGraph
        rotPointDataX,rotPointDataY,rotPointDataZ = rotX ([pointCloud[0,i]],[pointCloud[1,i]],[pointCloud[2,i]],-1*self.profile['elev_tilt'])
    IndexError: index 1150 is out of bounds for axis 1 with size 1150
    Traceback (most recent call last):
      File "c:\Phd_study\6843AOP\iwr6843aop_rawData_output\Release_20220705\visualizer\gui_main.py", line 604, in updateGraph
        rotPointDataX,rotPointDataY,rotPointDataZ = rotX ([pointCloud[0,i]],[pointCloud[1,i]],[pointCloud[2,i]],-1*self.profile['elev_tilt'])
    IndexError: index 1150 is out of bounds for axis 1 with size 1150
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x1020
    
     GUI-CRC:
    0xca7e
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x1022
    
     GUI-CRC:
    0x69a2
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x1022
    
     GUI-CRC:
    0x604c
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x101f
    
     GUI-CRC:
    0x4c41
    parseL3Data
    samples =  128.0
    numLoops =  4.0
    numTx =  2.0
    8192h1H
    16384B1H
    objStructLength =  16386
    dataIn =  65538
    ADC RAW CRC ERROR!
     6843-CRC:
    0x101f

    matlab处理后得到的数据均为 0,可能是通信过程出了错 。

    其他未解决问题:

    依照《方法》,修改了C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc\src\rangeprochwa.c 文件;

    但是在执行C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc 里的 makefile 时,出现以下错误:

    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.

    完整执行过程如下:

    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> cd C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>  .\setenv.bat
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_DEVICE=iwr68xx
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set DOWNLOAD_FROM_CCS=yes
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_INSTALL_PATH=
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_HSIMAGE_CFG=/hs_image_creator/hsimage.cfg
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_TOOLS_INSTALL_PATH=C:/ti
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_INSTALL_PATH=C:/ti/mmwave_sdk_03_05_00_04/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set R4F_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-arm_16.9.6.LTS
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XDC_INSTALL_PATH=C:/ti/xdctools_3_50_08_24_core
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set BIOS_INSTALL_PATH=C:/ti/bios_6_73_01_01/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR14XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr12xx_xwr14xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR16XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr16xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR18XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr18xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR68XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr6xxx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-c6000_8.3.3
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C64Px_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c64Px_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c674x_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_MATHLIB_INSTALL_PATH=C:/ti/mathlib_c674x_3_1_2_1
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>call checkenv.bat
    -----------------------------------------------
    mmWave Build Environment Configured
    -----------------------------------------------
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows> cd C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make clean
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> cd C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>  .\setenv.bat
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_DEVICE=iwr68xx
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set DOWNLOAD_FROM_CCS=yes
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_INSTALL_PATH=
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_HSIMAGE_CFG=/hs_image_creator/hsimage.cfg
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_TOOLS_INSTALL_PATH=C:/ti
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_INSTALL_PATH=C:/ti/mmwave_sdk_03_05_00_04/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set R4F_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-arm_16.9.6.LTS
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XDC_INSTALL_PATH=C:/ti/xdctools_3_50_08_24_core
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set BIOS_INSTALL_PATH=C:/ti/bios_6_73_01_01/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR14XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr12xx_xwr14xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR16XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr16xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR18XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr18xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR68XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr6xxx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-c6000_8.3.3
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C64Px_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c64Px_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c674x_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_MATHLIB_INSTALL_PATH=C:/ti/mathlib_c674x_3_1_2_1
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>call checkenv.bat
    -----------------------------------------------
    mmWave Build Environment Configured
    -----------------------------------------------
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows> cd C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make clean
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> cd C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> cd C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>  .\setenv.bat
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_DEVICE=iwr68xx
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set DOWNLOAD_FROM_CCS=yes
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_INSTALL_PATH=
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SECDEV_HSIMAGE_CFG=/hs_image_creator/hsimage.cfg
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_TOOLS_INSTALL_PATH=C:/ti
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set MMWAVE_SDK_INSTALL_PATH=C:/ti/mmwave_sdk_03_05_00_04/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set R4F_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-arm_16.9.6.LTS
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XDC_INSTALL_PATH=C:/ti/xdctools_3_50_08_24_core
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set BIOS_INSTALL_PATH=C:/ti/bios_6_73_01_01/packages
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR14XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr12xx_xwr14xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR16XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr16xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR18XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr18xx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set XWR68XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_03_05_00_04/packages/../firmware/radarss/xwr6xxx_radarss_rprc.bin
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674_CODEGEN_INSTALL_PATH=C:/ti/ti-cgt-c6000_8.3.3
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C64Px_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c64Px_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_DSPLIB_INSTALL_PATH=C:/ti/dsplib_c674x_3_4_0_0
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>set C674x_MATHLIB_INSTALL_PATH=C:/ti/mathlib_c674x_3_1_2_1
    
    C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows>call checkenv.bat
    -----------------------------------------------
    mmWave Build Environment Configured
    -----------------------------------------------
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\scripts\windows> cd C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc> mingw32-make clean
    C:/ti/mmwave_sdk_03_05_00_04/packages/ti/common/mmwave_sdk.mak:50: *** Please set the environment variable MMWAVE_SDK_DEVICE..  Stop.
    (base) PS C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpu\rangeproc>

    已经按照 sdk_guide 文件进行了 setenv.bat 的执行,使用了管理者模式,并且参考了 Please set the environment variable MMWAVE_SDK_DEVICE 的执行方法。

  • 你好,

    请尝试使用gmake clean。

  • 通过查阅资料(Windows下make clean指令错误[错误码2](系统找不到指定文件)的解决方案 - Mr_Blug - 博客园 (cnblogs.com)),gmake问题已解决:

    不要使用 powershell ,用 cmd 执行gmake命令。

  • 你好,

    我目前还存在的问题有:

    1.   是否 Enhanced COM Port (COM 8) 的最高速度为 2M bps,Standard COM Port (COM 7) 的最高速度为 921600 bps;
          是否只能将 Standard COM Port (COM 7)  作为 dataCom 进行数据传输;
    2.  如前所述,输出显示 “ ADC RAW CRC ERROR! ” ;并且处理后得到的实部和虚部数据值均为0
  • 是否只能将 Standard COM Port (COM 7)  作为 dataCom 进行数据传输;

    如果你要更换数据输出的com口,需要修改代码。

    建议先降低采样点数和帧率,实现相关功能后再更改端口。

  • 感谢回复!

    在无视crc校验的情况下,已经可以进行实时采集数据了。配置文件如下(有效带宽3.2GHz)。

    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 5 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    profileCfg 0 60 567 7 57.14 0 0 70 1 128 2800 0 0 30
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 4
    frameCfg 0 1 4 0 1300 1 0
    lowPower 0 0
    guiMonitor -1 1 0 0 0 0 0
    cfarCfg -1 0 2 8 4 3 0 15 1
    cfarCfg -1 1 0 4 2 3 1 15 1
    multiObjBeamForming -1 1 0.5
    clutterRemoval -1 0
    calibDcRangeSig -1 0 -5 8 256
    extendedMaxVelocity -1 0
    bpmCfg -1 0 0 1
    lvdsStreamCfg -1 0 0 0
    compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
    measureRangeBiasAndRxChanPhase 0 1.5 0.2
    CQRxSatMonitor 0 3 5 121 0
    CQSigImgMonitor 0 127 4
    analogMonitor 0 0
    aoaFovCfg -1 -90 90 -90 90
    cfarFovCfg -1 0 0 8.92
    cfarFovCfg -1 1 -1 1.00
    calibData 0 0 0
    sensorStart