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.

Linux/DCA1000EVM: AR1 Controller Development for Ethernet interface in Linux

Part Number: DCA1000EVM
Other Parts Discussed in Thread: MMWAVE-STUDIO, AWR1642, AWR1243, AWR1243BOOST

Tool/software: Linux

Dear Texas Instruments technical team.

I have a question related to initializing the ethernet stream from the DCA1000EVM+AWR1642ODS-Boost to a Linux machine without using mmwave studio, as this software is not supported in Linux.

As stated by several previous posts, using a Windows machine, I am able to re-route the ethernet packets initialized by mmwave studio to a Python program and capture, organize and pad the packets there.

However, as I can't use a windows machine to initialize the communication and then connect a Linux machine, I would like to develop my own API to interface with the DCA1000EVM following the interaction in the following figure.

So far, I am able to send ethernet commands successfully to check the FPGA version, and several other commands involved in the stream initialization (Fig above) as several colleagues have done in previous related posts. However, I would like to know what additional type of verification do the ar1 functions perform either on the SPI configuration or the ethernet interface itself when their functions are called. For example:

1. ar1.SelectCaptureDevice("DCA1000")

2. ar1.CaptureCardConfig_EthInit

3. ar1.CaptureCardConfig_Mode

4. etc

Do you have any documentation about the C (Or C++) implementation of those ar1 functions? That would be really helpful.

Thanks for your support.

Hector Gonzalez

 

  • Hi,

    We are checking with the development team and will get back to you later this week

    thank you

    Cesar

  • Hello Hector,

    No, there is no documentation about the C implementation of these functions since we plan to support these as a black box only.

    If you are able to call these functions successfully what is the additional information needed? Could yo clarify what you mean by "additional type of verification" ?

    Regards,
    Vivek 

  • Hi Hector,

    All communication between the DCA1000 and the host PC happens only over ethernet.

    If you can sniff the traffic using wireshark and ensure that you see the same data transfers in Linux, you should be good.

    Hope this helps,

    Anand

  • Hello

    Thanks for your kind reply.

    In fact this is what I'm trying to do at the moment, to replicate the wireshark packets, but I was concerned that I could be missing some configuration via SPI.

    Do you know then why do we need the SPI connection from the DCA1000EVM to the host PC?

    Thanks for your advice.

    Hector G

  • Hello 

    Thanks for your kind response.

    As I'm trying to initialize the communication from outside mmwave-studio I was just concerned that I could be skipping any important configuration via SPI between the DCA1000EVM and the host. That is what I meant with "additional type of verification".

    Regarding your question, I have tested some of the ethernet packets and their responses but not all. I'm still in the process.

    Could you please let me know at which moment during the mmwave-studio flow we are using the SPI interface for DCA1000EVM?

    Thanks

    Hector G

  • Hi,

    The SPI interface on the DCA1000 is pass-through to the AWR1642 EVM (or other xWR BOOST EVM) and is not used to configure any setting on the DCA1000.

    The SPI interface is used to control the RF portion of the chip entirely through mmWave Studio, or through mmwavelink for AWR1243.

    Since you are using an AWR1642, all configuration of the RF can be done by an application running directly on the AWR1642. You may not normally need to use the SPI interface at all. However if you intend to use the SPI interface, then please refer to mmwavelink and the mmwavelink examples for reference to APIs. mmWave Studio eventually calls into APIs exposed by mmWaveLink, so this should be all you need.

    Best Regards,

    Anand

  • Dear Anand

    I am able to start the ethernet communication and receive the data packets in a Linux machine. However, after the initial ethernet packets exchange (FPGA version, DCA connect, etc), I still need to trigger the Frame using mmwave studio from a Windows machine in order to start the data stream. More specifically through this function:

    ar1.StartFrame()

    Which is not very practical. After my last ethernet packet, the DCA1000EVM board just keeps waiting for the Frame trigger, and this trigger does not occur via ethernet. Could you please tell me if there is another way to generate this trigger, maybe from a hardware perspective?

    Thank you very much for your time and help.

    Hector Gonzalez 

  • Hi Hector,

    You can program the AWR device to be in hardware triggered mode (this is a parameter to the Frame Config API) and then provide an external trigger pulse on the SYNC_IN pin for each frame.

    On the AWR1243BOOST, you can provide this via pin 9 of the J6 connector but make sure that R165 is installed.

    Best Regards,

    Anand