dzsj 发表于 2011-6-21 10:05:20

奇怪了!ENC28J60为什么有时PING得通,有时PING不通!

为什么ENC28J60有时PING得通,有时PING不通?刚上电时PING得通,过段时间就PING不通了,要重启才能又PING通!
主程序如下:(是不是主程序的问题?)
while(1)
   { wdt();

   plen = enc28j60_packet_receive(BUFFER_SIZE, buffer);

      //USART_DMASendData(USART1,buf,plen);


      /*plen will ne unequal to zero if there is a valid packet (without crc error) */

      if(plen==0)
              {
            continue;
              }
      // arp is broadcast if unknown but a host may also
      // verify the mac address by sending it to
      // a unicast address.
      if(eth_type_is_arp_and_my_ip(buffer,plen))
              {
                        make_arp_answer_from_request(buffer);
                        //USART_DMASendText(USART1,"make_arp_answer_from_request\n");
            continue;
              }

      // check if ip packets are for us:
      if(eth_type_is_ip_and_my_ip(buffer,plen)==0)
              {
            continue;
              }

      
      if(buffer==IP_PROTO_ICMP_V && buffer==ICMP_TYPE_ECHOREQUEST_V)
              {
            // a ping packet, let's send pong       
                        make_echo_reply_from_request(buffer, plen);
                        //USART_DMASendText(USART1,"make_echo_reply_from_request\n");
                        continue;
              }
      if (buffer==IP_PROTO_UDP_V&&buffer==0x17&&buffer==0x70)
                  { make_udp_reply_from_request(buffer,rdata,5,mydk);
                          
                        }
      //make_udp_reply_from_request(buffer,rdata,5,mydk);
   }

usr.cn 发表于 2011-6-21 12:49:45

有可能是程序问题
也可能是硬件问题,ENC28J60发热比较厉害,时间长了就会出点小问题。

dzsj 发表于 2011-6-21 14:46:49

ENC28J60发热比较厉害,要怎么解决呢?

hepday 发表于 2011-6-21 21:27:11

严重感冒~哈哈,路过帮顶

sunnyhook 发表于 2011-6-21 22:53:02

之前有讨论过,如果是中断驱动的方式,可能的原因是由于某次中断请求没有被响应,造成了数据阻塞。如果是查询的方式,那有可能是程序出错,篡改了某些寄存器的值,导致数据传输问题,定期重新初始化芯片就能解决了。

至于说发热的问题,一般是调整偏置电阻降低工作电流能起到一定的改善作用,一般2k的电阻换成2.7k的就差不多了。

lylatyou 发表于 2011-6-21 23:12:18

芯片底部双面覆铜,再用十几个开窗过孔打通,热量就小了。SPI在收发的时候,禁止其他中断,能降低错误概率。

dzsj 发表于 2011-6-23 12:32:21

谢谢你们!

lovelywwei 发表于 2012-3-28 19:28:32

低速少量数据间隔传输。

yclzq5310 发表于 2012-10-26 11:50:12

我也遇到这种问题,请问解结了没有?怎么解结的?

liu100149 发表于 2013-7-19 23:40:13

我也是呀不知怎样解决

玉石俱焚 发表于 2020-6-19 22:10:14

我也遇到了这个问题,上电工作几分钟就ping不通了,一定要重新上电才能ping通,几分钟后又不通了,摸了一下很烫,前几个月天气冷的时候好像就很好

youkebing 发表于 2020-6-19 22:53:59

我认为是驱动写的问题
页: [1]
查看完整版本: 奇怪了!ENC28J60为什么有时PING得通,有时PING不通!