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.

AWR1843AOPEVM: Maximum Message Periodicity for CAN Data Transfer in MRR on AWR1843AOPEVM

Part Number: AWR1843AOPEVM

Tool/software:

Hello,

I am working with the AWR1843AOPEVM and using the Medium Range Radar (MRR) application to transmit radar data over CAN. The MRR application provides two options for CAN data transfer:

  1. Classic CAN format

  2. CAN FD format

I would like to understand the maximum periodicity that can be configured between transmitted messages without affecting the radar's performance for the both options.

Thanks

Mitesh 

  • Hello Mitesh,

    Why would the radar performance be dependent on what periodicity of CAN message you are trying to transmit at?
    You need to configure the CAN based on the rate at which your point cloud is generated. Not the other way around.

    Regards,
    Saswat Kumar

  • Hello Saswat,

    I hope you're doing well.

    In the mss_main.c file, within the Can_Transmit_Schedule function, the packet data is being sent over CAN. I would like to implement a periodicity of 1 ms between each CAN message transmission.

    Could you kindly guide me on how this can be achieved? Additionally, I would appreciate it if you could let me know where exactly the code should be modified to implement this timing.

    Thank you for your support.

    Best Regards,
    Mitesh

  • Hello Mitesh,

    In the application, we send the TLVS as one CAN msg, do you want 1ms between each TLV?
    You can just add a task_sleep where you need to suppress the task.

    Regards,
    Saswat Kumar

  • Hello saswat,

    do you want 1ms between each TLV?


    "No.

    I am transmitting the data on a classic CAN frame at 500kbps, and I require a 1ms periodicity between each CAN message. I want to ensure that the periodicity of 1 millisecond is maintained between multiple CAN messages within a single call to Can_Transmit_Schedule().

    Thanks
    Mitesh

  • Hello Mitesh,

    That is not so straightforward.
    You have to measure how frequently you are getting the messages right now, after that put the task to sleep when you dont want to get messages.
    You can create it as a task also and call it every 1 ms, but that will depend on how you program the task and its priority.

    Regards,
    Saswat Kumar

  • Hello Saswat,

    You have to measure how frequently you are getting the messages right now, after that put the task to sleep when you dont want to get messages.

    I added Task_sleep(1) inside the while(len > 8U) loop that handles the transmission of CAN Classic frames. However, after this modification, I observed that the radar stopped sending data over the CAN Classic frames.

    Interestingly, the same Task_sleep(1) is already used in the block handling CAN FD (CANFD_MCANFrameType_FD), and that works without any issue.

    Why does introducing a Task_sleep(1) delay in the Classic CAN transmission path cause the data to stop, while the same delay in the CAN FD path works perfectly fine without affecting the transmission?



  • Hello Mitesh,

    That will need to be debugged on your end by understanding whether when you add the sleep it is filling buffer or not, then is it blocking another path or not. But again like I mentioned the best way to actually time the 1ms, is to actually program the task to be called every 1 ms.

    Regards,
    Saswat Kumar

  • Hello Saswat Kumar,

    Thank you for your suggestions.

    While I am familiar with general RTOS concepts, I am new to working with TI-RTOS.

    Could you please share any documents, demos, or examples that explain how to create a task and schedule it with a 1ms period using TI-RTOS APIs?

    Having a reference would really help me understand the correct approach for task creation and timing configuration on this specific platform.

    Thank you for your support.

    Best regards,
    Mitesh

  • Hello Mitesh,

    The demo you are using itself has a task creation in the example. You can refer the same structure and write it.
    You can find out about ti rtos from: TI-RTOS-MCU Operating system (OS) | TI.com

    Regards,
    Saswat Kumar