karenm741 发表于 2023-10-26 23:21:22

F429部分区域无法写入问题

各位好,我的板子通过循环对32MB sdram写0,在MEMORY窗口看到部分区域是0xFF,哪位遇到过吗,有没有什么解决方案?



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);




eric2013 发表于 2023-10-27 07:40:19

如果是调试SDRAM
MDK这个Memory不适合用来读取,他这个读取是建立在你已经正常配置的基础上。

karenm741 发表于 2023-10-27 12:00:33

那最靠谱的方法还是直接读出来判断了,是这样吧?

karenm741 发表于 2023-10-27 23:30:57

找到问题所在了,下面图中两处设置要一样

karenm741 发表于 2023-10-27 23:32:32

现在可以全部填充了:
页: [1]
查看完整版本: F429部分区域无法写入问题