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/TMDSIDK437X: FOC motor control

Part Number: TMDSIDK437X
Other Parts Discussed in Thread: SYSBIOS, AM4379

Tool/software: Linux

Hi all,

Could someone clarify the intended types of applications for the three processor SDKs (RT-Linux, Linux and SYS/BIOS)? I have a IDK437x on which I'd like to run linux/rt-linx and simultaneously control a brushless motor with FOC however all of the hard realtime examples (including FOC motor control) seem to be exclusively in the SYS/BIOS version, and furthermore, the examples in SYS/BIOS all seem to be running on the ARM cortex instead of the PRU's. Is there some sort of limitation that precludes the PRU's from running something like FOC?

Assuming the PRU's aren't capable of running FOC, would the DSP cores in the AM57x be capable or running SYS/BIOS FOC while the cortex ran linux/rt-linux (similar to what Robert Tivy is talking about here https://e2e.ti.com/support/embedded/tirtos/f/355/t/75621

  • Hi,

    The Industrial team have been notified. They will respond here.
  • Hi Michael

    For Industrial Applications, support is gradually evolving for RT Linux. At present one 3rd party (3S) offers a EtherCAT Master.
    The AM437x supports an Industrial Ethernet (EtherCAT) as part of the single chip motor drive example.
    The Industrial Ethernets are presently only supported in TIRTOS (SysBios). The FOC in this example is implemented in the ARM.
    One ICSS is used for the high speed operations of the EtherCAT. The other ICSS is used for the EnDAT Master Interface and the ADC or Sigma Delta Decimation Interface.

    The AM5 ARM and DSP can run different operating systems. At present there are not any industrial applications available for this in the Processor SDK.

    David
  • So from out-of-box support standpoint what would you suggest is the quickest way to make FOC control in addition to some sort of websocket compatible configuration/debug server happen? Port a C/C++ websocket server to SYS/BIOS and have it run alongside the FOC example on the cortex A? Port the FOC example to run a PRU while running Linux on the main processor? Move to the AM572x? Something else?

    I had originally intended on running Linux on the Cortex A (running node.js or similar for websockets) and FOC on one of the PRU's however I'm now realizing that I had some misconceptions about how the example applications were setup.

    Just for reference, a 100kHz switching frequency is required in my application(I am using silicon carbide bridges) so I'm guessing FOC control from within Linux is a non-starter due to timing limitations.

    Thanks,
    -Mike
  • So from out-of-box support standpoint what would you suggest is the quickest way to make FOC control in addition to some sort of websocket compatible configuration/debug server happen? Port a C/C++ websocket server to SYS/BIOS and have it run alongside the FOC example on the cortex A? Port the FOC example to run a PRU while running Linux on the main processor? Move to the AM572x? Something else?

    I had originally intended on running Linux on the Cortex A (running node.js or similar for websockets) and FOC on one of the PRU's however I'm now realizing that I had some misconceptions about how the example applications were setup.

    Just for reference, a 100kHz switching frequency is required in my application(I am using silicon carbide bridges) so I'm guessing FOC control from within Linux is a non-starter due to timing limitations.

    Thanks,
    -Mike
  • Hi Mike

    For drives - we typically see low profile RTOS or bare metal implementations.

    Unfortunately we don't have an out of box implementation that meets your requirements.

    The Industrial SDK (SYSBIOSSDK-IND-SITARA: SYSBIOS Industrial Software Development Kit (SDK) for AM335x and AM437x) has the a motor control example with FOC, ADC, and EnDAT position feedback. However this SDK does not have Web server example. 

    We achieved a 47 kHz closed loop control  on a 600 MHz AM4379 while also running a EtherCAT Stack.  http://www.ti.com/lit/ug/tidu701/tidu701.pdf . Somewhat better performance could be achieved if the FOC implementation  was optimized  to make better use of the NEON accelerator.

    David