OpenEdv-开源电子网

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

FSMC驱动SRAM出现问题,请大佬们帮忙看看问题出在哪...

[复制链接]

0

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-7-1
在线时间
5 小时
发表于 2019-4-1 00:42:02 | 显示全部楼层 |阅读模式
1金钱
先说电路。画板子的时候琢磨了一下既然是SRAM,地址和数据都随便接了只要读出来的跟写进去的一样那大家就当无事发生过。画到一半想起来不对数据线上还有LB和UB呢,只能在一个字节内瞎接。既然如此干脆一不做二不休LB UB也不要了,直接接地然后按字(word)访问。PSRAM的片选接在NE2上,同时NE1上接了一片LCD,RS是A1。这是硬件大概的情况。软件使用HAL库,CubeMX直接生成Keil工程。LCD已经调通无误,但是SRAM出现了问题。
QQ图片20190401002121.png QQ图片20190401002126.png
如图。testram是定义在0x64000000上的uint16_t数组。for循环预期的结果是01 00 03 02 05 04 07 06...(arm小端在前)....实际的结果是03 02 03 02 07 06 07 06.....
根据实际现象做出合理猜测,我觉得是地址线的A0被错误的驱动,导致读写奇数字的时候偶数字上的数据被覆盖。
然后此时又了解到16bit模式下HADDR上的地址会被右移....调试LCD的时候遇到过这个问题,但是时间比较久记不清了,又回去看了下原子哥的视频,确定移位发生HADDR上,与FSMC_A无关,不会造成A0不可用的问题。
为了排除这个因素,又做了一个测试。
QQ图片20190401002130.png
QQ图片20190401002133.png
这里修改了FSMC的配置,将SRAM位宽改为8b,相当于16位的SRAM高8位弃置不用,当作8位SRAM用。这样一来就不会有地址右移的问题。testram是定义在0x64000000上的uint8_t数组,预期结果是00 01 02 03 04 05 06.....实际结果是01 01 03 03 05 05 07 07....
我觉得这里的结果基本上可以证实前面A0有误的猜测,但是以我的经验无法分析出什么情况会导致这样一个现象。所以有请各位老司机帮忙分析一下。
(焊接没有问题,没有对地和对其他引脚的短路)




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

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-7-1
在线时间
5 小时
 楼主| 发表于 2019-4-1 00:56:18 | 显示全部楼层
PS:刚刚找来了示波器。观察了一下几个引脚的信号,按图片顺序分别是A0,A1,A2。尽管我无法解释A0上的针状脉冲的来源,但就pattern来讲我觉得前面A0没有被正确驱动的猜测是成立的
DS1Z_QuickPrint1.png DS1Z_QuickPrint2.png
DS1Z_QuickPrint3.png

回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-7-1
在线时间
5 小时
 楼主| 发表于 2019-4-1 03:00:33 | 显示全部楼层
尴尬。刚刚估计了一下数据的量级...RAM测试才写了256个字,而LCD的分辨率是480*272@16bpp...所以上文的波形图中最显著的pattern其实是LCD初始化产生的........前文说过LCD的RS线接在A1上,LCD控制器比较特殊,不过驱动也使用原子的程序修改来的,基址为0x60000002。这样寄存器写地址为10右移一位得1,此时A0=1,A1=0,LCD写入命令,RAM写地址为(2+2)右移一位得10,此时A0=0,A1=1,LCD写入数据
干掉了LCD驱动程序之后的波形如下,按图片顺序分别为A0,A1,A2,A3。比之前干净了很多,但仍然无法确定A1,A2,A3上第一个触发的信号是什么(16个脉冲),为什么A0上没有。但是可以确认A0并非无法动作....其实正确的测法应该是示波器开2个以上通道用NE2做触发一起测,但我现在只有一个探头,只能根据信号的模式进行猜测....
DS1Z_QuickPrint6.png
DS1Z_QuickPrint7.png
DS1Z_QuickPrint8.png
DS1Z_QuickPrint9.png

回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-7-1
在线时间
5 小时
 楼主| 发表于 2019-4-1 03:27:51 | 显示全部楼层
(其实手头有块探索者F4....但是探索者的SRAM在BANK3...移植过去之后出现了更加令人困惑的情况....懒得分析了....
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-7-1
在线时间
5 小时
 楼主| 发表于 2019-4-1 03:55:53 | 显示全部楼层
问题已解决。 QQ图片20190401034449.png
QQ图片20190401034453.png
最初的猜测只对了一半:问题的确出在A0。也确实是个硬件问题。但与MCU无关。偶然的灵感闪现,翻开电路图发现了线索。而真正的原因令人啼笑皆非。
QQ图片20190401034518.png
板子上焊接的256x16bit PSRAM根本就tm没有A18。吹下原子板上的51216贴装上之后一切正常。全帖完。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 04:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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