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.

AWR1642: How to configure to send some asynchronous message only to mss or dss

Part Number: AWR1642

Hi,

I am testing on GPADC and found the message "RL_RF_AE_GPADC_MEAS_DATA_SB" will send to both mss and dss. In my use case, only mss need read the GPADC data. How to configure to let the message "RL_RF_AE_GPADC_MEAS_DATA_SB" only send to mss? How about other asynchronous message? Can we configure the destination for each asynchronous message?

  • Hello Chris,
    Please refer 'rlRfSetDeviceCfg' API from rl_sensor.c using which you can set Async event direction (from BSS to MSS/DSS). This API will be applicable to change async event direction globally, it won't be based on some specific type of Async event.
    For AE_GPADC_MEAS_DATA_SB direction same API will be applicable.

    Regards,
    Jitendras
  • Jitendras,

    Thanks for your reply.

    I tested the code based on mmw demo in mmwave SDK 2.0 and I found it already set the Async event direction to MSS, but DSS still gets the event. Is it possible to be a bug in the firmware?

        /**
         * @brief Bit Definition \n
         *        b1:0 Global Async event direction \n
         *             00 - radarSS to MSS   01 - radarSS to HOST\n
         *             10 - radarSS to DSS   11 - RESERVED   \n
         *             The ASYNC_EVENT_DIR controls the direction for following ASYNC_EVENTS \n
         *             [1.] CPU_FAULT [2.] ESM_FAULT [3.] GPADC_READ \n
         *             All other ASYNC_EVENTs are sent to the subsystem which issues the API \n
         *        b3:2 Monitoring Async Event direction
         *             00 - radarSS to MSS   01 - radarSS to HOST\n
         *             10 - radarSS to DSS   11 - RESERVED   \n
         *        b31:4 Reserved
         */
        rlUInt32_t aeDirection;

  • Hi Chris,

    There is a typo in the comment of this parameter which doesn't match with ICD 'AWR_RF_DEVICE_CFG_SB' definition.

    RF_AE_DIRECTION

    Bits       Definition
    b1:0      ASYNC_EVENT_DIR
      00       BSS to MSS
      01       BSS to HOST
      10       BSS to DSS
      11       RESERVED
    The ASYNC_EVENT_DIR controls the direction for following ASYNC_EVENTS
    1. CPU_FAULT
    2. ESM_FAULT
    All other ASYNC_EVENTs are sent to the subsystem which issues the API
    Default value: 0b00
    b3:2 MONITORING_ASYNC_EVENT_DIR
    00     BSS to MSS
    01     BSS to HOST
    10     BSS to DSS
    11     RESERVED
    Default value: 0b00
    b31:b4  RESERVED
    0x0000000

    So as per this definition, an application can change the Async event direction only for CPU/ESM fault and monitoring messages.

    For GPADC-Read same core needs to expect Async event who has invoked 'rlSetGpAdcConfig' (AWR_RF_GPADC_CFG_SET_SB) API.

    Regards,

    Jitendra

  • Jitendra,

    In my test, MMS calls rlSetGpAdcConfig but DSS also gets "RL_RF_AE_GPADC_MEAS_DATA_SB" message. Would you pls double check?
  • Hello Chris,
    I have tried '<SDK installation v2.0>\packages\ti\control\mmavelink\test\' application where after calling 'rlSetGpAdcConfig' from MSS, same core is getting Async event (0x100C: AWR_AE_RF_GPADC_RESULT_DATA_SB) even though I change 'rfDevCfg.aeDirection=0xA'.

    Could you try same application running from MSS and check for Gpadc Async event?
  • Jitendra,

    Do you also run code on DSS when you do the test?

    My problem is that MSS calls 'rlSetGpAdcConfig' but both MSS and DSS get GPADC async event. DSS gets GPADC async event when MSS calls "rlSetGpAdcConfig", which is not expected. There is no problem for MSS to get the event after it issue the call. My question is how to avoid DSS to get the GPADC asysc event.

    My test code is based on mmw demo. Pls let me know if you want to check my code.
  • I didn't run code on DSS, just mmwavelink\test\ on MSS core and checked mailbox memory for async event message. Only BSS-to-MSS mailbox has AWR_AE_RF_GPADC_RESULT_DATA_SB message not BSS-to-DSS mailbox.

    Could you confirm content of these two mailbox memory just after calling 'rlSetGpAdcConfig' from MSS core? and try not to invoke any API from DSS in this experiment.


    BR,
    Jitendra
  • Jitendra,

    I checked mmw demo code and found below info. After I change the return value of MmwDemo_mssMmwaveEventCallbackFxn() to 1, DSS will not get the GPADC event.

    /**

    *  @b Description

    *  @n

    *      Application registered callback function which hooks up with the mmWave Link

    *      events generated by the BSS. Please refer to the mmWave Link documentation

    *      on more information about these parameters.

    *

    *      *NOTE*: On the XWR16xx (In cooperative mode) asynchronous events are received

    *      and passed to the application. The event is also forwarded to the remote

    *      domain. In certain cases application would like to reduce the overhead

    *      of passing the message to the remote domain in which case the event handler

    *      should return 1 which implies that the event is consumed (Hijacked) by the

    *      application. Setting the return value to 0 would imply that the event is

    *      passed to the remote peer. Applications can use this mechanism to ensure that

    *      only certain events are passed between domains.

    *

    *  @param[in]  msgId

    *      Message Identifier

    *  @param[in]  sbId

    *      Subblock identifier

    *  @param[in]  sbLen

    *      Length of the subblock

    *  @param[in]  payload

    *      Pointer to the payload buffer

    *

    *  @retval

    *      1   -  Hijack the event and do not pass to the peer domain (If applicable)

    *  @retval

    *      0   -  Pass the event to the peer domain (If applicable)

    */

    typedef int32_t (*MMWave_eventFxn)(uint16_t msgId, uint16_t sbId, uint16_t sbLen, uint8_t *payload);