打印

103VE复用方式外扩两个8位外设的问题,能读不能写

[复制链接]
2187|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
desay|  楼主 | 2011-4-28 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103VE外扩两个外设RC500和CP2200,连个外设都是支持复用模式的(8位数据宽度)。
接法简单介绍:
CS_RC500 = NE1||A16                    (地址:0x60000000)
CS_CP2200 = NE1||(NOT)A16         (地址:0x60020000)
D0-D7       = AD0-AD7    外设总线直接与CPU相连

FSMC配置简单介绍:
MWID = 16位, MTYPE = NOR FLASH,MUTX = ENABLE
ADDSET = 15 ADDHOLD = 1 DATASET = 30 其他为0

现象:
可以读取两个外设内部寄存器的值,但有个奇怪的现象,寄存器无法写入。
好像可以写入1次,之后的写入均无效。


请斑竹救火!
沙发
desay|  楼主 | 2011-4-28 15:52 | 只看该作者
上述描述如有描述不清的,请指出。挑重点写的。

使用特权

评论回复
板凳
desay|  楼主 | 2011-4-28 16:19 | 只看该作者
高人在哪里?大家帮我分析一下原因也行呀。
旁观者清嘛。
我感觉只要能读的话,写就应该没问题呀。能读说明,第一步的地址信号能被外设正确识别,只是在第二步出现问题,FSMC没将DATA输出吗,读和写的区别,无非是读时RD信号有效,写时WR信号有效。用示波器量了片选信号,和写信号,都是有输出的。

使用特权

评论回复
地板
desay|  楼主 | 2011-4-28 16:30 | 只看该作者
我试过不同的时序,都没有什么用

使用特权

评论回复
5
desay|  楼主 | 2011-4-28 19:36 | 只看该作者
怎么一点反应都没有,是我的描述不清吗?这个问题很典型,希望能得到大家的建议

使用特权

评论回复
6
winloop| | 2011-4-28 21:24 | 只看该作者
如果你的总线宽度配置的是16位的话,那么

你用A16区分片选,地址就是二进制的10 0000 0000 0000 0000
                              而不是         1  0000 0000 0000 0000

看参考手册,16位宽度方式下,地址线是向右偏移一位的
看看跟这个有没有关系

使用特权

评论回复
7
desay|  楼主 | 2011-4-28 22:26 | 只看该作者
地址使用应无错。如你所说一样。

使用特权

评论回复
8
mytempid| | 2011-4-29 07:59 | 只看该作者
先示波器检查“写信号”驱动波形和对应数据线波形,排除外设问题

使用特权

评论回复
9
winloop| | 2011-4-29 10:01 | 只看该作者
mytempid同学终于来了,欢迎

使用特权

评论回复
10
desay|  楼主 | 2011-4-30 08:29 | 只看该作者
复用总线能使用extend mode吗?即读和写时序不同。还有ahb data size在哪里可设吗?请教用过的同学指点一二

使用特权

评论回复
11
yzzly| | 2011-4-30 12:38 | 只看该作者
103自己有网络外设,还要用CP2200干什么?

使用特权

评论回复
12
desay|  楼主 | 2011-4-30 13:03 | 只看该作者
没有mac

使用特权

评论回复
13
desay|  楼主 | 2011-5-3 16:11 | 只看该作者
12# desay

使用特权

评论回复
14
desay|  楼主 | 2011-5-3 16:17 | 只看该作者
感觉ST的FSMC用起来真得很麻烦?与外设的接口时序搞得不好,如复用模式下,好像读和写的时序无法配置成不同,所以读和写只能用相同的时序。
应该是:将时序调到最慢时,应能保证读写正确,然后使用者再根据手册优化读写速度。
现在的状况是,能读写CP2200,但RC500则只能读不能写。
版主这么久了也不出现,失望!

使用特权

评论回复
15
desay|  楼主 | 2011-5-5 17:20 | 只看该作者
香水好久没来关心民间疾苦。
STM,谁用谁知道。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

0

粉丝