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.

基于AM335X平台的Ethercat实现

Other Parts Discussed in Thread: SYSBIOS, AM3359, SYSCONFIG

附件是335X平台ETHERCAT的介绍和主从实现的DEMO,欢迎大家讨论.

基于AM335X平台的Ethercat实现.pdf
  • 写的非常详细,有空的时候试验一下

  • 我有一張am335x ICE Demo Board

    關於PRU Firmware能燒錄在SD Card裡面嗎?

    AM335x SYSBIOS Industrial SDK 01.01.00.06 User Guide.pdf 第11頁

    by default , PRU Firmware from SPI Flash .... 

    可以改成從SD Card嗎?

  • 這張帖真是精華中的精華,

    因為我只有實踐EtharCAT slave從站的產品,

    但是這張帖已經說明了怎麼去做EtherCAT master真是寫得好。

  • 要是出个powerlink的就好了

  • 您好,我现在在用ICE3359这块开发板,EtherCAT从站的功能Demo和Full都可以用了。但是我现在想在Full模式下使用AM3359自带的ADC功能,想请教下添加该功能模块的方法?

    假如在Full的工程里面直接按照starterware里的ADC例程代码去配置,并加入到工程里(如在Void common_main()函数中的BIOS_start()前配置并使能ADC功能),这样可以吗?

    修改好的工程还按照User guide说明的app方式加载,还是需要用其他方法把程序写到板子上?

  • Wei Li12 说:

    您好,我现在在用ICE3359这块开发板,EtherCAT从站的功能Demo和Full都可以用了。但是我现在想在Full模式下使用AM3359自带的ADC功能,想请教下添加该功能模块的方法?

    假如在Full的工程里面直接按照starterware里的ADC例程代码去配置,并加入到工程里(如在Void common_main()函数中的BIOS_start()前配置并使能ADC功能),这样可以吗?

    修改好的工程还按照User guide说明的app方式加载,还是需要用其他方法把程序写到板子上?

    您的大体思路是对的,如果需要使用adc,可以把starterware的例程集成到sysbios的task中。

  • 1.請問 AM335X ICE板 的Ethercat slave 是否支持SDO傳輸

    2.IGH EtherCAT Master 是否有SDO傳輸控制例子??

  • 你好,是不是EtherCAT从站都要在spi flash 中烧写EtherCAT从站固件?谢谢!!!!

  • 照著圖文可以編譯成功

    但是放入AM335X 執行都會有錯誤,有人知道為什麼嗎??

    ethercat start
    Starting EtherCAT master 1.5.1 FATAL: Module ec_master not found.
    failed


    若不透過/etc/init.d/ethercat script

    直接insmod ec_master.ko 與 ec_generic.ko

    執行ethercat pdos 又會出現下列錯誤

    Failed to obtain number of masters: Failed to open master device /dev/EtherCAT0: No such file or directory




  • jiew 说:

    照著圖文可以編譯成功

    但是放入AM335X 執行都會有錯誤,有人知道為什麼嗎??

    ethercat start
    Starting EtherCAT master 1.5.1 FATAL: Module ec_master not found.
    failed


    若不透過/etc/init.d/ethercat script

    直接insmod ec_master.ko 與 ec_generic.ko

    執行ethercat pdos 又會出現下列錯誤

    Failed to obtain number of masters: Failed to open master device /dev/EtherCAT0: No such file or directory


    请问您这个是EtherCAT主还是从,是跑在Linux上么?

  • 我是EtherCAT 主站,跑在AM335X 的Linux上 (sdk6.0)

    /etc/init.d/ethercat start 執行都會錯誤  

    查詢/etc/init.d/ethercat script  主要都是 modprobe 會錯誤!! 

  • 請問是否有文章中提到的範例 ethercat_test.c 可以提供??

    BusCouplerPos,與TI_AM3359ICE 是代表什麼意思???

  • 已經可以將IgH EtherCAT Master 移植至自行開發的AM335X Board執行

    並可控制其他EtherCAT Slave 裝置

    謝謝幫忙!!

  • jiew 于 2015-7-6 18:23 发表了以下帖子 :

    照著圖文可以編譯成功

    但是放入AM335X 執行都會有錯誤,有人知道為什麼嗎??

    ethercat start
    Starting EtherCAT master 1.5.1 FATAL: Module ec_master not found.
    failed

    我也遇到了这个问题,请问您是怎么解决的呢?

  • 怎么解决的啊。。。。

    我也有这问题

  • 怎么解决的?????

  • 请问你们问题解决了吗?我也遇到这个问题!!!
  • ethercat start Starting EtherCAT master 1.5.1 FATAL: Module ec_master not found. failed 您好,我在加载模块时遇到了这个问题,请问您知道是什么原因吗?
  • ethercat start Starting EtherCAT master 1.5.1 FATAL: Module ec_master not found. failed 您好,我根据你的教程,但是加载时候出现这个问题。我用的是1.5.2版本主站,内核3.8。
  • hi,你好,请问BusCouplerPos, TI_AM3359ICE这两个参数怎么确定的,我现在想用驱动器作为从站,但是一直进入不了OP,这个从站的配置是集成到了主站当中吗?还是需要XML文件进行配置?请大神指教

  • BusCouplerPos是指该总线耦合器在链路上的地址,是设置寻址时所用,如果单台的直接设置0,0就行,详细的说明可以参照ethercat-1.5.2.pdf的3.1节。TI_AM3359ICE是ICE板本身的参数,即它的vendor id与product_code,xml里边会有说明。

  • 你好,其实那两个参数的意思我是明白怎么回事的,但是当将它们改成我的驱动器参数的时候,只能到“AL state:0x4”,而没有进入OP,我想应该是XML文件的问题,要怎么样我的XML文件才可以起作用呢?另外,我想问您是不是只要使用ethercat pdos命令参数之后,填充那几个结构体,就不要再用XML文件就可以自动生成网络描述文件了?那为啥我使用这个命令没有相应的信息输出?

  • ethercat pdos之后没有输出,我猜想会不是你的模块加载过程出现了问题,就是模块没有加载正确。因为如果这一步没有出来,主站是无法知道你邮箱跟过程数据通道的具体配置情况的。那么你也就没办法确定你过程数据对象进而进行通信了啊。我用的是ice,是可以通过pdos出来的情况写的测试源文件的,没什么大问题。你可以尝试用twincat跑一下,看看情况是否正常,然后它的配置是如何?有条件的话,也可以通过抓包看看数据包过程数据是否刷出去有被处理到。

  • 谢谢回复,我应该说的具体些,我的所有设备用twincat都是可以的,我现在这里有个倍福的设备可以进入状态机,但是别的不行,比如三洋,我想可能例程中的很多参数都是针对倍福的吧。而且倍福设备用ethercat pdos输出没有问题,但是别的驱动器就不行,比如三洋的只有物理地址这一栏,而TxPDO 、PDO没有,再次说明一下,用twincat设备都是ok的,因为twincat会扫描以及配置相应的XML文件,但是例程中好像没有这个步骤

  • 我前边用的是ICE做测试,也接过三洋,pdos是可以出来一样的sm通道配置情况,不过三洋具体的我还没跑过,所以状态机切换是否有问题还得试试。它的例程是针对倍福写的,但是ethercat pdos跟例程是不会有关系的,只是看你链路扫描的情况。

  • 可以查看下http://www.ti.com/lit/ug/tiduaf8/tiduaf8.pdf 中的 Appendix B Acontis EC-Engineer Tool for Creating an .ENI File,不同的主站是要做配置的。

  • 你好,你的问题搞定了没?你用倍福的驱动器是可以的吗?控制过电机还是,你的主站用的是pc还是嵌入式平台呢?

  • 遇到同样的问题,请问如何解决的呢

  • 请问当初是怎么解决的呢,求指导

  • 虚拟机运行时出现下面错误

    Starting EtherCAT master 1.5.2 FATAL: Module ec_master not found.
    failed

    开发板出现下面错误

    [root@EVB335X /]# /etc/init.d/ethercat start 
    Starting EtherCAT master 1.5.2 [ 295.269775] EtherCAT: Master driver 1.5.2 2eff7c993a63
    [ 295.275268] EtherCAT ERROR: MAC address may not be empty.kernel taint MAC add 
    modprobe: can't load module ec_master (ethercat/master/ec_master.ko): Invalid argument
    failed

    请问该如何解决啊,完全没有头绪

  •  EtherCAT ERROR: MAC address may not be empty.kernel taint MAC 


    配置文件中,修改MAC地址

  • jiew 说:

    已經可以將IgH EtherCAT Master 移植至自行開發的AM335X Board執行

    並可控制其他EtherCAT Slave 裝置

    謝謝幫忙!!

    您好:请问您之前在使用 IHG 做ethercat主站时是解决 “module mc_master not found ”这个错误的? 现在不知道具体是哪里出了问题。谢谢!

  • make install 会在当前目目生成 output 文件夹,里面有编译生成的各种用户空间的文件。可以把 此目目下的各文件目目复制到 AM335X 的文件系统根目目下,同时内核模块 ethercat- 1.5.1/devices/ec_generic.ko 和 ethercat-1.5.1/master/ec_master.ko 也需摘手动复制到 AM335X 文件系统任意目目中。

    你先手动insmod ec_master.ko试试

  • 对于这种错误

    [root@EVB335X /]# /etc/init.d/ethercat start 
    Starting EtherCAT master 1.5.2 [ 295.269775] EtherCAT: Master driver 1.5.2 2eff7c993a63
    [ 295.275268] EtherCAT ERROR: MAC address may not be empty.kernel taint MAC add 
    modprobe: can't load module ec_master (ethercat/master/ec_master.ko): Invalid argument
    failed

    是由于modprobe找不到

    可以把ec_genreic.ko和ec_master.ko复制到/lib/modules/yourkernelname/目录下,然后执行depmod

    就可以modprobe到了

    执行/etc/init.d/ethercat start 有的会报参数错误,需要修改 /etc/sysconfig/ethercat里面的MAC地址和网卡类型

  • Hi Denny,有一个关于AM335x从站和IGH主站的问题想请教下你,谢谢。

    从站是用AM3359 ICE BOARD的板子+m335x_sysbios_ind_sdk_1.1.0.8里的full 从站实现的。用twincat主站测试过,没有问题。

    但用Igh1.52主站时,能连接上从站,但是在从站的状态切换时候出现问题,本来在safeop下,Watchdog Process Data是应该使能的,但是用igh主站时,watchdog Process Data 没有使能,Watchdog Status Process data寄存器为0;也不知道是哪里出了问题。

    想请教你这可能是哪出了问题。非常感谢。

  • 您好,能否分享下您的开发思路和整体过程,和资料,我现在刚走入这个领域,特别想向您学习和咨询

  • 你好,

    我没有遇到过这种问题,建议抓包对比分析一下IGH主站和其他主站的数据包.

  • 你好,我现在需要移植IgH EtherCAT Master ,请问下你是怎么进行移植的,在Linux下还是Windows下呢,还需要哪些软件或工具吗,谢谢!

  • 文档里就有,LINUX下的

  • bin lu 说:

    Hi Denny,有一个关于AM335x从站和IGH主站的问题想请教下你,谢谢。

    从站是用AM3359 ICE BOARD的板子+m335x_sysbios_ind_sdk_1.1.0.8里的full 从站实现的。用twincat主站测试过,没有问题。

    但用Igh1.52主站时,能连接上从站,但是在从站的状态切换时候出现问题,本来在safeop下,Watchdog Process Data是应该使能的,但是用igh主站时,watchdog Process Data 没有使能,Watchdog Status Process data寄存器为0;也不知道是哪里出了问题。

    想请教你这可能是哪出了问题。非常感谢。

    你好,你的full 从站源码可以给我发一份吗,非常感谢!994132333@qq.com

  • 你好,我想问一下,我想将ethercat-1.5.2移植到3.2.0内核的开发板上,可是我编译额时候出现 arm-eabi-gcc not found 请问这是我的交叉编译工具链有问题吗?
  • 您好,我想请问一下,我用的是BeagleBone Green的板子,但是执行到

    ./configure --prefix=/home/denny/ethercat/ethercat-1.5.1/output  --with-linux-

    dir=/home/denny/ti-sdk-am335x-evm-05.07.00.00/board-support/linux-3.2.0-psp04.06.00.10 

    --enable-8139too=no  --enable-generic=yes  CC=arm-none-linux-gnueabi-gcc --host=arm-

    none-linux-gnueabi 这部时,发现执行不下去,我的linux内核版本是Linux-4.4.49,已经改过了,还是不行。

  • JIALIANG LEE 说:

    您好,我想请问一下,我用的是BeagleBone Green的板子,但是执行到

    ./configure --prefix=/home/denny/ethercat/ethercat-1.5.1/output  --with-linux-

    dir=/home/denny/ti-sdk-am335x-evm-05.07.00.00/board-support/linux-3.2.0-psp04.06.00.10 

    --enable-8139too=no  --enable-generic=yes  CC=arm-none-linux-gnueabi-gcc --host=arm-

    none-linux-gnueabi 这部时,发现执行不下去,我的linux内核版本是Linux-4.4.49,已经改过了,还是不行。

    你好,我已经在IMX6Q上移植成功了,内核是Linux3.0.35,这是我的配置命令:

    ./configure --prefix=/home/gec/ethercat-1.5.2/output --with-linux-dir=/opt/linux-3.0.35 --enable-8139too=no --enable-generic=yes CC=arm-none-linux-gnueabi-gcc --host=arm-none-linux-gnueabi

    你参考一下,内核源码要先成功编译过才可以的。

  • root@beaglebone:~# ./configure --prefix=/home/denny/ethercat/ethercat-1.5.1/output --with
    -linux-dir=/home/denny/ti-sdk-am335x-evm-05.07.00.00/board-support/linux-4.4.9-psp04.06.00.10 --enable-8139too=no --enable-generic=yes CC=arm-none-linux-gnueabi-gcc --host=arm-none-linux-gnueabi -bash: ./configure: No such file or directory
    你好,我出现了这种情况,前面我说错linux内核了,那这是因为我没有编译内核源码吗?我拿到板子的时候里面已经有内置linux系统了。

    root@beaglebone:~# uname -a
    Linux beaglebone 4.4.9-ti-r25 #1 SMP Thu May 5 23:08:13 UTC 2016 armv7l GNU/Linux这个代表已经编译过了吗?

  • JIALIANG LEE 说:

    root@beaglebone:~# ./configure --prefix=/home/denny/ethercat/ethercat-1.5.1/output --with
    -linux-dir=/home/denny/ti-sdk-am335x-evm-05.07.00.00/board-support/linux-4.4.9-psp04.06.00.10 --enable-8139too=no --enable-generic=yes CC=arm-none-linux-gnueabi-gcc --host=arm-none-linux-gnueabi -bash: ./configure: No such file or directory
    你好,我出现了这种情况,前面我说错linux内核了,那这是因为我没有编译内核源码吗?我拿到板子的时候里面已经有内置linux系统了。

    root@beaglebone:~# uname -a
    Linux beaglebone 4.4.9-ti-r25 #1 SMP Thu May 5 23:08:13 UTC 2016 armv7l GNU/Linux这个代表已经编译过了吗?

    你在板子上执行的命令??

    我是在Ubuntu下面进行移植的,解压IGH源码进入目录里面就有configure文件的,--with-linux-dir=/opt/linux-3.0.35这句命令指的是你的目标开发板内核源码目录,内核源码一定要编译通过才可以的。

  • 是的,我是通过Xshell5与板子进行连接来执行命令,你的意思我懂了,我先重新编译linux内核试一下。非常感谢,请问您可以提供你的联系方式吗,往后想请教一下你。

  • JIALIANG LEE 说:

    是的,我是通过Xshell5与板子进行连接来执行命令,你的意思我懂了,我先重新编译linux内核试一下。非常感谢,请问您可以提供你的联系方式吗,往后想请教一下你。

    我也是项目需要做了下移植进行测试而已,以后移植方面出现问题来这里说一下,看能不能帮到你吧,其他的我也不懂了,哈哈!

  • 好的,你移植的时候除了在ubuntu下进行还需要什么编译环境吗?

  • JIALIANG LEE 说:

    好的,你移植的时候除了在ubuntu下进行还需要什么编译环境吗?

    目标开发板的交叉编译工具,编译内核源码的时候就要先配置交叉编译工具了。

    附上我移植时候写的笔记,仅供参考。

  • 前辈,我是刚入门Linux这块的。请问你是如何进行在Ubuntu虚拟平台下与目标开发板进行连接通信?