打印
[STM32F4]

STM32F407 FSMC外接SRAM在字节模式访问时异常!

[复制链接]
3579|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
joe3501|  楼主 | 2015-4-18 17:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天在调试一块新做的开发板,STM32F407+is61lv51216. 万万没想到竟然卡在SRAM这个地方,异常情况如下:
1. 测试SRAM时,16BIT模式的读写测试时OK的;
2. 测试8BIT模式时,一访问单字节地址时,在线调试中断(Jlink在线调试);

/* 8bit memtest */
    {
        unsigned char *p_extram = (unsigned char *)STM32_EXT_SRAM_BEGIN;
        unsigned int temp;

        for(temp = 0; temp < (STM32_EXT_SRAM_END - STM32_EXT_SRAM_BEGIN)/sizeof(unsigned char); temp++)
        {
            *p_extram++ = (unsigned char)temp;    ===》  执行到此处Jlink连接中断
        }

        p_extram = (unsigned char *)STM32_EXT_SRAM_BEGIN;
        for(temp = 0; temp < (STM32_EXT_SRAM_END - STM32_EXT_SRAM_BEGIN)/sizeof(unsigned char); temp++)
        {
            if( *p_extram++ != (unsigned char)temp )
            {
                while(1);
            }
        }
    }/* memtest */





沙发
joe3501|  楼主 | 2015-4-18 17:27 | 只看该作者
本帖最后由 joe3501 于 2015-4-18 17:32 编辑

中断时提示的异常如下:


调试时第一反应是觉得FSMC的NBL0、NBL1与SRAM的UB、LB信号连接出错了,后来经过测量,发现没有问题,


然后就开始对FSMC的初始化参数各种调试,发现就是解决不了,最后只好放大招了,SRAM的控制线都接线出来用逻辑分析仪看一下到底发生了什么事情,下图是抓取的结果:
16 bit memtest_write
16 bit memtest_read
上面两幅图是16bit模式的测试结果,所有的控制信号都是OK的,这也符合测试结果!

  这就是8bit 模式下的第一次写第一个地址时抓取的信号,发现LB没有拉低,直到130ms之后,LB和UB才拉低

感觉这个应该是FSMC的控制逻辑出了问题才会这样的。

鉴于上面的异常,不知道坛子里面的兄弟们有碰到类似的情况?或者有什么好的调试意见可以讨论一下!

使用特权

评论回复
板凳
1255875047| | 2015-4-23 10:50 | 只看该作者
我以为的是和位宽有关系,好像不能8位操作吧。

使用特权

评论回复
地板
1255875047| | 2015-4-23 10:57 | 只看该作者
1255875047 发表于 2015-4-23 10:50
我以为的是和位宽有关系,好像不能8位操作吧。

不好意思,说错了。我的意思是在你的环境下,不是指的FSMC总线不能8位。

使用特权

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

本版积分规则

4

主题

14

帖子

0

粉丝