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.

AWRL6432: CCS debug failed when running sensor start

Part Number: AWRL6432
Other Parts Discussed in Thread: IWRL6432BOOST, SYSCONFIG

Dear TI team:

MMWAVE_L_SDK_05_02_00_02 mmwave demo motion_and_presence_detection Indicates the following information when running in CCS debug mode:

[Cortex_M4_0] Calibration Validated for restore

ASSERT: 47.248701s:.. /motion_detect.c:mmwDemo_factoryCal:4000: 0 failed !!!

According to debug info, retVal = rl_fecssRfPwrOnOff(M_DFP_DEVICE_INDEX_0, &gMmwMssMCB.channelCfg); also failed. 

However, flash through Low_power_visualizer_5.2.0 is running normally, is there any solution to this problem?

 

Thank you for your help.

  • Hi,

    Could you provide following details? 

    - Did you first flash the empty image on the device prior to connecting to CCS?

    - Did you load the motion_and_presence_detection_demo.debug.out found in the SDK or did you compile the project on your end and load that?

    - Exactly at what point in the code do you see the error? Can you step through?

    - What image did you flash?


    Best Regards,

    Kevin 

  • Hi Kevin ,

    Sorry for late reply.

    - Did you first flash the empty image on the device prior to connecting to CCS?

    >> What does the empty image mean?motion_and_presence_detection_demo?  We just followed the 8132.xWRL6432_APL_CCS_debug_guide.pdf. 

    - Did you load the motion_and_presence_detection_demo.debug.out found in the SDK or did you compile the project on your end and load that?

    >>Compile the project on my end and load. 

    - Exactly at what point in the code do you see the error? Can you step through?

    >> According to the debug step, it first failed at rl_fecssRfPwrOnOff, but because of the logic of the demo code, it still runs down after the failure, until assert out in mmwDemo_factoryCal -> MMWave_factoryCalibConfig

    ======================================================================================

        retVal = rl_fecssRfPwrOnOff(M_DFP_DEVICE_INDEX_0, &gMmwMssMCB.channelCfg);
        if(retVal != M_DFP_RET_CODE_OK)
        {
            CLI_write ("Error: FECSS RF Power ON/OFF failed\r\n");
            retVal = SystemP_FAILURE;
        }

        /* Perform factory Calibrations. */
        retVal = mmwDemo_factoryCal();
        if(retVal != SystemP_SUCCESS)
        {
            CLI_write ("Error: mmWave factory calibration failed\r\n");
            retVal = SystemP_FAILURE;
        }

    ======================================================================================

    - What image did you flash?

    Original motion_and_presence_detection_demo compiled on my end without any modification, also debuged with this version.

    Best regards,

    Lu

  • Hey Jingyi,

    I'll be taking over for Kevin here. The empty image he was referencing is the empty.release.appimage that is used for debugging and can be found under <MMWAVE_SDK5_INSTALL_DIR>\examples\empty\xwrL64xx-evm\m4fss0-0_freertos\ti-arm-clang. I've gone ahead and set up my own project how you've described and have found that I only encounter the error you mentioned when flashing the compiled appimage rather than the empty appimage. Try loading the program after flashing the empty appimage and let me know if you have any other issues.

    Regards,

    Kristien

  • Try loading the program after flashing the empty appimage and let me know if you have any other issues

    Hi Kirstien

    We have tried that and still getting error as shown below.




    we are using IWRL6432BOOST EVM. Do you have any other suggestions

    Regards,

    Sreekesh Giri

  • Hey Sreekesh,

    It appears you are running the mmWave demo. I'm not sure if you intended on running that demo as the original question was for the Motion and Presence Detection Demo. I would recommend using the latest mmWave L-SDK release, 5.3.0.2, when you do run the Motion and Presence Detection Demo. Let me know if that error still occurs after running it in the CCS debugger.

    Regards,

    Kristien

  • Hi Kristien

    mmWave L-SDK release, 5.3.0.2, when you do run the Motion and Presence Detection Demo. Let me know if that error still occurs after running it in the CCS debugger

    Tried this still the same error is coming.

    One additional doubt when setting config file  Done output is getting in UART terminal till the baudrate part. When typing the baudrate config as "baudRate 1250000" the UART terminal is being stuck and we can't type anything. And unable to type "sensorStart 0 0 0 0". My UART port ttyACM0 and it's maximum baudrate is 115200. Do you have any suggestion regarding this.

    Regards,

    Sreekesh Giri.

  • Hey Sreekesh,

    First of all, what .cfg profile are you sending over to the device and how have you been sending over the .cfg? Are you using the CCS serial terminal? If you are using a custom .cfg, you might want to quickly test out one of the existing profiles for the demos - i.e., parking_5m.cfg for mmWave Demo and MotionDetect.cfg or any of the motion/presence/tracking.cfg's for Motion and Presence Detection Demo. If you are using the CCS serial terminal, you can manually type in "1250000" to set the baud rate. If you are still having issues, then you can step through the mmwDemo_DpcExecute function in whichever demo you are using to see if something in the configuration is causing issues. 

    In case all of the previous steps do not work, you can try to re-flash the ATE calibration data onto the board. Its unlikely that the calibration data is wrong, and it usually ends up being a configuration issue which is why I would recommend following the previously mentioned steps. To re-flash the ATE calibration data, you can follow the instructions for the first question written in this FAQ: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1182245/faq-xwrlx432-common-questions-and-resources-for-xwrlx432. There is also some other information on that post that may be useful if you run into other issues. 

    For the UART terminal freezing up after typing the baudRate CLI command, you will have to reopen the UART port with the baud rate you have set it to after sending the command - i.e., send all the chirp configuration commands at 115200 then bump up to 1250000 after sending the baudRate command. 

    Let me know if there are any other questions.

    Regards,

    Kristien

  • Hi Kristien,

    We have tried as you specified like, sent all the config params through the UART with 115200 baudrate and sent the 'baudRate 1250000' CLI command then switched the UART terminal baudrate to 1250000 and given  'sensorStart 0 0 0 0' CLI command as shown below. After that the UART terminal is like shown below. It is been printing these special symbol or characters continuously as shown below. When we are paused the session, the program flow is inside a function UART_readPolling() and then go to UART_RxRdy() and looping around the UART_RxRdy() function. Have you encountered anything like this?


    And one more doubt. In the example.syscfg there is an option for baudrate. Is this depended on our program????



    Regards,

    Sreekesh Giri

  • Hey Sreekesh,

    For the UART output, it is outputting the TLV data which contains information such as detected points, heatmap data, etc.. You can read more about the UART output and TLVs in the following Radar Toolbox guide: 

    https://dev.ti.com/tirex/explore/node?node=A__ADnbI7zK9bSRgZqeAxprvQ__radar_toolbox__1AslXXD__LATEST&placeholder=true

    If you would like to parse this TLV data, you will either have to add your code to the demo code or you can run the Industrial Visualizer in the Radar Toolbox - found under <RADAR_TOOLBOX>/tools/visualizers/Industrial_Visualizer - and check the "Save UART" box. For the Industrial Visualizer, it will output .bin files every 100 frames to the binData folder in the same directory as the visualizer. You can then use the parseStandardFrame function from parseFrame.py to parse the .bin file. I've included a Python script I threw together that will pull in a file and decode all of its frames - though it does nothing with the decoded TLV data.

    It is normal that the program is polling the UART while sending TLV data so there's nothing going wrong on that part. If the program is getting stuck in a DebugP_assert statement or Hwi interrupt after pausing the program, this is likely due to the power management task that checks whether or not the device can enter low power mode amongst other conditions. This can be fixed by setting the lowPowerCfg to 2 when sending over the CLI commands which will emulate that check but prevent any assertion issues.

    For the SysConfig, the Baudrate parameter is used to set the initial baud rate for the device. The baudRate CLI command will overwrite the device's baud rate regardless of the initial setting.

    At this point, I believe it would be better to open up a new thread if you continue to have any more issues with the output as this discussion is starting to deviate from the original question. This helps other users find information relevant to issues such as yours in the future. You can also search the rest of the E2E forums to see if someone else has already asked a question similar to yours. If you do open up a new thread, I would recommend leaving a link here in case someone does stumble into this thread and follows along with everything discussed so far.

    Regards,

    Kristien

    # Local File Imports
    from parseFrame import *
    
    # add path to TLV binary file
    filepath = ""
    
    def parseBin(filepath):
        # output list of decoded TLV data
        tlvDecoded = []
        with open(filepath, "rb") as f:
            # read entire binary file
            binaryFileData = bytearray(b'')
            binaryFileData = f.read()
            # separate out individual frames using magic word; first element is always b'' so skip it
            frames = binaryFileData.split(UART_MAGIC_WORD)[1:]
            for frameData in frames:
                tlvDecoded.append(parseStandardFrame(UART_MAGIC_WORD + frameData)) # magic word needs to be added back for parseStandardFrame to work
        return tlvDecoded
    
    def main():
        print("Parsing binary data . . . ")
        # parse through TLV binary file
        tlvDecoded = parseBin(filepath)
        # use decoded TLV data for application
    
    if __name__ == "__main__":
        main()

  • Hey Kristien,

    Thank you for the reply. I will try this out and if it not solved I will start a new thread and will leave the link here.

    Best regards,
    Sreekesh Giri

  • Hey Sreekesh,

    Sounds good!

    Regards,

    Kristien