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.

IWR6843: Data over CANFD

Part Number: IWR6843
Other Parts Discussed in Thread: AWR1843, AWR6843AOP

Hi,

I have flashed LRPD binary in IWR6843 and trying to get the data on CANFD. I have USB to CANFD device. 

I am unable to get the data on CANFD. Is there a user guide which I can refer to?

Thanks,
Manoj

  • HI Manoj,

    There is a user guide for LRPD here. 

    https://dev.ti.com/tirex/explore/node?a=1AslXXD__1.30.01.03&node=A__AFSylyb3s.Y0XGHAWn4NBg__radar_toolbox__1AslXXD__1.30.01.03&r=1AslXXD__1.00.00.26&r=1AslXXD__1.00.01.07

    Does the data come off the device as USB? Can you confirm that the demo is running?

    Best,

    Nate

  • Hi Nathan,

    Data is coming out on USB. I can see that data on industrial visualizer as well as on serial terminal. That means demo is running. But I am not getting data over canfd.

    Thanks,

    Manoj

  • Hi Manoj,

    If the demo is working up to the USB, then it sounds to me like the problem is your USB to CANFD converter. Is this a TI part? If not, we will not be able to help you here.

    Best,

    Nate

  • Hi Nathan,

    I am using PCAN. PCAN is suggested in one of the documents when I was working on automative radar AWR1843.

    Thanks,
    Manoj

  • Hi Manoj,

    If the data is working up to the point of the USB then I'm not sure what we can do. I don't know what PCAN is, but it doesn't appear to be a TI device, so we cannot help you with it here. Perhaps you can reach out to the people who make the PCAN device?

    Best,

    Nate

  • Hi Nathan,

    I have downloaded the "mmwave_automotive_toolbox_3_6_0__all". In this folder, "mmwave_automotive_toolbox_3_6_0__all->mmwave_automotive_toolbox_3_6_0->labs\lab0005_object_data_over_can->docs" this path contains a document named "ObjectDataOverCAN_GettingStartedGuide". In this document under the "Required Hardware" it is mentioned that use PCAN-USBFD to receive the data on PC. It is a TI document. Please find the attached document.

    ObjectDataOverCAN_GettingStartedGuide.pdf

    Thanks,
    Manoj

  • Hey Manoj,

    LRPD does not come with CANFD and support for it must be added in by the user. I would recommend following the CAN integration user guide in the Radar Toolbox, specifically the section "CAN Integration for SDK 3 Devices" - though the example project is also good to look through as well. Note that all the code necessary for using the CAN driver should be included in the mss portion of your project and take careful note of the additions and changes given in the user guide. The application note the user guide is based on is outdated, so the user guide attempts to rectify any issues caused by changes in the SDK code over time.

    Please let me know if you have any other issues or questions regarding the CANFD driver.

    Regards,

    Kristien

    dev.ti.com/.../node

  • Hi Kristien,

    I have referred the CAN integration user guide as mentioned in section "CAN Integration for SDK 3 Devices". I have integrated those sections in LRPD for IWR6843 radar. Those CAN functions are only declared, it is not mentioned where to call these functions and how to use it. So just need some guidance on it that where to call those function for working CAN.

    Thanks,
    Manoj

  • Hey Manoj,

    At a bare minimum, you only need to call the Can_Initialize function at some point before you want to use the CAN transceiver for receiving or transmitting. In the case of the example provided in the guide, the CAN driver is initialized during the system initialization task (MmwDemo_initTask) which includes initializations for other components like UART, GPIO, and data processing.

    Keep in mind that most of the parameters, such as data format, filtering, message RAM configuration, etc., used to initialize CAN are set in the MCANAppInitParams function. Bit timing and the CAN mailbox objects for receiving and transmitting are handled by the Can_Initialize function directly.

    For transmitting data, the Can_Transmit_Schedule function should be used and takes in a message ID, the data to be sent, and the length of the data. The function will handle breaking up data into multiple messages if the data is longer than the given message format - i.e., for FD, 64 bytes max per message and for classical, 8 bytes max per message. In the case of the example, you can see how it is used in the MmwDemo_transmitProcessedOutput function to send out TLV data.

    For receiving data, the default parameters used to initialize the CAN in the code provided by the user guide should cause the MCANAppCallback function to be called upon receiving data. The CANFD_getData function will be called and data will be read into rxData which is left up to the user for how they would like to use this data elsewhere.

    If you want a quick and simple way of knowing where each CAN function is utilized in the demo, you can import a copy of the AWR6843AOP Out-of-Box Demo and diff the main.c file from that with the main.c file from the CAN integration example, since the CAN example was developed based off of the OOB demo for AWR6843AOP.

    I hope I was able to help, but let me know if you have any other questions!

    Regards,

    Kristien

  • Hi Kristien,

    Thank you so much for detailed information. Definitely this helped me a lot in integration. But the only question I have is here you mentioned "MmwDemo_transmitProcessedOutput" function which is commented in LRPD project. Instead, it has another function named "TrackerDemo_transmitProcessedOutput". Both functions are little different. Is there any guide for this or if you can help me with this.

    Thanks,
    Manoj

  • Hey Manoj,

    Both functions do the same thing in the end which is take the processed data and send it over UART as TLV data. The difference is what data can be sent by either function. The TrackerDemo_transmitProcessedOutput function only sends out detected points, side info, and the target tracker list. The MmwDemo_transmitProcessedOutput function can send out detected points, side info, range profile, noise profile, range azimuth heat map, range doppler heat map, and or stats info depending on what parameters are set in the guiMonitor CLI command of the .cfg file. There is no guide for specifically these functions. Your best bet is to look over the user guide for LRPD and the comments in code to help understand what's going on.

    Regards,

    Kristien