硬汉嵌入式论坛

 找回密码
 立即注册
查看: 407|回复: 4
收起左侧

F429部分区域无法写入问题

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2023-10-26 23:21:22 | 显示全部楼层 |阅读模式
各位好,我的板子通过循环对32MB sdram写0,在MEMORY窗口看到部分区域是0xFF,哪位遇到过吗,有没有什么解决方案?
屏幕截图 2023-10-26 231604.png


FMC设置参数是:

        sdram_hsdram.Instance                                 = FMC_SDRAM_DEVICE;
        sdram_hsdram.Init.SDBank                                = FMC_SDRAM_BANK1;
        sdram_hsdram.Init.ColumnBitsNumber                = FMC_SDRAM_COLUMN_BITS_NUM_9;
        sdram_hsdram.Init.RowBitsNumber                = FMC_SDRAM_ROW_BITS_NUM_13;
        sdram_hsdram.Init.MemoryDataWidth                = FMC_SDRAM_MEM_BUS_WIDTH_16;
        sdram_hsdram.Init.InternalBankNumber        = FMC_SDRAM_INTERN_BANKS_NUM_4;
        sdram_hsdram.Init.CASLatency                        = FMC_SDRAM_CAS_LATENCY_2;
        sdram_hsdram.Init.WriteProtection                = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
        sdram_hsdram.Init.SDClockPeriod                = FMC_SDRAM_CLOCK_PERIOD_2;
        sdram_hsdram.Init.ReadBurst                        = FMC_SDRAM_RBURST_ENABLE;
        sdram_hsdram.Init.ReadPipeDelay                = FMC_SDRAM_RPIPE_DELAY_0;
       
        sdram_timing.LoadToActiveDelay                 = 2;
        sdram_timing.ExitSelfRefreshDelay        = 6;
        sdram_timing.SelfRefreshTime                = 6;
        sdram_timing.RowCycleDelay                = 6;
        sdram_timing.WriteRecoveryTime                = 2;
        sdram_timing.RPDelay                        = 2;
        sdram_timing.RCDDelay                        = 2;



        刷新速度730,


初始化过程:
        uint32_t temp = 0;
       
        sdram_send_cmd(0, FMC_SDRAM_CMD_CLK_ENABLE, 1, 0);
        HAL_Delay(1);
        sdram_send_cmd(0, FMC_SDRAM_CMD_PALL, 1, 0);
        sdram_send_cmd(0, FMC_SDRAM_CMD_AUTOREFRESH_MODE, 8, 0);
       
        temp = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_1 |
                                                                                SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL |
                                                                                SDRAM_MODEREG_CAS_LATENCY_3 |
                                                                                SDRAM_MODEREG_OPERATING_MODE_STANDARD |
                                                                                SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;
       
        sdram_send_cmd(0, FMC_SDRAM_CMD_LOAD_MODE, 1, temp);




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-10-27 07:40:19 | 显示全部楼层
如果是调试SDRAM
MDK这个Memory不适合用来读取,他这个读取是建立在你已经正常配置的基础上。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-10-27 12:00:33 来自手机 | 显示全部楼层
那最靠谱的方法还是直接读出来判断了,是这样吧?
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-10-27 23:30:57 | 显示全部楼层
找到问题所在了,下面图中两处设置要一样
屏幕截图 2023-10-27 232900.png
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-10-27 23:32:32 | 显示全部楼层
现在可以全部填充了:
屏幕截图 2023-10-27 233151.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 21:59 , Processed in 0.173911 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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