OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7547|回复: 9

enc28j60+uip奇怪的问题,特定情况下初始化很多次才成功。

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-12-19
在线时间
0 小时
发表于 2015-10-14 23:51:35 | 显示全部楼层 |阅读模式
5金钱
最近学习uip,mini板+enc28j60模块,enc28j60的驱动直接用的例程里的,参考例程移植了uip,加了几个tcp的测试app,都工作正常。之后又加了个简单的web服务器,在main()中加了web服务器的初始化函数simple_webserver_init(),它的内容就一句uip_listen(HTONS(80)),此时程序就不正常了,每次启动都卡在while(tapdev_init())里面,要初始化好几十次才成功。要是屏蔽掉simple_webserver_init()或者直接用uip_listen(HTONS(80)),每次初始化就一次成功。

更奇怪的是我后来又增加了一个udp的测试app,在main()中simple_webserver_init()后面加了一个udp_test_app_init(),此时反而初始化就一次成功了。

我就奇怪udp_test_app_init()  simple_webserver_init()这几个函数都是放在tapdev_init()后面的,为什么会影响到tapdev_init()的成功呢?请原子哥和各位高手帮忙分析下,谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-6-6
在线时间
2 小时
发表于 2015-10-15 02:43:50 | 显示全部楼层
怀疑你是单步调试跑的while(tapdev_init()),你改成下载后实时运行可能就没问题了。。
三更有梦书当枕,千里怀人月在峰!
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-12-19
在线时间
0 小时
 楼主| 发表于 2015-10-15 08:13:38 | 显示全部楼层
回复【2楼】laidaihua:
---------------------------------
没啊,我是下载后实时运行的。
回复

使用道具 举报

1

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-6-6
在线时间
2 小时
发表于 2015-10-15 11:19:32 | 显示全部楼层
那你怎么知道是跑了几十次才初始化成功呢?如果你使用的while()语句的话,只要初始化不成功就会重复进行初始化,直到初始化成功。。
三更有梦书当枕,千里怀人月在峰!
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-12-19
在线时间
0 小时
 楼主| 发表于 2015-10-15 13:38:38 | 显示全部楼层
回复【4楼】laidaihua:
---------------------------------
初始化失败会用串口打印出来。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-16 22:35:11 | 显示全部楼层
通过杜邦线接的?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-12-19
在线时间
0 小时
 楼主| 发表于 2015-10-19 08:27:48 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
是啊,通过杜邦线接。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-20 23:18:53 | 显示全部楼层
回复【7楼】这不是刀:
---------------------------------
容易受干扰,换短或者直接不要用杜邦线.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2014-2-18
在线时间
12 小时
发表于 2017-6-14 09:43:58 | 显示全部楼层
我也遇到初始化很多次才成功,这个次数不一定,有时候几百次,有时候2次就可以。底板加子卡的方式,子卡上的SPI的CS、SCK、MISO、MOSI的线长8cm~10cm左右,底板上的接口到MCU的线长14、17、18、10cm左右(依次对应CS、SCK、MISO、MOSI),示波器量测波形,从MCU出的信号,CS、 SCK、MOSI都蛮好的,但是从Slave出来的,MISO波形有点差,但是电平也还可以,就是上升沿有点大。
目前现象是写入6字节的MAC地址,再读出来时,读出的内容和写入的,不是都一样,2~3个位不一样。有时候读取的Device ID也不正确。
这个个问题1、是不是SPI通信问题?2、可能是ENC28J60的问题?
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2014-2-18
在线时间
12 小时
发表于 2017-6-14 13:20:44 | 显示全部楼层
本帖最后由 hugo01chen 于 2017-6-14 13:22 编辑
hugo01chen 发表于 2017-6-14 09:43
我也遇到初始化很多次才成功,这个次数不一定,有时候几百次,有时候2次就可以。底板加子卡的方式,子卡上 ...

更换了ENC28J60,问题仍旧。
仔细研究了下SPI配置,SPI Mode 0,0, 速率125KHz。SPI的线上原来不需要上拉电阻的,我现在做了上拉,问题依旧。不过改善了MISO的信号上升沿。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-18 11:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表