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);
如果是调试SDRAM
MDK这个Memory不适合用来读取,他这个读取是建立在你已经正常配置的基础上。 那最靠谱的方法还是直接读出来判断了,是这样吧? 找到问题所在了,下面图中两处设置要一样 现在可以全部填充了:
页:
[1]