|
各位好,我的板子通过循环对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);
|
|