Jump to content
Leo

Проблема с настройкой SDRAM

Recommended Posts

Пытаюсь настроить SDRAM но при записи по адресу заполняются сразу 4 ячейки через одну . Дальше заполняются 4 пропущенные ячейки через одну . И так по кругу 8 раз то первые то вторые  ячейки заполняются новыми данными . А на 9 разе происходит переход и цикл повторяется. Если кто настраивал подскажите?  Настройка частоты 180 мГц APB1=45мГц APB2=90мГц

 void SdRamNastroika (void){
	  uint32_t tmp;

	  // Enable clock for FMC
	    RCC->AHB3ENR |= RCC_AHB3ENR_FMCEN;
	    // Initialization step 1
	    FMC_Bank5_6->SDCR[0] = FMC_SDCR1_SDCLK_1 | FMC_SDCR1_RBURST | FMC_SDCR1_RPIPE_1;
	    FMC_Bank5_6->SDCR[1] = FMC_SDCR1_NR_0 | FMC_SDCR1_MWID_0 | FMC_SDCR1_NB | FMC_SDCR1_CAS;
	    // Initialization step 2
	    FMC_Bank5_6->SDTR[0] = TRC(7) | TRP(2);
	    FMC_Bank5_6->SDTR[1] = TMRD(2) | TXSR(7) | TRAS(4) | TWR(2) | TRCD(2);
	    // Initialization step 3
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    FMC_Bank5_6->SDCMR = 1 | FMC_SDCMR_CTB2 | (1 << 5);
	    // Initialization step 4
	    for(tmp = 0; tmp < 10000000; tmp++);
	    // Initialization step 5
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    FMC_Bank5_6->SDCMR = 2 | FMC_SDCMR_CTB2 | (1 << 5);
	    // Initialization step 6
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    FMC_Bank5_6->SDCMR = 3 | FMC_SDCMR_CTB2 | (4 << 5);
	    // Initialization step 7
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    FMC_Bank5_6->SDCMR = 4 | FMC_SDCMR_CTB2 | (1 << 5) | (0x231 << 9);
	    // Initialization step 8
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    FMC_Bank5_6->SDRTR |= (683 << 1);
	    while(FMC_Bank5_6->SDSR & FMC_SDSR_BUSY);
	    for(tmp = SDRAM_START_ADR; tmp < (SDRAM_START_ADR + SDRAM_MEMORY_SIZE); tmp += 4)//0x00800000 0x00000000
	    (*(__IO uint32_t *)tmp) = 0x00000000;
  }

void  SDRAM_Write32(uint32_t value){
	
	uint32_t tmp1 = 0xD0000000;
	
  *(__IO uint32_t*)tmp1 = value;//0xD15151FF

	tmp1+=4;
	
	*(__IO uint32_t*)tmp1 = 0xD45783FF;
	tmp1+=4;
		
		*(__IO uint32_t*)tmp1 = 0xD59256FF;
		tmp1+=4;
			
			*(__IO uint32_t*)tmp1 = 0xD14748FF;
			tmp1+=4;
				
				*(__IO uint32_t*)tmp1 = 0xD95317FF;
				tmp1+=4;
					
					*(__IO uint32_t*)tmp1 = 0xD45786FF;
					tmp1+=4;
		
						*(__IO uint32_t*)tmp1 = 0xD59256CF;
						tmp1+=4;
						
							*(__IO uint32_t*)tmp1 = 0xD14749FF;
							tmp1+=4;
								*(__IO uint32_t*)tmp1 = 0xD95316FF;
}

 

Share this post


Link to post
Share on other sites

Там проект, включающий в себя работу с SDRAM.

Share this post


Link to post
Share on other sites

Жаль что используется Cub!

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Умный и безопасный дом от STMicroelectronics – строим вмеSTе!» (23.06.2021)

Приглашаем 23/06/2021 всех желающих принять участие в вебинаре, посвященном проектированию и разработке систем умного дома на базе компонентов STMicroelectronics. Экосистема продукции STMicroelectronics включает в себя как электронные компоненты, так и средства разработки, готовые стеки протоколов и законченные примеры кода. Предлагаемые ресурсы позволят разработчику легко построить каркас системы и быстро создать прототип своего приложения. На вебинаре также расскажем о беспроводных интерфейсах – ведь благодаря поддержке стандартов BLE и ZigBee разработчики смогут при необходимости интегрировать устройства сторонних производителей и создавать открытые системы.
Подробнее

Какой куб ? Ни разу в жизни его не использовал :huh:

Share this post


Link to post
Share on other sites

Тактовые кнопки Panasonic - высококачественная коммутация в миниатюрном исполнении

Panasonic, один из мировых лидеров по производству высококачественных электромеханических компонентов, и Компэл представляют масштабное расширение складской программы. В настоящее время на складе Компэл доступны ведущие серии SMD-тактовых переключателей Panasonic в миниатюрных корпусах. Линейка тактовых кнопок Panasonic отличается многообразием компактных переключателей различных типоразмеров, форм штока и выводов. Переключатели отвечают важнейшим требованиям в ответственных применениях.

Подробнее

12 часов назад, Leo сказал:

Жаль что используется Cub!

Пинаете куб а сами не верно используете Си в своем примере - думайте где ошибка

Share this post


Link to post
Share on other sites

Решения TE Connectivity для 112 Gbps архитектуры и серверов. Соединители STRADA Whisper

Данная статья является первой из публикаций, описывающих решения компании TE Connectivity для высокоскоростных соединений. Она посвящена соединителям и кабельным сборкам серии STRADA Whisper, главная особенность которых – поддержка работы с технологией PAM-4 и скорости передачи до 112 Гбит/с.
Подробнее

Ради этого и задаю вопрос что не так. А знание  Си приходит с опытом и пониманием. Я бы пожелал примеры Cmsis для лучшего понимания. А уж потом круговерть с библиотеками.    

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...