硬件环境:LP-AM243x 开发板
施耐德 Modicon M241
软件环境:
INDUSTRIAL-COMMUNICATIONS-SDK-AM243X
MCU-PLUS-SDK-AM243X — MCU+ SDK for AM243x
调试过程:
首先,让AM243x能够运行 Null Boot,
Starting NULL Bootloader ...
DMSC Firmware Version 9.1.6--v09.01.06 (Kool Koala) DMSC Firmware revision 0x9 DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 800000000 Hz !!! INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 800000000 Hz !!! INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!! INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 800000000 Hz !!! INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 800000000 Hz !!! INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
然后 Load “Ethernetip_adapter_discrete_io_device_rgmii_demo_am243x_-lp_r5fss0-0_freertos_ti-arm-clang”
接着,在Modicon的Machine Expert软件里,导入am243x-lp_tiEtherNetIP_freeRTOS.eds
并且映射输入输出 IW7 & QW2。
然后分别执行,TI 的 demo中,将 输出数据 返回给了 输入,
修改一下EI_APP_DOG_run,把收到的输出的第一个字节,写到LED引脚上。
则,开发板的 LED12-15会对应的点亮。
进阶:双核R5F同时运行
LP-AM243x上的MCU是AM2434,拥有4个R5F的800Mhz内核,可以轻松应对各类复杂的控制应用,于是,在Ethernet/IP运行于 r5f0_0 的基础上,同步运行一个 MAIN_DOMAIN 的 UART1 串口例程,将USART的速率,通过syscfg配置运行在12Mbps,并且打开 DIR_EN做RS-485的方向切换功能。
于是得到了一个非常完美的多核应用框架,两套CPU分别执行自己的FreeRTOS,互不干扰,自己用自己的内存段。通过IPC进行交互。12Mbps的uart和 Ethernet/IP 实时协议栈 同时运行,互不干扰。特别适用于对实时性要求很高的电机马达控制,Profibus总线通信等应用。
最终的效果,双核互不干涉,通信稳定。