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.

IWR1642BOOST: issue of running Occupancy Detection Demo (automotive toolbox 1.2.0)

Part Number: IWR1642BOOST
Other Parts Discussed in Thread: IWR1642, AWR1642

I've the same issue using the IWR1642 for the Occupancy Detection Demo with the automotive toolbox 2.0.0. I'm using a Desktop PC with Win7 and.Matlab Runtime R2017a (ver  9.2). The same EVM with  traffic monitoring demo works fine. Here the log from od_demo.exe:

Microsoft Windows [Versione 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tutti i diritti riservati.

C:\Windows\system32>cd C:\TI\mmwave_automotive_toolbox_2_0_0\labs\lab0003_occupa
ncy_detection\gui

C:\TI\mmwave_automotive_toolbox_2_0_0\labs\lab0003_occupancy_detection\gui>od_de
mo.exe 5 4 C:\TI\mmwave_automotive_toolbox_2_0_0\labs\lab0003_occupancy_detectio
n\chirp_configs\od_demo_car_0318_3p0.cfg 1 0
Starting UI for Occupancy Detection Demo ....
Opening configuration file C:\TI\mmwave_automotive_toolbox_2_0_0\labs\lab0003_oc
cupancy_detection\chirp_configs\od_demo_car_0318_3p0.cfg ...

comportnum_str =

'COM5'


comportnum_str =

'COM4'

Sending configuration to XWR1xxx C:\TI\mmwave_automotive_toolbox_2_0_0\labs\lab0
003_occupancy_detection\chirp_configs\od_demo_car_0318_3p0.cfg ...
sensorStop
Done
flushCfg
Done
dfeDataOutputMode 1
Done
channelCfg 15 3 0
Done
adcCfg 2 1
Done
adcbufCfg -1 0 0 1 1
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
profileCfg 0 77 250 10 40 0 0 98 1 64 2200 0 0 40
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
chirpCfg 0 0 0 0 0 0 0 1
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
chirpCfg 1 1 0 0 0 0 0 2
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
chirpCfg 2 2 0 0 0 0 0 1
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
chirpCfg 3 3 0 0 0 0 0 2
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
frameCfg 0 3 128 0 160 1 0
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
lowPower 0 1
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
guiMonitor -1 0 1 1
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
calibDcRangeSig -1 0 -5 8 256
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
zoneDef 2 13 16 9 15 13 16 27 15
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
coeffMatrixRow 0 -11.173408 -6.337809 -6.211148 2.989934 3.139790
-0.569085
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
coeffMatrixRow 1 -9.212522 -1.506252 -4.059112 3.734175 -5.544185
0.726090
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
coeffMatrixRow 2 -7.327659 -2.579182 -0.288230 -3.910438 4.466487
0.256563
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
coeffMatrixRow 3 -1.874559 2.026018 2.112112 5.718043 5.471009 -
0.172050
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
meanVector 23.992751 23.689970 -3.388539 -3.691319 0.816150
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
stdVector 8.495360 8.497394 2.198640 2.432388 0.196337
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
oddemoParms 12 0.001
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
sensorStart
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.
Warning: Unexpected Warning: A timeout occurred before the Terminator was reache
d.

I tried also sending the config file directly to the IWR1642 via a UART terminal as suggested in a previous post, but  it hangs at adcbufCfg -1 0 0 1 1 like in the od_demo.exe  log . Here the UART terminal log:

mmwDemo:/>
mmwDemo:/>
mmwDemo:/>sensorStop
Done
mmwDemo:/>flushCfg
Done
mmwDemo:/>dfeDataOutputMode 1
Done
mmwDemo:/>channelCfg 15 3 0
Done
mmwDemo:/>adcCfg 2 1
Done
mmwDemo:/>adcbufCfg -1 0 0 1 1

Can you suggest me a workaround or other tests that I can try?

Thanks,

Riccardo

  • Hi Riccardo,

    I have seen this before. I think the issue is that your commands are not compatible with the version of SDK that you are using. If you are using the 2.0 automotive toolbox, you need ES2 silicon, and you need mmWave SDK 2.0.0.4. If you have ES1 silicon, you should use the 1.2 automotive toolbox with mmWave SDK 1.2.0.5.
  • Hi,
    I've tried both with an IWR1642 EVM ES1 (I check the silicon version as suggested here: e2e.ti.com/.../689469 reading the 0xFFFFE218 register from MSS memory space and I get 0x00000001) with 1.2 automotive toolbox and an IWR1642 EVM ES2 with 2.0 automotive toolbox (MSS register 0xFFFFE218 is equal to 0x00000012) but the demo always hangs at "mmwDemo:/>adcbufCfg -1 0 0 1 1" command; previous commands in confinguration files work fine ("sensorStop", "flushcfg", ...) In both cases I flashed the EVMs with the prebuilt binaries available with the corresponding automotive toolboxes.

    Is there any other tests that I could perform for identifying the issue cause?

    Thanks,
    Riccardo
  • I still think it's choking on the adcbufCfg command for some reason. You could follow section 4 of the VOD user guide to flash the EVM with the CCS debug image, then load the individual MSS/DSS executables via the debugger. Once loaded (prior to running) set a breakpoint on line 741 of C:\ti\lab0003_occupancy_detection\src\mss\cli.c. Start the cores, then the gui. Step through the function to see what is happening.

    Do you have an AWR1642 EVM? The only difference is the CAN interfaces that this demo does not use, so it should be okay, but ideally you should be using AWR EVMs for automotive demos.

    -dave
  • Hi Dave,

    We have not any AWR1642 EVMs but a couple of IWR1642 (one ES1 and one ES2)

    In CCS I step through the function as suggest in your post. The execution reaches the MmwDemo_mboxWrite() at line 765 of cli.c, it continues inside this function up to the Mailbox_write() (line 1283 in mss_main.c). I was able to step inside Mailbox_write() up to the SemaphoreP_pend() in mmwave_sdk_02_00_00_04\packages\ti\drivers\mailbox\src\mailbox.c at line 696. Here the execution hangs.

    Do you need other information like screenshoots, variable values,... that I can collect from CCS?

    Thanks,
    Riccardo
  • Hi Dave,

    I likely found the issue. At line 163 in oddemo_feature.c (ODDemo_Feature_init() function) the oddemo_parms.windowLen is uninitialized (by inspection it results equal to 1898197893). Indeed the DSS startup crashes inside this function. Probably DSS memory result corrupted by the effects of this for cycle:
    for (idx = 0; idx < ODDEMO_MAX_ZONES; idx++)
    {
    for (idx2 = 0; idx2 < oddemo_parms.windowLen; idx2++)
    {
    power_history[idx][idx2] = init_power;
    power_historydB[idx][idx2] = log_power;
    }
    }
    Using ODDEMO_MAX_FRAME_HIST (number of columns of power_history/power_historydB ) instead of oddemo_parms.windowLen at line 163, the OD_demo GUI seems working fine. Do you notice any kind of drawbacks in this fix?
    I'm using mmwave_automotive_toolbox_2_0_0.

    Thanks,
    Riccardo

  • Hi Riccardo,

    oddemo_parms.windowLen will be uninitialized if the CLI input process fails. But if that happens then it is very likely that the other demo parameters are also not initialized, so there's little point in running.  I will try running on an IWR1642 when I get into the office.

     -dave

  • Hi Riccardo,

    I reproduced your issue using two ES1 IWR1642 EVMs, using the 1.2 version of demo and SDK. When I use the exact same binary with ES1 AWR1642 EVMs, the demo works fine. I am looking into it, but I can't explain it at the moment.

    -dave
  • Hi Riccardo,

    Your fix is correct. I backed into the same solution. The root issue is that IWR1642 does not initialize memory the same as AWR1642 does. That structure hadn't been filled yet by CLI.
  • Thanks Dave,

    Riccardo