Перейти к содержанию
    

Сколько нужно тестировать SDRAM?

Добрый вечер.

Интересовался как-то на какой частоте может работать SDRAM на контроллере STM32H743, мне говорили - 90 МГц, не больше. Некоторые говорили 108 МГц. ЧТо имею - указанный контроллер последней ревизии, той что на 480 МГц, и SDRAM на 166 Мгц.  Плата 4-слойная, разводка без изысков и выравниваний (только клок сделал длинее всего остального).

Работает на 112 МГц, прошла 10 тыс циклов без единой ошибки.

Тест - идеологически выдержанный

while(1)
	{
	srand(1);		
			for (uwIndex = 0; uwIndex < 4194304; uwIndex++){
		      	*(__IO uint32_t*)(SDRAM_BANK_ADDR + 4*uwIndex) = rand();
			
				}		
			
		
		srand(1);
		for (uwIndex = 0; uwIndex < 4194304; uwIndex++){
			if (*(__IO uint32_t*)(SDRAM_BANK_ADDR + 4*uwIndex) != rand())  err++;    
		}	
	ttt++;
	}		
	

Будь это на штатной частоте, я бы успокоился - все уже проверено до нас, раз производитель говорит, что на 90 МГц можно работать, значит он гонял память на этой частоте годами. А вот 112 МГц - это уже разогнано. Если бы SDRAM у меня была только для видеобуфера, то мне было бы спокойно - ну подумаешь, раз в час битый пиксель. Но все же хотелось бы разместить в SDRAM немножко критически важных данных, а немножко - это 1,5-2 МБ, в ОЗУ не влезут.

 

Кто что скажет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, aaarrr said:

 rand() - это не лучший вариант, медленный слишком.

Я подожду. Вопрос "сколько нужно" подразумевал не время, а количество циклов.

 

Кстати. Вот мои настройки

rjdnDxDE.png?download=1&name=%D0%A1%D0%B

 

С чем еще можно поиграться, дабы еще немного поднять частоту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, MementoMori said:

Я подожду

Не в этом дело - нагрузка должна быть максимальной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, aaarrr said:

Не в этом дело - нагрузка должна быть максимальной.

Ваш вариант?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Погуглите генератор ПСЧ на ассемблере - был такой в несколько команд буквально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, aaarrr said:

генератор ПСЧ на ассемблере

погуглю.

А с настройками как? Нормальные? По какому принципу с ними можно поиграться?  Не буду же я все возможные комбинации перебирать, это долго.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, MementoMori said:

А с настройками как? Нормальные? По какому принципу с ними можно поиграться?  Не буду же я все возможные комбинации перебирать, это долго.

А смысл играться с настройками и повышать частоту? Просто сравните времянки в ДШ на процессор и память, все ли в норме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 минуты назад, aaarrr сказал:

Погуглите генератор ПСЧ на ассемблере - был такой в несколько команд буквально.

Ещё можно в этом качестве использовать аппаратный вычислитель CRC. Это должно быть ещё быстрее. Если он мало тактов на одно вычисление требует в этом МК.

И я бы сделал два прохода цикла чтения на один цикл записи. Чтобы было ещё "идеологически выдержаннее". Так как сбои регенерации никто не отменял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По аналогии с memtest86 для РС, взять исходник memtest, выдрать собственно тестовую часть, собрать  и запустить на плате. Там правда паттерны записи в uint64 представлены, что потребует адаптации кода для используемой шины (ширина).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, jcxz said:

Ещё можно в этом качестве использовать аппаратный вычислитель CRC. Это должно быть ещё быстрее.

Ого! И как я раньше до этого не додумался... Спасибо за идею.

Тоже тестирую критически важную область SDRAM при каждом включении изделия.

В моём МК есть аппаратный CRC32 - на входе байт.

Какую константу лучше ему скармливать для получения алярадомайза?

Все нули, все единицы или какую иную?

3 hours ago, jcxz said:

Так как сбои регенерации никто не отменял.

А куда регенерация может подеваться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, MementoMori said:

Вопрос "сколько нужно" подразумевал не время, а количество циклов.

Я тестирую один раз при каждом включении. Не вижу смысла повторять тест многократно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, MementoMori сказал:

мне говорили - 90 МГц, не больше. 

......

Работает на 112 МГц, прошла 10 тыс циклов без единой ошибки.

Погодите, погодите. Что значит "говорили"? Мужики в гараже?))))))))))) Эту цифру вы должны взять только из официального документа на микроконтроллер. И то, что оно сейчас работает на нештатной частоте ни о чём не говорит. Но если хочется, я бы к тестам памяти добавил бы распыление "фризера" (специальный газ в балончике) на микросхемы микроконтроллера и памяти во время тестов. То же самое бы проделал и с нагревом феном до 80 - 90 градусов. Я обычно всегда так тестирую что-то скоростное и впервый раз заведённое. Нередко нагрев или охлаждение помогают сразу же увидеть ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, MementoMori сказал:

Кстати. Вот мои настройки

А что за м/с памяти у Вас?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, zombi сказал:

Какую константу лучше ему скармливать для получения алярадомайза?

Наверное любую. От этого будет зависеть генерируемая последовательность. Но пожалуй лучше не 0 и -1.

Можно даже эту константу взять из генератора настоящих случайных чисел. Если такой есть в МК.

Цитата

А куда регенерация может подеваться?

Ну Вы же допускаете, что чип SDRAM может быть неисправен? А почему тогда думаете, что эта неисправность не может находиться в его регенерирующем механизме?

Сталкивался с таким чипом однажды: первое чтение - всё ок, 2-е и последующие - данные некоторых бит изменились.

7 часов назад, MrBearManul сказал:

к тестам памяти добавил бы распыление "фризера" (специальный газ в балончике) на микросхемы микроконтроллера и памяти во время тестов. То же самое бы проделал и с нагревом феном до 80 - 90 градусов.

Это что - такой вариант камеры тепла и холода для бедных?  :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...