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.

AMIC110: Molex ProfiNet stack porting

Part Number: AMIC110
Other Parts Discussed in Thread: TMS320F28379D

Hi,

we want to use the ICE AMIC110 board in a product to communicate from the TMS320F28379D with an S7 via ProfiNet.
At the moment we are still on the beginning. How much effort is it to get the ProfiNet Stack from Molex running on the AMIC110? Is it more work than two days fulltime?

Would it be easier to run it instead on a AM335x? Or is the same effort needed?

Do you have a tutorial to set it up? I'm still waiting for the Molex Stack. So what can I get started with?

 

Best Regards
Stefan

  • The RTOS team have been notified. They will respond here.
  • Hi Stefan,

    The current Profinet 1.0.1 (www.ti.com/.../PRU-ICSS-INDUSTRIAL-SW ) design has Molex's stack v5.3.3.0 evaluation version integrated. The upcoming Profinet 1.0.2 based on latest Processor SDK RTOS v4.2 (software-dl.ti.com/.../index_FDS.html ) will be available in few days. The Profinet user guide wiki processors.wiki.ti.com/.../PRU_ICSS_Profinet is under heavy construction to reflect the upgrade.

    It should be not more than two days full time to integrate Molex's full stack if using the same version as noted in the upcoming Profinet 1.0.2 release note. It might take additional time if you receive an incompatible version from Molex.

    To get started, I think you may first download some essential tool and SDK (CCSv7.3.0.19, Processor SDK 4.2), review the Profinet user guide wiki. Also the TI design of AMIC110 ICE may help as well - www.ti.com/.../TMDXICE110 .

    Regards,
    Garrett
  • Hi Garrett,

    thank you for your fast reply.

    So you recommend using Profinet 1.0.1, right? Which RTOS version I need for running this?
    Is it possible to run in parallel to this Profinet-Stack an web server on the AMIC110? Or is just one possible?

    Do I understand the Wiki right? Is it possible to test the whole stack without a Molex License, because it is there inside a library?

    Regards,
    Stefan
  • And if it is better to use an older SDK than PROCESSOR-SDK-RTOS-AM335X 04_02_00_09 where to get it? I just can download the latest version.
  • Stefan,

    I actually recommend you wait for few days (~1 week) to try the upcoming Profinet 1.0.2. If you can't wait, the versions of RTOS and other components from PRSDK 3.3 (software-dl.ti.com/.../index_FDS.html ) is listed here processors.wiki.ti.com/index.php

    You need Profinet full stack from Molex as well as SNMP full stack from interniches to run conformance test, see limitation here processors.wiki.ti.com/.../PRU_ICSS_Profinet
    "This example also incorporates SNMP(Simple Network Management Protocol) using Interniche SNMP stack. SNMP is required for managing devices in the network. This application supports SNMP MIB-2(System and Interfaces), LLDP-MIB, LLDP-EXT3-MIB and LLDP-PNO-MIB which are mandated for Conformance Class B. Current implementation of the LLDP-MIBs are limited in nature as the integration between PROFINET stack and SNMP interface is incomplete. The SNMP stack available in the example is a limited version, and shuts down after 1024 SNMP requests. "

    The Profinet implementation has NDK/NIMU_ICSS loaded (var Nimu_Icss= xdc.loadPackage('ti.transport.ndk.nimu_icss') which should make a web server integration easier.

    Regards,
    Garrett
  • Hi Garret,

    sorry, that it took me so a long time to reply.
    Now we have the example of profinet running. Thanks for your support.

    I want to get the Webserver running now. But I can't find the IP of the AMIC-Board. In the Profi-Net documentation is written, that the sandard IP is 0.0.0.0. But this I can't ping from a PC. Do you know how to change it? Is there a special command, which I can run on Amic side?

    Should I open a new request for this topic?

    Regard,
    Stefan
  • Hi Stefan,

    No problem. I was actually traveling last week so might not even see your update.

    Have you tried to ping the address defined in amic11x_app_arm.cfg?

    Ip.address = "192.168.0.21";
    Ip.gatewayIpAddr = "192.168.0.1";
    Ip.mask = "255.255.255.0";

    You don't have to open a new request just for the IP address.

    Regards,
    Garrett
  • Hi Garrett,
    thanks for your fast reply!

    Yes I did, but without any success. But this should work?
  • Stefan,

    As you said, the standard IP address of Profinet is 0.0.0.0. And as noted in the wiki, processors.wiki.ti.com/.../PRU_ICSS_Profinet
    "During start-up, the I/O Device is assigned an IP Address of 0.0.0.0 . The PROFINET master will have to configure the desired IP Address and device name to the I/O device before an I/O connection can be established with the device. Once the application is up, PROFINET I/O IRT device will start communicating with a PROFINET PLC, or a PROFINET IO Tester or SPIRTA. "
    The IP address in .cfg file doesn't really take effect. (I apparently replied too fast : -(( )

    I use TIA Portal /S7-1511 PLC to configure IP address without any problem.

    You might be able to call the APIs to set IP address as well.
    APP_WORD UserChangeIp(APP_DWORD dwIp, APP_DWORD dwSubMask, APP_DWORD dwGateway, APP_WORD wBlockQualifier)
    APP_WORD UpdateIP(APP_DWORD dwIp, APP_DWORD dwSubMask)

    Regards,
    Garrett
  • This is (almost) exactly what I do now!

    I start a task, which is delayed first for 20s. After this time I call the following commands to change the ip.

       

    //Setup manual IP address bzero(&NA, sizeof(NA)); NA.IPAddr = inet_addr("192.168.1.10"); NA.IPMask = inet_addr("255.255.255.0"); strcpy(NA.Domain, "demo.net"); NA.NetType = 0; // get the current static IP entry CfgGetEntry(0, CFGTAG_IPNET, 1, 1, &hCfgIpAddr); // remove the current static IP entry CfgRemoveEntry(0, hCfgIpAddr); // add a new static IP entry CfgAddEntry(0, CFGTAG_IPNET, 1, 0, sizeof(CI_IPNET), (UINT8 *)&NA, 0); CfgGetImmediate( 0, CFGTAG_IPNET, 1, 1, sizeof(NA), (UINT8 *)&NA) == sizeof(NA); NtIPN2Str(NA.IPAddr, IPString); UART_printf("\nIP changed to " ); UART_printf(IPString);

    After this time the amic is available at the seted IP!

    Thank you!

    I think this solved my Problem!

  • I got confused by the code insert tool :)

    This is how I wanted to end the post:
    "After this time the amic is available at the seted IP!
    Thank you!
    I think this solved my Problem!"
  • Hi Stefan,

    Thank you for the update. Glad to know the problem is resolved!

    Regards, Garrett