thank you for your reply Jorge,
I tried to deinitialise SDRAM but its not worked. please look into my code. SDRAM controller de-initialization ok. Is there any SDRAM_deinitSequence like "SDRAM_InitSequence" .
status_t SDRAM_Init(SDRAM_Type *base, uint32_t busClock_Hz)
{
sdramc_config_t config;
sdramc_refresh_config_t refConfig;
sdramc_blockctl_config_t ctlConfig;
/* SDRAM initialization. */
CLOCK_SetClkOutClock(0);//0
SIM->SOPT2 = (SIM->SOPT2 & ~SIM_SOPT2_FBSL_MASK) | SIM_SOPT2_FBSL(3);
CLOCK_EnableClock(kCLOCK_Flexbus0);
FB->CSPMCR = FB->CSPMCR & ~FB_CSPMCR_GROUP2_MASK | FB_CSPMCR_GROUP2(2);
FB->CSPMCR = FB->CSPMCR & ~FB_CSPMCR_GROUP3_MASK | FB_CSPMCR_GROUP3(2);
FB->CSPMCR = FB->CSPMCR & ~FB_CSPMCR_GROUP4_MASK | FB_CSPMCR_GROUP4(2);
FB->CSPMCR = FB->CSPMCR & ~FB_CSPMCR_GROUP5_MASK | FB_CSPMCR_GROUP5(2);
/* SDRAM refresh timing configuration. */
refConfig.refreshTime = kSDRAMC_RefreshThreeClocks;
/* Refresh time 4096 rows/ 64ms. */
refConfig.sdramRefreshRow = 15625;
refConfig.busClock_Hz = busClock_Hz;
/* SDRAM controller configuration. */
/* Port size: 16 bit, Command bit location: bit 19. */
ctlConfig.portSize = kSDRAMC_PortSize16Bit;
ctlConfig.location = kSDRAMC_Commandbit19;
ctlConfig.block = kSDRAMC_Block0;
/* SDRAM with trcd-15ns(min), trp-15ns(min), tras-37ns (min). */
ctlConfig.latency = kSDRAMC_LatencyOne;
ctlConfig.address = SDRAM_START_ADDRESS;
ctlConfig.addressMask = 0x7c0000;
// ctlConfig.addressMask = 0xf80000;
config.refreshConfig = &refConfig;
config.blockConfig = &ctlConfig;
config.numBlockConfig = 1;
/* SDRAM controller initialization. */
SDRAMC_Init(base, &config);
/* SDRAM initialization sequence. */
return SDRAM_InitSequence(base, kSDRAMC_Block0, kSDRAM_MrsBurstLenOne, kSDRAM_MrsSequential, kSDRAM_MrsLatencyTwo,
kSDRAM_MrsStandOperation, kSDRAM_MrsWriteBurst);
}
status_t SDRAM_Deinit(SDRAM_Type *base)
{
SDRAMC_Deinit(base);
FB->CSPMCR = 0x00000000;
CLOCK_DisableClock(kCLOCK_Flexbus0);
SIM->SOPT2 = (SIM->SOPT2 & ~SIM_SOPT2_FBSL_MASK);
return 0;
}