OpenEdv-开源电子网

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

STM32F103VET6 驱动 W5300的问题!

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-12
在线时间
1 小时
发表于 2014-11-12 16:38:31 | 显示全部楼层 |阅读模式
5金钱
小弟使用VET6,PIN100的板子驱动W5300,由于VET6的地址线A0-A15被复用了,我就干脆使用W5300的间接访问模式进行FSMC 16BIT的访问,于是就选择了A16-A17这两个地址线来与W5300对接,
W5300的寄存器提供的间接模式访问,主要靠如下三个寄存器
MR            模式寄存器,配置W5300的访问模式和操作模式等
IDM_AR    间接访问模式地址寄存器
IDM_DR    间接访问模式数据寄存器

这三个寄存共占6个字节,由于采用16BIT传输,就只需要3次内存寻址就可以完成寄存器的访问,于是就只需要2根地址线就OK了,于是,我就将FSMC的A16-A17和W5300的A1-A2相连接。
如下的硬件线路连接:

CPU                 W5300
D[15:0]        D[15:0]
A[17:16]      A[2:1]
NE1                 CS
NOE                 RD
NWE                 WR

根据如上配置
MR映射到内存的地址为 0x6000 0000
IDM_AR        0x6000 0000 + (1<<16)*2
IDM_DR        0x6000 0000 + (1<<17)*2

设置好后我初始化GPIO和FSMC接口后,就开始来访问0X60000000这个地址来读取MR寄存器的值了,
问题出来了,为什么经过初始化FSMC后,我进行单步调试,内存地址0X6000 0000开始一直到A000 0000这写内存单元,的数据全部都成了0B00 0B00 .......
由于W5300的读写时序和FSMC一样的,所以,我就直接访问MR寄存器,出来的数据就是 0B00,这个值和DATASHEET中的值相吻合。接下来我队这个寄存器进行写
操作的时候,就不对了,比如说 : *((__IO short *) 0x60000000) = 0x80 ,这是一个复位操作。我用示波器打FSMC的DATA口,确实产生了0X80的数据,ADDR口的电平也是正确的,但是内存0x6000 0000中的值并未改变!!!!

这是第一个问题。
第二个问题,我是STM32的新手,如果按照我上面的设置,为什么从0X6000 0000 到A000 0000都变成了0B00.....这可是整个FSMC的映射空间了,而实际上,我只选择了bank1_sram1就是0x60000000 - 0x64000000,如果按照正常来看的话,应该是除了A16和A17为高的情况下的剩余地址中的值一样我还可以理解。可是结果是这样就整的恼火了!!!!!

望大神解救,实在不行,我就只有换144PIN的ZET6了!!!


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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-11-12 21:19:32 | 显示全部楼层
没用过,帮顶。。。。
开往春天的手扶拖拉机
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-12 22:18:06 | 显示全部楼层
数据相同的应该是读了相同的地址的值导致的
你的A0~A15没有,所以这一部分数据读出来都是一样的。
A16,A17这两个你先确认下电平变化是否符合预期。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-12
在线时间
1 小时
 楼主| 发表于 2014-11-13 10:28:08 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我用示波器确认了,当我进行*((__IO short *)( 0x60000000+(1<<17) )) = 0x80 操作时,A16线和A17线上的电平反应是正确的!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-13 17:02:00 | 显示全部楼层
回复【4楼】jackwolfskin:
---------------------------------
那应该可以正常操作W5300了,然后你看看时序是不是有问题的地方吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-12
在线时间
1 小时
 楼主| 发表于 2014-11-14 15:00:15 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
为什么我一上电5300,数据口和地址口的电平就不正确了呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-14 21:05:05 | 显示全部楼层
回复【6楼】jackwolfskin:
---------------------------------
这我就不知道了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-11-14 21:09:32 | 显示全部楼层
不清楚。用过W5100和W5500,W5300总线是16bits,带宽更大了。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-3-3
在线时间
3 小时
发表于 2016-3-3 17:04:17 | 显示全部楼层
你好,我是新手,刚开始学习W5300的以太网使用,请问你可以把你的源程序给我吗?万分感激!
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2020-6-3
在线时间
9 小时
发表于 2021-6-16 14:35:20 | 显示全部楼层
你好,想问下你的问题解决了吗,可否发给我一份例程,感谢。。我是新手,正在调这个STM32F103VET6 驱动 W5300,
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 21:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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