OpenEdv-开源电子网

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

stm32f103zet6+dm9000ciep,底层驱动问题

[复制链接]

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
发表于 2017-1-6 16:50:18 | 显示全部楼层 |阅读模式
100金钱
stm32f103zet6+dm9000ciep,底层驱动问题,用的是原子战舰的netconn tcp客户端的例子改的,网口的灯在闪,但ping不通,读出来的DM9000芯片ID为0x2B2A2928,求各位大神帮我看看哪里有错。。。。附近里有板子的原理图,我的qq是190010191,之所以用原子的程序来改,是因为原子的程序看起来易懂,舒服,条理性强。求高手们在此基础上给点意见。顺利解决的话给最佳答案充200话费当辛苦费,要是觉着少,也可以找我。。。我说到做到。。。

DM9000.rar

1.45 MB, 下载次数: 334

DM9000

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

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 16:51:00 | 显示全部楼层
这个东西断断续续搞了半个多月了,一直没有调通。。。
回复

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1106
金钱
1106
注册时间
2015-10-27
在线时间
206 小时
发表于 2017-1-6 16:57:53 | 显示全部楼层
先顶一个..............
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 16:59:55 | 显示全部楼层
不管怎么样,只有解决了,辛苦费是有的,,自学怎么也要交点学费。。。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 17:00:32 | 显示全部楼层
@正点原子 帮我看看吧,,原子哥。。
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2017-1-6 17:14:46 | 显示全部楼层
战舰的dm9000我用着好好的啊。你改了啥?
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 17:16:24 | 显示全部楼层
ysq7120 发表于 2017-1-6 17:14
战舰的dm9000我用着好好的啊。你改了啥?

我用的是战舰的例子,但板子不是战舰的了。。另外的板子
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2017-1-6 17:22:39 | 显示全部楼层
那就要好好看看你的硬件链接有哪些改变,需要修改配置了
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 17:25:02 | 显示全部楼层
ysq7120 发表于 2017-1-6 17:22
那就要好好看看你的硬件链接有哪些改变,需要修改配置了

已经改了硬件配置了,,初始化之类的也参照一些资料改过点。还是不行。。我是不是硬件配置有问题
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-1-6 17:39:52 | 显示全部楼层
先把DM9000的ID读出来,如果读出来不正确的话看看硬件连接。或者修改一下FSMC的时间参数
开往春天的手扶拖拉机
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-6 18:03:49 | 显示全部楼层
zuozhongkai 发表于 2017-1-6 17:39
先把DM9000的ID读出来,如果读出来不正确的话看看硬件连接。或者修改一下FSMC的时间参数

每个DM9000的芯片ID是一样的吗,
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2017-1-7 09:32:26 | 显示全部楼层
qjk9520 发表于 2017-1-6 18:03
每个DM9000的芯片ID是一样的吗,

我记得好像ID固定为0x90000A46,你的id刚好每字节减1,一看就是错误的
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-7 13:36:21 | 显示全部楼层
ysq7120 发表于 2017-1-7 09:32
我记得好像ID固定为0x90000A46,你的id刚好每字节减1,一看就是错误的

嗯,查了DM9000的说明书,ID寄存器的默认值就是0x90000A46,
回复

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2017-1-8 11:04:16 来自手机 | 显示全部楼层
ysq7120 发表于 2017-1-7 09:32
我记得好像ID固定为0x90000A46,你的id刚好每字节减1,一看就是错误的

问题已经很明确,fsmc总线有问题,查看连线是不是符号原子历程,再补焊下相关引脚,fsmc总线出问题是有很规律的东西出现的
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-1-5
在线时间
2 小时
发表于 2017-1-9 01:57:20 来自手机 | 显示全部楼层
我之前用其他板杜邦线接dm9000也一直调不通,后来条件改善用战舰版就成功了,从之前的经验来看你这是fsmc的数据线问题,推荐你先看下战舰开发手册的fsmc部分
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-1-5
在线时间
2 小时
发表于 2017-1-9 02:00:07 来自手机 | 显示全部楼层
还有个点据前辈们所说,这个最好选用等长的接触良好的杜邦线,越短越粗越好,对了,记得看下你的是8位模式还是16位模式,程序和硬件统一不
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-9 13:45:21 | 显示全部楼层
15538065087 发表于 2017-1-9 02:00
还有个点据前辈们所说,这个最好选用等长的接触良好的杜邦线,越短越粗越好,对了,记得看下你的是8位模式 ...

我的不是杜邦线,是直接焊接在上面的。。。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-9 13:46:13 | 显示全部楼层
myxiaoniao 发表于 2017-1-8 11:04
问题已经很明确,fsmc总线有问题,查看连线是不是符号原子历程,再补焊下相关引脚,fsmc总线出问题是有很 ...

