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以太网和FPGA光纤相结合的问题

大家好:

      硬件环境:AM335X的ARM芯片、FPGA、以太网PHY芯片DP83848

     软件环境:linux系统

    问题描述:

         我的本地以太网是连接的以太网PHY芯片

         光纤是通过FPGA进行处理的;

       底层会对他们进行分别的配置的;

      但是当我的FPGA没有启动时(FPGA的电源正常的),通过本地PC给光纤口发送数据包时,发送一段时间,我的本地以太网口,也会死机,直接ping不通了;

     这个是为什么,光纤和以太网这边会有什么联系吗?

  • 对你目前的问题场景有点模糊:你的本地以太网,是使用的CPSW上的以太网口吗?FPGA是和AM335x的GPMC相连?

    问题测试的场景是:以太网连在了某个网络上,AM335x可以正常进行网络通信;本地PC给光纤发数据包,FPGA会接收处理,然后把结果返回给AM335x。

    如果FPGA没有启动,过一会,以太网口通信就出问题了?是这个意思吗?

    那如果FPGA正常启动呢?

  • 你好:

           对;我的本地以太网是使用的CPSW上的以太网,FPGA是和AM335x的GPMC相连的

          我在描述一下我的场景(有两种场景):

                 第一种:以太网连接PC机(由于我的linux内核中有内部的web服务器,PC机可以通过网页进行和linux中的arm应用程序进行通讯);

                              光纤连接我的下一级设备(arm应用程序会和给光纤发送数据包,FPGA会处理发送和接收数据,再于arm应用程序进行通讯);

                             当FPGA中的应用程序不存在时(但是FPGA电源存在,是上电过程中),以太网会出现死机的状态(因为我的arm应用程序,会不停的给光纤发送广播包);

                           当FPGA应用程序正常时,以太网通讯正常;

                          或者当FPGA的电源不存在时(掉电中);以太网通讯正常;

               第二种:以太网连接PC机,通过PC中ping 监控以太网是否正常;

                             光纤连接我的下一级设备,通过PC机ping 我的光纤外部的设备;

                             然后现象和上边的现象一样的。

               结论:我怀疑是不是共用内存的问题,或者socket缓冲区的问题;

                          还有可能是上下拉电阻或者管脚配置的问题,因为FPGA电源掉电后,本地以太网通讯可以正常了

                不知道描述清楚没有。。。

               所以现在不知道该怎么解决这个问题?

  •              对不起,我感觉我们的光纤这一块又不是通过GPMC实现的,因为底层代码中出现的davinci_mdio_read(),mdio总线的方式接入的

  • 你的描述确实比较混乱

    最好先说清楚你们的方案,然后把数据流理清楚,最后描述好处问题的现象

    这样可能更加容易去判断问题

  •      对不起,我再从新来一遍。

         我得平台是这样的:

         硬件:

         我有两台设备,这两台设备是通过光纤进行级联的,其中光钎口是通过FPGA和ARM通讯的(相当于FPGA充当了一个PHY芯片,接收外部的数据);这两台设备还各有一个本地以太网口(用于和PC机进行通讯)

          软件:

                  设备中的ARM程序:用于处理本地以太网、FPGA(相当于光纤口)的数据;

                 FPGA程序:处理光纤口过来的数据,然后送给ARM;

         问题描述:

                首先先说明我的ARM程序,会不停给光纤口发送数据。

                当我的FPGA程序存在时,两台设备是可以通过光纤进行通讯的,本地以太网也是正常的。

                但是当我的FPGA程序不存在时,两台设备肯定是不能进行通讯的,但是过一段时间后,我发现我的本地以太网口也不正常,而且本地以太网口都ping不通了。

          问题分析:

                  通过我对代码的研究发送,出现这个问题的原因就是我的ARM程序会不停的给光纤发送数据包,当不发送数据包时,我的本地以太网口没有这个问题;

           所以我想问一下大家,这个是为什么?不知道这次我描述清楚了吗?