很早之前调不通的时候就研究过fsmc了,试过很多次还是不行,所以才纠结
回复

使用道具 举报

12

主题

336

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1576
注册时间
2015-8-9
在线时间
625 小时
发表于 2017-1-9 16:51:31 | 显示全部楼层
qjk9520 发表于 2017-1-9 13:46
很早之前调不通的时候就研究过fsmc了,试过很多次还是不行,所以才纠结

跟楼主同样的问题,自己做的板子,dm9000的id一直读不对,管脚分配都是按照战舰的接法,各种方法都试过,没用,有点怀疑芯片有问题
回复

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2017-1-12 13:00:44 | 显示全部楼层
qjk9520 发表于 2017-1-9 13:46
很早之前调不通的时候就研究过fsmc了,试过很多次还是不行,所以才纠结

我不久前也遇到过类似的问题,终于明白硬件评估板还是有价值的,比如你现在遇上的问题,如果你手头有个评估板,至少你可以比较到底是软件问题还是硬件问题,你把人家官方例程拿来下载看看,行不行不是立马知道是哪里的问题了吗
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-17 10:24:15 | 显示全部楼层
Akatsuki_lim 发表于 2017-1-9 16:51
跟楼主同样的问题,自己做的板子,dm9000的id一直读不对,管脚分配都是按照战舰的接法,各种方法都试过, ...

我的应该不是芯片的问题,别人给的例程封装了,下载下去试过又可以。。我的。。。
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-1-17 10:25:26 | 显示全部楼层
myxiaoniao 发表于 2017-1-12 13:00
我不久前也遇到过类似的问题,终于明白硬件评估板还是有价值的,比如你现在遇上的问题,如果你手头有个评 ...

那块板子的例程试过,可以,用自己照原子的修改了再下载下去就不行。。。最近忙其它的事了。这个一直没有研究。。
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-5-17
在线时间
1 小时
发表于 2017-5-17 20:23:27 | 显示全部楼层
晶振有问题,fsmc 地址错了
回复

使用道具 举报

11

主题

49

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-8-24
在线时间
65 小时
 楼主| 发表于 2017-5-25 15:18:17 | 显示全部楼层
苏安 发表于 2017-5-17 20:23
晶振有问题,fsmc 地址错了

晶振哪里有问题了。。FSMC哪里写错了。。麻烦说仔细点
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-5-27
在线时间
0 小时
发表于 2017-5-27 16:56:01 | 显示全部楼层
我这几天调试DM9000也遇到了这个问题,目前已经解决了,不知道适用你的不
首先,把硬件复位RST引脚断开,最好把这部分代码注释掉。我的加上去就回读取ID不正常,原因不知道为啥。。。
然后将DM9000复位部分的代码

        DM9000_WriteReg(DM9000_GPCR,0x01);        //第一步:设置GPCR寄存器(0X1E)的bit0为1
  DM9000_WriteReg(DM9000_GPR,0);        //第二步:设置GPR寄存器(0X1F)的bit1为0,DM9000内部的PHY上电

这两句后面跟上一个延时,我的修改后的代码
void DM9000_Reset(void)
{
        DM9000_WriteReg(DM9000_GPCR,0x01);                        //μúò»2½:éèÖÃGPCR¼Ä′æÆ÷(0X1E)μÄbit0Îa1
        DM9000_WriteReg(DM9000_GPR,0);                                //μú¶t2½:éèÖÃGPR¼Ä′æÆ÷(0X1F)μÄbit1Îa0£¬DM9000Äú2¿μ&#196HYéÏμç
        delay_ms(10);
        DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST));        //μúèy2½:èí¼t¸′λDM9000
        do
        {
                delay_ms(25);        
        }while(DM9000_ReadReg(DM9000_NCR)&1);                //μè′yDM9000èí¸′λíê3é
       
        DM9000_WriteReg(DM9000_NCR,0);
        DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST));        //DM9000μú¶t′Îèí¸′λ
        do
        {
                delay_ms(25);       
        }while (DM9000_ReadReg(DM9000_NCR)&1);
        DM9000_WriteReg(DM9000_NCR,0);
}

你试下行不行
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-12-20
在线时间
7 小时
发表于 2020-1-6 15:26:20 | 显示全部楼层
请问你的问题解决了么 ,最近遇到同样的问题,求支持,谢谢
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2020-7-11
在线时间
6 小时
发表于 2020-7-16 10:29:17 | 显示全部楼层
读ID不正常可以改变一下FMC的时序,我的一直可以读取ID,但是串口输出一直报错:dm9000 rx: rx error, stop device,卡了四天了,不知道原因
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-29 20:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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